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
This commit is contained in:
Adithya R 2023-10-02 08:31:57 +05:30 committed by Marc Bourgoin
parent 9b139ed94d
commit 3e6bd8cf18
2 changed files with 15 additions and 8 deletions

View file

@ -8,6 +8,7 @@
android:sharedUserId="android.uid.system">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.CAMERA_OPEN_CLOSE_LISTENER" />
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="com.qualcomm.permission.USE_QCRIL_MSG_TUNNEL" />

View file

@ -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<String> 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();
}
}