summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2023-08-16 17:18:52 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-08-16 17:18:52 +0000
commitb6d25adb563fe1c00d2d7874a87b46a6a1b0c95e (patch)
treed1621d1d3afe67e2458bfa0b2c2657c1b0e966f7
parente3360fa4f978bdea5a974189b72949a79c148d22 (diff)
parentcf0a09f6c54ee6060469bcd85acbefd382eba439 (diff)
Merge "Creates ChooserActivity alias" into udc-qpr-dev
-rw-r--r--AndroidManifest-app.xml32
-rw-r--r--java/src/com/android/intentresolver/ChooserActivityReEnabler.kt40
-rw-r--r--java/src/com/android/intentresolver/dagger/ReceiverBinderModule.kt10
3 files changed, 18 insertions, 64 deletions
diff --git a/AndroidManifest-app.xml b/AndroidManifest-app.xml
index fdfe34e1..ba9afe28 100644
--- a/AndroidManifest-app.xml
+++ b/AndroidManifest-app.xml
@@ -34,15 +34,12 @@
tools:replace="android:appComponentFactory"
android:appComponentFactory=".dagger.InjectedAppComponentFactory">
- <activity android:name=".ChooserActivity"
- android:theme="@style/Theme.DeviceDefault.Chooser"
- android:finishOnCloseSystemDialogs="true"
- android:excludeFromRecents="true"
- android:documentLaunchMode="never"
- android:relinquishTaskIdentity="true"
- android:configChanges="screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden"
- android:visibleToInstantApps="true"
- android:exported="true">
+ <!-- This alias needs to be maintained until there are no more devices that could be
+ upgrading from T QPR3. (b/283722356) -->
+ <activity-alias
+ android:name=".ChooserActivityLauncher"
+ android:targetActivity=".ChooserActivity"
+ android:exported="true">
<!-- This intent filter is assigned a priority greater than 100 so
that it will take precedence over the framework ChooserActivity
@@ -53,14 +50,17 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE" />
</intent-filter>
- </activity>
+ </activity-alias>
- <receiver android:name=".ChooserActivityReEnabler"
- android:exported="true">
- <intent-filter>
- <action android:name="android.intent.action.BOOT_COMPLETED" />
- </intent-filter>
- </receiver>
+ <activity android:name=".ChooserActivity"
+ android:theme="@style/Theme.DeviceDefault.Chooser"
+ android:finishOnCloseSystemDialogs="true"
+ android:excludeFromRecents="true"
+ android:documentLaunchMode="never"
+ android:relinquishTaskIdentity="true"
+ android:configChanges="screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden"
+ android:visibleToInstantApps="true"
+ android:exported="false"/>
</application>
diff --git a/java/src/com/android/intentresolver/ChooserActivityReEnabler.kt b/java/src/com/android/intentresolver/ChooserActivityReEnabler.kt
deleted file mode 100644
index 8c2b3d0d..00000000
--- a/java/src/com/android/intentresolver/ChooserActivityReEnabler.kt
+++ /dev/null
@@ -1,40 +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
-import javax.inject.Inject
-
-/**
- * Ensures that the unbundled version of [ChooserActivity] does not get stuck in a disabled state.
- */
-class ChooserActivityReEnabler @Inject constructor() : 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")
- }
-}
diff --git a/java/src/com/android/intentresolver/dagger/ReceiverBinderModule.kt b/java/src/com/android/intentresolver/dagger/ReceiverBinderModule.kt
index 1f587f18..32ce2f45 100644
--- a/java/src/com/android/intentresolver/dagger/ReceiverBinderModule.kt
+++ b/java/src/com/android/intentresolver/dagger/ReceiverBinderModule.kt
@@ -1,18 +1,12 @@
package com.android.intentresolver.dagger
import android.content.BroadcastReceiver
-import com.android.intentresolver.ChooserActivityReEnabler
-import dagger.Binds
import dagger.Module
-import dagger.multibindings.ClassKey
-import dagger.multibindings.IntoMap
+import dagger.multibindings.Multibinds
/** Injection instructions for injectable [BroadcastReceivers][BroadcastReceiver] */
@Module
interface ReceiverBinderModule {
- @Binds
- @IntoMap
- @ClassKey(ChooserActivityReEnabler::class)
- fun bindChooserActivityReEnabler(receiver: ChooserActivityReEnabler): BroadcastReceiver
+ @Multibinds fun bindReceivers(): Map<Class<*>, @JvmSuppressWildcards BroadcastReceiver>
}