diff options
author | 2023-08-16 17:18:52 +0000 | |
---|---|---|
committer | 2023-08-16 17:18:52 +0000 | |
commit | b6d25adb563fe1c00d2d7874a87b46a6a1b0c95e (patch) | |
tree | d1621d1d3afe67e2458bfa0b2c2657c1b0e966f7 | |
parent | e3360fa4f978bdea5a974189b72949a79c148d22 (diff) | |
parent | cf0a09f6c54ee6060469bcd85acbefd382eba439 (diff) |
Merge "Creates ChooserActivity alias" into udc-qpr-dev
-rw-r--r-- | AndroidManifest-app.xml | 32 | ||||
-rw-r--r-- | java/src/com/android/intentresolver/ChooserActivityReEnabler.kt | 40 | ||||
-rw-r--r-- | java/src/com/android/intentresolver/dagger/ReceiverBinderModule.kt | 10 |
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> } |