diff options
Diffstat (limited to 'java/tests')
| -rw-r--r-- | java/tests/AndroidManifest.xml | 7 | ||||
| -rw-r--r-- | java/tests/src/com/android/intentresolver/TestApplication.kt | 25 |
2 files changed, 28 insertions, 4 deletions
diff --git a/java/tests/AndroidManifest.xml b/java/tests/AndroidManifest.xml index 05830c4c..b397db5f 100644 --- a/java/tests/AndroidManifest.xml +++ b/java/tests/AndroidManifest.xml @@ -15,7 +15,8 @@ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.intentresolver.tests"> + xmlns:tools="http://schemas.android.com/tools" + package="com.android.intentresolver.tests"> <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30" /> @@ -25,7 +26,9 @@ <uses-permission android:name="android.permission.WRITE_DEVICE_CONFIG"/> <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" /> - <application android:name="com.android.intentresolver.TestApplication"> + <application + tools:replace="android:name" + android:name="com.android.intentresolver.TestApplication" > <uses-library android:name="android.test.runner" /> <activity android:name="com.android.intentresolver.ChooserWrapperActivity" /> <activity android:name="com.android.intentresolver.ResolverWrapperActivity" /> diff --git a/java/tests/src/com/android/intentresolver/TestApplication.kt b/java/tests/src/com/android/intentresolver/TestApplication.kt index 849cfbab..f0761fbd 100644 --- a/java/tests/src/com/android/intentresolver/TestApplication.kt +++ b/java/tests/src/com/android/intentresolver/TestApplication.kt @@ -19,9 +19,30 @@ package com.android.intentresolver import android.app.Application import android.content.Context import android.os.UserHandle +import com.android.intentresolver.dagger.ApplicationComponent +import com.android.intentresolver.dagger.DaggerApplicationComponent -class TestApplication : Application() { +class TestApplication : Application(), ApplicationComponentOwner { + + private lateinit var applicationComponent: ApplicationComponent + + private val pendingDaggerActions = mutableSetOf<(ApplicationComponent) -> Unit>() + + override fun onCreate() { + super.onCreate() + applicationComponent = DaggerApplicationComponent.builder().application(this).build() + pendingDaggerActions.forEach { it.invoke(applicationComponent) } + pendingDaggerActions.clear() + } + + override fun doWhenApplicationComponentReady(action: (ApplicationComponent) -> Unit) { + if (this::applicationComponent.isInitialized) { + action.invoke(applicationComponent) + } else { + pendingDaggerActions.add(action) + } + } // return the current context as a work profile doesn't really exist in these tests override fun createContextAsUser(user: UserHandle, flags: Int): Context = this -}
\ No newline at end of file +} |