summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Govinda Wasserman <gwasserman@google.com> 2023-07-17 10:27:43 -0400
committer Govinda Wasserman <gwasserman@google.com> 2023-12-12 12:07:02 -0500
commitdd10bf5818019d58b19f735bfb5c1091d057b8f6 (patch)
tree06378e9838ceb2ed9df84258c1632cbc79d08f51 /java/src
parentcd0a55e83be5c8b9e99c7d0ced6dd17a7bb349e9 (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.kt39
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")
- }
-}