diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2023-09-21 07:01:01 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-09-21 07:01:01 +0000 |
commit | eb310f03b3555e8a85a875585823f54cbd16563b (patch) | |
tree | a856d40e9bc6893445261722d1eef9220061fa0e | |
parent | 824677fd594bc9442ff7e0b32bb0572d60d56471 (diff) | |
parent | 65def3076418834be867cc91c90a87810a08dd0b (diff) | |
download | ex-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>
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) { |