From 3e6bd8cf18cd6173d75f736c788ba2f83ad493a7 Mon Sep 17 00:00:00 2001 From: Adithya R Date: Mon, 2 Oct 2023 08:31:57 +0530 Subject: [PATCH] dubai: camera: Ignore face unlock and ASI front camera usage These use the front camera frequently but aren't critical to functionality, so we don't need to disrupt 5G services. Change-Id: I0d23c3bfec936ddefcabb93e6a579a5eb11b3574 --- camera/AndroidManifest.xml | 1 + .../DubaiCameraService.java | 22 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/camera/AndroidManifest.xml b/camera/AndroidManifest.xml index f524ec1..48e4de5 100644 --- a/camera/AndroidManifest.xml +++ b/camera/AndroidManifest.xml @@ -8,6 +8,7 @@ android:sharedUserId="android.uid.system"> + diff --git a/camera/src/com/arrow/dubaicameraservice/DubaiCameraService.java b/camera/src/com/arrow/dubaicameraservice/DubaiCameraService.java index 63c2790..9e4f01c 100644 --- a/camera/src/com/arrow/dubaicameraservice/DubaiCameraService.java +++ b/camera/src/com/arrow/dubaicameraservice/DubaiCameraService.java @@ -24,6 +24,7 @@ import android.telephony.TelephonyManager; import android.util.Log; import java.util.Arrays; +import java.util.Set; import java.util.concurrent.Executor; public class DubaiCameraService extends Service { @@ -34,6 +35,11 @@ public class DubaiCameraService extends Service { private static final String FRONT_CAMERA_ID = "1"; private static final int OFFENDING_NR_BAND = 78; + private static final Set IGNORED_PACKAGES = Set.of( + "co.aospa.sense", // face unlock + "com.google.android.as" // auto rotate, screen attention etc + ); + private CameraManager mCameraManager; private SubscriptionManager mSubManager; private TelephonyManager mTelephonyManager; @@ -49,19 +55,19 @@ public class DubaiCameraService extends Service { private final CameraManager.AvailabilityCallback mCameraCallback = new CameraManager.AvailabilityCallback() { @Override - public void onCameraAvailable(String cameraId) { - dlog("onCameraAvailable id:" + cameraId); - if (cameraId.equals(FRONT_CAMERA_ID)) { - mIsFrontCamInUse = false; + public void onCameraOpened(String cameraId, String packageId) { + dlog("onCameraOpened id=" + cameraId + " package=" + packageId); + if (cameraId.equals(FRONT_CAMERA_ID) && !IGNORED_PACKAGES.contains(packageId)) { + mIsFrontCamInUse = true; update5gState(); } } @Override - public void onCameraUnavailable(String cameraId) { - dlog("onCameraUnavailable id:" + cameraId); - if (cameraId.equals(FRONT_CAMERA_ID)) { - mIsFrontCamInUse = true; + public void onCameraClosed(String cameraId) { + dlog("onCameraClosed id=" + cameraId); + if (cameraId.equals(FRONT_CAMERA_ID) && mIsFrontCamInUse) { + mIsFrontCamInUse = false; update5gState(); } }