Skip to content

Instantly share code, notes, and snippets.

View husaynhakeem's full-sized avatar

Husayn Hakeem husaynhakeem

View GitHub Profile
AppInitializer.getInstance(context).initializeComponent(MyInitializer::class.java)
<manifest>
<application>
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<!-- Manually/Lazily run MyInitializer -->
<meta-data
<manifest>
<application>
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<!-- Automatically runs FaceDetectorInitializer and CameraInitializer at app startup -->
<meta-data
<manifest>
<application>
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<!-- Automatically run MyInitializer at app startup -->
<meta-data
class FaceDetectorInitializer : Initializer<FaceDetector> {
override fun create(context: Context): FaceDetector {
val faceDetector = /* Set up and configure the face detector */
return faceDetector
}
override fun dependencies() = listOf(CameraInitializer::class.java)
}
class CameraInitializer : Initializer<Camera> {
override fun create(context: Context): Camera {
val camera = /* Set up, configure and/or initialize the camera */
return camera
}
override fun dependencies() = emptyList<>()
}
class MyInitializer: Initializer<MyDependency> {
override fun create(context: Context): MyDependency {
val myDependency: MyDependency = /* Run initialization/configuration logic */
return myDependency
}
override fun dependencies(): List<Class<out Initializer<*>>> {
return listOf(AnotherDependencyInitializer::class.java,
YetAnotherDependencyInitializer::class.java)
implementation "androidx.startup:startup-runtime:1.0.0-alpha01"
@Test
fun shouldSendData() {
val scenario = FragmentScenario.launchInContainer(FragmentB::class.java)
// Register result listener
var receivedData = ""
scenario.onFragment { fragment ->
fragment.parentFragmentManager.setFragmentResultListener(
KEY,
fragment,
@Test
fun shouldReceiveData() {
val scenario = FragmentScenario.launchInContainer(FragmentA::class.java)
// Pass data using the parent fragment manager
scenario.onFragment { fragment ->
val data = bundleOf(KEY_DATA to "value")
fragment.parentFragmentManager.setFragmentResult("aKey", data)
}