Camera: Avoid permission check if fallback impl is not enabled
- In connectToProxyLocked, for the case when the vendor proxy service
is supported and the fallback is not, the vendor proxy service will
remain connected to during the check for the fallback impl (or when
useFallback is true, triggered if the vendor impl does not support an
extension). In this case, the permission check should be avoided when
returning to registerClientHelper.
Test: Camera CTS on lynx where vendor proxy is supported and fallback is not; CTS on CF
Bug: 346632129
Change-Id: I826040f582e61339a0df139dc9ce514631af0a6a
diff --git a/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java b/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java
index ccbcebe..7665fe8 100644
--- a/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java
+++ b/core/java/android/hardware/camera2/CameraExtensionCharacteristics.java
@@ -280,6 +280,7 @@
private final int PROXY_SERVICE_DELAY_MS = 2000;
private ExtensionConnectionManager mConnectionManager = new ExtensionConnectionManager();
private boolean mPermissionForFallbackEnabled = false;
+ private boolean mIsFallbackEnabled = false;
// Singleton, don't allow construction
private CameraExtensionManagerGlobal() {}
@@ -327,6 +328,7 @@
"Choosing the fallback software implementation service: "
+ serviceName);
intent.setClassName(packageName, serviceName);
+ mIsFallbackEnabled = true;
}
}
@@ -438,7 +440,7 @@
releaseProxyConnectionLocked(ctx, extension);
}
- if (Flags.concertMode() && ret && useFallback) {
+ if (Flags.concertMode() && ret && useFallback && mIsFallbackEnabled) {
try {
InitializeSessionHandler cb = new InitializeSessionHandler(ctx);
initializeSession(cb, extension);