summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2023-09-21 07:01:01 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-09-21 07:01:01 +0000
commiteb310f03b3555e8a85a875585823f54cbd16563b (patch)
treea856d40e9bc6893445261722d1eef9220061fa0e
parent824677fd594bc9442ff7e0b32bb0572d60d56471 (diff)
parent65def3076418834be867cc91c90a87810a08dd0b (diff)
downloadex-tmp_amf_298295554.tar.gz
Merge "Fixed the black preview on the apps that uses older version of camerax that didn't invoke InitializerImpl.init()" into main am: 65def30764tmp_amf_298295554
Original change: https://android-review.googlesource.com/c/platform/frameworks/ex/+/2755806 Change-Id: Idd72df86f2e484ac7cce0329504ab2c0d04bdb60 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardAdvancedExtender.java31
-rw-r--r--camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardImageCaptureExtender.java56
-rw-r--r--camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardPreviewExtender.java40
-rw-r--r--camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ServiceManager.java30
4 files changed, 151 insertions, 6 deletions
diff --git a/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardAdvancedExtender.java b/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardAdvancedExtender.java
index dc57590a..058c0ac3 100644
--- a/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardAdvancedExtender.java
+++ b/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardAdvancedExtender.java
@@ -65,6 +65,9 @@ public class ForwardAdvancedExtender implements AdvancedExtenderImpl {
@Override
public boolean isExtensionAvailable(@NonNull String cameraId,
@NonNull Map<String, CameraCharacteristics> characteristicsMap) {
+ if (mIAdvancedExtender == null) {
+ return false;
+ }
try {
return mIAdvancedExtender.isExtensionAvailable(cameraId);
} catch (RemoteException e) {
@@ -76,6 +79,10 @@ public class ForwardAdvancedExtender implements AdvancedExtenderImpl {
@Override
public void init(@NonNull String cameraId,
@NonNull Map<String, CameraCharacteristics> characteristicsMap) {
+ if (mIAdvancedExtender == null) {
+ return;
+ }
+
try {
mCameraId = cameraId;
mIAdvancedExtender.init(cameraId);
@@ -89,6 +96,10 @@ public class ForwardAdvancedExtender implements AdvancedExtenderImpl {
public Range<Long> getEstimatedCaptureLatencyRange(@NonNull String cameraId,
@Nullable Size captureOutputSize,
int imageFormat) {
+ if (mIAdvancedExtender == null) {
+ return null;
+ }
+
try {
androidx.camera.extensions.impl.service.Size size = null;
if (captureOutputSize != null) {
@@ -108,6 +119,10 @@ public class ForwardAdvancedExtender implements AdvancedExtenderImpl {
@Override
public Map<Integer, List<Size>> getSupportedPreviewOutputResolutions(String cameraId) {
+ if (mIAdvancedExtender == null) {
+ return null;
+ }
+
try {
List<SizeList> sizeLists = mIAdvancedExtender.getSupportedPreviewOutputResolutions(
cameraId);
@@ -124,6 +139,10 @@ public class ForwardAdvancedExtender implements AdvancedExtenderImpl {
@Override
public Map<Integer, List<Size>> getSupportedCaptureOutputResolutions(String cameraId) {
+ if (mIAdvancedExtender == null) {
+ return null;
+ }
+
try {
List<SizeList> sizeLists = mIAdvancedExtender.getSupportedCaptureOutputResolutions(
cameraId);
@@ -140,6 +159,10 @@ public class ForwardAdvancedExtender implements AdvancedExtenderImpl {
@Override
public List<Size> getSupportedYuvAnalysisResolutions(String cameraId) {
+ if (mIAdvancedExtender == null) {
+ return null;
+ }
+
try {
List<SizeList> sizeLists = mIAdvancedExtender.getSupportedYuvAnalysisResolutions(
cameraId);
@@ -208,6 +231,10 @@ public class ForwardAdvancedExtender implements AdvancedExtenderImpl {
@Override
@Nullable
public List<CaptureRequest.Key> getAvailableCaptureRequestKeys() {
+ if (mIAdvancedExtender == null) {
+ return null;
+ }
+
try {
CameraMetadataWrapper cameraMetadataWrapper
= mIAdvancedExtender.getAvailableCaptureRequestKeys();
@@ -228,6 +255,10 @@ public class ForwardAdvancedExtender implements AdvancedExtenderImpl {
@Override
@Nullable
public List<CaptureResult.Key> getAvailableCaptureResultKeys() {
+ if (mIAdvancedExtender == null) {
+ return null;
+ }
+
try {
CameraMetadataWrapper cameraMetadataWrapper
= mIAdvancedExtender.getAvailableCaptureResultKeys();
diff --git a/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardImageCaptureExtender.java b/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardImageCaptureExtender.java
index 03de94bf..cd6ef3eb 100644
--- a/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardImageCaptureExtender.java
+++ b/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardImageCaptureExtender.java
@@ -75,6 +75,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public void onInit(String cameraId, CameraCharacteristics cameraCharacteristics,
Context context) {
+ if (mIImageCaptureExtender == null) {
+ return;
+ }
+
try {
mIImageCaptureExtender.onInit(cameraId);
} catch (RemoteException e) {
@@ -85,6 +89,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public void onDeInit() {
+ if (mIImageCaptureExtender == null) {
+ return;
+ }
+
try {
mIImageCaptureExtender.onDeInit();
} catch (RemoteException e) {
@@ -95,6 +103,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public CaptureStageImpl onPresetSession() {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
return convertToCaptureStageImpl(mIImageCaptureExtender.onPresetSession());
} catch (RemoteException e) {
@@ -105,6 +117,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public CaptureStageImpl onEnableSession() {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
return convertToCaptureStageImpl(mIImageCaptureExtender.onEnableSession());
} catch (RemoteException e) {
@@ -115,6 +131,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public CaptureStageImpl onDisableSession() {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
return convertToCaptureStageImpl(mIImageCaptureExtender.onDisableSession());
} catch (RemoteException e) {
@@ -126,6 +146,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public boolean isExtensionAvailable(String cameraId,
CameraCharacteristics cameraCharacteristics) {
+ if (mIImageCaptureExtender == null) {
+ return false;
+ }
+
try {
return mIImageCaptureExtender.isExtensionAvailable(cameraId);
} catch (RemoteException e) {
@@ -136,6 +160,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public void init(String cameraId, CameraCharacteristics cameraCharacteristics) {
+ if (mIImageCaptureExtender == null) {
+ return;
+ }
+
try {
mIImageCaptureExtender.init(cameraId);
} catch (RemoteException e) {
@@ -146,6 +174,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public CaptureProcessorImpl getCaptureProcessor() {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
ICaptureProcessorImpl captureProcessor = mIImageCaptureExtender.getCaptureProcessor();
if (captureProcessor == null) {
@@ -160,6 +192,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public List<CaptureStageImpl> getCaptureStages() {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
List<CaptureStageImpl> results = new ArrayList<>();
for (CaptureStageImplWrapper wrapper : mIImageCaptureExtender.getCaptureStages()) {
@@ -174,6 +210,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public int getMaxCaptureStage() {
+ if (mIImageCaptureExtender == null) {
+ return 0;
+ }
+
try {
return mIImageCaptureExtender.getMaxCaptureStage();
} catch (RemoteException e) {
@@ -184,6 +224,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public List<Pair<Integer, Size[]>> getSupportedResolutions() {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
List<SizeList> sizes = mIImageCaptureExtender.getSupportedResolutions();
if (sizes == null) {
@@ -208,6 +252,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public Range<Long> getEstimatedCaptureLatencyRange(Size captureOutputSize) {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
androidx.camera.extensions.impl.service.Size size = null;
if (captureOutputSize != null) {
@@ -230,6 +278,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public List<CaptureRequest.Key> getAvailableCaptureRequestKeys() {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
CameraMetadataWrapper cameraMetadataWrapper
= mIImageCaptureExtender.getAvailableCaptureRequestKeys();
@@ -251,6 +303,10 @@ public class ForwardImageCaptureExtender implements ImageCaptureExtenderImpl {
@Override
public List<CaptureResult.Key> getAvailableCaptureResultKeys() {
+ if (mIImageCaptureExtender == null) {
+ return null;
+ }
+
try {
CameraMetadataWrapper cameraMetadataWrapper
= mIImageCaptureExtender.getAvailableCaptureResultKeys();
diff --git a/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardPreviewExtender.java b/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardPreviewExtender.java
index 81969ca4..2b278990 100644
--- a/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardPreviewExtender.java
+++ b/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ForwardPreviewExtender.java
@@ -71,6 +71,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public void onInit(String cameraId, CameraCharacteristics cameraCharacteristics,
Context context) {
+ if (mIPreviewExtender == null) {
+ return;
+ }
+
try {
mIPreviewExtender.onInit(cameraId);
} catch (RemoteException e) {
@@ -81,6 +85,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public void onDeInit() {
+ if (mIPreviewExtender == null) {
+ return;
+ }
+
try {
mIPreviewExtender.onDeInit();
} catch (RemoteException e) {
@@ -91,6 +99,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public CaptureStageImpl onPresetSession() {
+ if (mIPreviewExtender == null) {
+ return null;
+ }
+
try {
return convertToCaptureStageImpl(mIPreviewExtender.onPresetSession());
} catch (RemoteException e) {
@@ -101,6 +113,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public CaptureStageImpl onEnableSession() {
+ if (mIPreviewExtender == null) {
+ return null;
+ }
+
try {
return convertToCaptureStageImpl(mIPreviewExtender.onEnableSession());
} catch (RemoteException e) {
@@ -111,6 +127,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public CaptureStageImpl onDisableSession() {
+ if (mIPreviewExtender == null) {
+ return null;
+ }
+
try {
return convertToCaptureStageImpl(mIPreviewExtender.onDisableSession());
} catch (RemoteException e) {
@@ -122,6 +142,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public boolean isExtensionAvailable(String cameraId,
CameraCharacteristics cameraCharacteristics) {
+ if (mIPreviewExtender == null) {
+ return false;
+ }
+
try {
return mIPreviewExtender.isExtensionAvailable(cameraId);
} catch (RemoteException e) {
@@ -132,6 +156,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public void init(String cameraId, CameraCharacteristics cameraCharacteristics) {
+ if (mIPreviewExtender == null) {
+ return;
+ }
+
try {
mIPreviewExtender.init(cameraId);
} catch (RemoteException e) {
@@ -142,6 +170,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public CaptureStageImpl getCaptureStage() {
+ if (mIPreviewExtender == null) {
+ return null;
+ }
+
try {
return convertToCaptureStageImpl(mIPreviewExtender.getCaptureStage());
} catch (RemoteException e) {
@@ -152,6 +184,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public ProcessorType getProcessorType() {
+ if (mIPreviewExtender == null) {
+ return ProcessorType.PROCESSOR_TYPE_NONE;
+ }
+
try {
switch (mIPreviewExtender.getProcessorType()) {
case IPreviewExtenderImpl.PROCESSOR_TYPE_REQUEST_UPDATE_ONLY:
@@ -170,6 +206,10 @@ public class ForwardPreviewExtender implements PreviewExtenderImpl {
@Override
public ProcessorImpl getProcessor() {
+ if (mIPreviewExtender == null) {
+ return null;
+ }
+
try {
switch (getProcessorType()) {
case PROCESSOR_TYPE_REQUEST_UPDATE_ONLY:
diff --git a/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ServiceManager.java b/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ServiceManager.java
index 76de1c92..90e2a7ca 100644
--- a/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ServiceManager.java
+++ b/camera2/extensions/service_based_sample/oem_library/src/java/androidx/camera/extensions/impl/serviceforward/ServiceManager.java
@@ -46,15 +46,17 @@ public class ServiceManager {
private static final String SERVICE_SERVICE_NAME =
"com.android.oemextensions.ExtensionsService";
- private static ServiceManager sServiceManager;
+ private static ServiceManager sServiceManager = new ServiceManager();
private static final Object mLock = new Object();
+ private static boolean sInitialized = false;
public static void init(@Nullable Context context, @NonNull String version,
@Nullable InitializerImpl.OnExtensionsInitializedCallback callback,
@Nullable Executor executor) {
synchronized (mLock) {
- if (sServiceManager == null) {
+ if (!sInitialized) {
sServiceManager = new ServiceManager(context, version);
+ sInitialized = true;
}
sServiceManager.bindServiceSync(context);
}
@@ -90,11 +92,16 @@ public class ServiceManager {
}
}
- @NonNull
+ @Nullable
public static ServiceManager getInstance() {
return sServiceManager;
}
+ public ServiceManager() {
+ mContext = null;
+ mVersion = null;
+ }
+
public ServiceManager(@NonNull Context context, @NonNull String version) {
mContext = context;
mVersion = version;
@@ -166,8 +173,12 @@ public class ServiceManager {
}
}
- @NonNull
+ @Nullable
public IAdvancedExtenderImpl createAdvancedExtenderImpl(int extensionType) {
+ if (mContext == null) {
+ return null;
+ }
+
try {
synchronized (mLock) {
if (mExtensionService == null) {
@@ -181,8 +192,12 @@ public class ServiceManager {
}
}
- @NonNull
+ @Nullable
public IImageCaptureExtenderImpl createImageCaptureExtenderImpl(int extensionType) {
+ if (mContext == null) {
+ return null;
+ }
+
try {
synchronized (mLock) {
if (mExtensionService == null) {
@@ -196,8 +211,11 @@ public class ServiceManager {
}
}
- @NonNull
+ @Nullable
public IPreviewExtenderImpl createPreviewExtenderImpl(int extensionType) {
+ if (mContext == null) {
+ return null;
+ }
try {
synchronized (mLock) {
if (mExtensionService == null) {