summaryrefslogtreecommitdiff
path: root/java/tests
diff options
context:
space:
mode:
Diffstat (limited to 'java/tests')
-rw-r--r--java/tests/AndroidManifest.xml7
-rw-r--r--java/tests/src/com/android/intentresolver/TestApplication.kt25
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
+}