diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2020-03-25 15:55:06 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-03-25 15:55:06 +0000 |
commit | da5fdba9515c9a2097aa6425fcf33745dc46c713 (patch) | |
tree | 8114a2ae6fd4e9ba7c3e2236b452a99f0ba47d89 | |
parent | 975b00319bf23ccfd5765f3a9830dfa3d061be4f (diff) | |
parent | db468c7a14077c5158ffee90efee5d8a07a09518 (diff) | |
download | base-da5fdba9515c9a2097aa6425fcf33745dc46c713.tar.gz |
Merge cherrypicks of [10841371, 10841391, 10841392, 10841143] into qt-d4-release
Change-Id: I6d20dcb71c0ad4e1c0b7faba7995d3bdca273abd
-rw-r--r-- | packages/SystemUI/res/values/config.xml | 4 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/CameraAvailabilityListener.kt | 18 |
2 files changed, 17 insertions, 5 deletions
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 6758efac7e2a..c2189a30f237 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -505,6 +505,10 @@ <!-- ID for the camera that needs extra protection --> <string translatable="false" name="config_protectedCameraId"></string> + <!-- Comma-separated list of packages to exclude from camera protection e.g. + "com.android.systemui,com.android.xyz" --> + <string translatable="false" name="config_cameraProtectionExcludedPackages"></string> + <!-- Flag to turn on the rendering of the above path or not --> <bool name="config_enableDisplayCutoutProtection">false</bool> diff --git a/packages/SystemUI/src/com/android/systemui/CameraAvailabilityListener.kt b/packages/SystemUI/src/com/android/systemui/CameraAvailabilityListener.kt index 284074e76ae2..3015710e8a98 100644 --- a/packages/SystemUI/src/com/android/systemui/CameraAvailabilityListener.kt +++ b/packages/SystemUI/src/com/android/systemui/CameraAvailabilityListener.kt @@ -37,20 +37,22 @@ class CameraAvailabilityListener( private val cameraManager: CameraManager, private val cutoutProtectionPath: Path, private val targetCameraId: String, + excludedPackages: String, private val executor: Executor ) { private var cutoutBounds = Rect() + private val excludedPackageIds: Set<String> private val listeners = mutableListOf<CameraTransitionCallback>() private val availabilityCallback: CameraManager.AvailabilityCallback = object : CameraManager.AvailabilityCallback() { - override fun onCameraAvailable(cameraId: String) { + override fun onCameraClosed(cameraId: String) { if (targetCameraId == cameraId) { notifyCameraInactive() } } - override fun onCameraUnavailable(cameraId: String) { - if (targetCameraId == cameraId) { + override fun onCameraOpened(cameraId: String, packageId: String) { + if (targetCameraId == cameraId && !isExcluded(packageId)) { notifyCameraActive() } } @@ -64,6 +66,7 @@ class CameraAvailabilityListener( computed.top.roundToInt(), computed.right.roundToInt(), computed.bottom.roundToInt()) + excludedPackageIds = excludedPackages.split(",").toSet() } /** @@ -87,6 +90,10 @@ class CameraAvailabilityListener( listeners.remove(callback) } + private fun isExcluded(packageId: String): Boolean { + return excludedPackageIds.contains(packageId) + } + private fun registerCameraListener() { cameraManager.registerAvailabilityCallback(executor, availabilityCallback) } @@ -118,9 +125,10 @@ class CameraAvailabilityListener( val res = context.resources val pathString = res.getString(R.string.config_frontBuiltInDisplayCutoutProtection) val cameraId = res.getString(R.string.config_protectedCameraId) + val excluded = res.getString(R.string.config_cameraProtectionExcludedPackages) return CameraAvailabilityListener( - manager, pathFromString(pathString), cameraId, executor) + manager, pathFromString(pathString), cameraId, excluded, executor) } private fun pathFromString(pathString: String): Path { @@ -135,4 +143,4 @@ class CameraAvailabilityListener( return p } } -}
\ No newline at end of file +} |