diff options
author | 2023-07-17 10:27:43 -0400 | |
---|---|---|
committer | 2023-12-12 12:07:02 -0500 | |
commit | dd10bf5818019d58b19f735bfb5c1091d057b8f6 (patch) | |
tree | 06378e9838ceb2ed9df84258c1632cbc79d08f51 /java/src | |
parent | cd0a55e83be5c8b9e99c7d0ced6dd17a7bb349e9 (diff) |
Creates ChooserActivity alias
This alias allows us to avoid a bug that caused Share Sheet to crash any
app that tried to use it. It also removes the previous solution as it
had the potential to not take effect if too many receivers tried to act
on the BOOT_COMPLETE broadcast.
Test: $ adb root
Test: $ adb shell pm disable com.android.intentresolver/.ChooserActivity
Test: $ adb shell pm resolve-activity -a android.intent.action.CHOOSER
Test: Verify that the activity resolves
BUG: 283722356
FIX: 283722356
Change-Id: I820c5f88204c83e635cb877b222bdf6cbe53aaff
Merged-In: I820c5f88204c83e635cb877b222bdf6cbe53aaff
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/intentresolver/ChooserActivityReEnabler.kt | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivityReEnabler.kt b/java/src/com/android/intentresolver/ChooserActivityReEnabler.kt deleted file mode 100644 index 3236c1be..00000000 --- a/java/src/com/android/intentresolver/ChooserActivityReEnabler.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.android.intentresolver - -import android.content.BroadcastReceiver -import android.content.ComponentName -import android.content.Context -import android.content.Intent -import android.content.pm.PackageManager - -/** - * Ensures that the unbundled version of [ChooserActivity] does not get stuck in a disabled state. - */ -class ChooserActivityReEnabler : BroadcastReceiver() { - - override fun onReceive(context: Context, intent: Intent) { - if (intent.action == Intent.ACTION_BOOT_COMPLETED) { - context.packageManager.setComponentEnabledSetting( - CHOOSER_COMPONENT, - PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, - /* flags = */ 0, - ) - - // This only needs to be run once, so we disable ourself to avoid additional startup - // process on future boots - context.packageManager.setComponentEnabledSetting( - SELF_COMPONENT, - PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - /* flags = */ 0, - ) - } - } - - companion object { - private const val CHOOSER_PACKAGE = "com.android.intentresolver" - private val CHOOSER_COMPONENT = - ComponentName(CHOOSER_PACKAGE, "$CHOOSER_PACKAGE.ChooserActivity") - private val SELF_COMPONENT = - ComponentName(CHOOSER_PACKAGE, "$CHOOSER_PACKAGE.ChooserActivityReEnabler") - } -} |