Allow explicitly setting the camera component launched by double-press power.
Using an implicit intent at the moment of picture-taking usually goes unnoticed. But immediately after installing a new camera, this behavior becomes incredibly frustrating to users as they are presented with a puzzling resolver dialog (or in the case of the secure camera, the authenticator). And if, at this moment, the user chooses to make one of the options a default, it's almost impossible to figure out how to change this setting. As a result, many OEMs simply hardcode the camera gesture to launch a specific preinstalled camera, but this is poorly supported by AOSP, leading to duplicate implementations and bugs. This patch routes all camera intents in System UI through a single utility class, creating a convenient spot to insert a resource that contains the OEM's default preinstalled camera app. Note that this does not affect implicit intent resolution in any way; any app may create a chooser for, e.g., MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA and allow the user to pick from the available cameras. Bugreport/dumpsys output to look for: $ adb shell dumpsys activity service com.android.systemui | grep -C3 'Camera gesture' | tail -3 Camera gesture intents: Insecure camera: Intent { act=android.media.action.STILL_IMAGE_CAMERA } Secure camera: Intent { act=android.media.action.STILL_IMAGE_CAMERA_SECURE flg=0x800000 } Override package: null Bug: 171807357 Fixes: 154218868 Test: atest SystemUITests Change-Id: I2c0033e52c8a3963768d29f2e76e555d405aaa7e
Loading
Please register or sign in to comment