Skip to content

Commit

Permalink
07/07/2023.
Browse files Browse the repository at this point in the history
  • Loading branch information
youndon committed Jul 7, 2023
1 parent 6c538e0 commit b035384
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 11 deletions.
20 changes: 10 additions & 10 deletions app/src/main/java/com/example/mobile/NoteApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import dagger.hilt.android.HiltAndroidApp
import javax.inject.Inject

@HiltAndroidApp
class NoteApplication: Application(), Configuration.Provider {
class NoteApplication: Application()/*, Configuration.Provider*/ {

override fun onCreate() {
super.onCreate()
Expand All @@ -31,13 +31,13 @@ class NoteApplication: Application(), Configuration.Provider {
}


/**
* Work Manager Initializer.
*/
@Inject
lateinit var hiltWorkerFactory: HiltWorkerFactory

override fun getWorkManagerConfiguration(): Configuration {
return Configuration.Builder().setWorkerFactory(hiltWorkerFactory).build()
}
// /**
// * Work Manager Initializer.
// */
// @Inject
// lateinit var hiltWorkerFactory: HiltWorkerFactory
//
// override fun getWorkManagerConfiguration(): Configuration {
// return Configuration.Builder().setWorkerFactory(hiltWorkerFactory).build()
// }
}
18 changes: 18 additions & 0 deletions init/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,24 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application>
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data
android:name="androidx.work.impl.WorkManagerInitializer"
android:value="androidx.startup"
tools:node="remove" />
<meta-data
android:name="city.zouitel.init.ComposeInitializer"
android:value="androidx.startup" />

<!-- This entry makes SQLCipherDataBaseInitializer discoverable. -->
<meta-data
android:name="city.zouitel.init.SQLCipherDBInitializer"
android:value="androidx.startup" />

</provider>
</application>
</manifest>
15 changes: 14 additions & 1 deletion init/src/main/java/city/zouitel/init/WorkManagerInitializer.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package city.zouitel.init

import android.content.Context
import androidx.hilt.work.HiltWorkerFactory
import androidx.lifecycle.ProcessLifecycleInitializer
import androidx.startup.Initializer
import androidx.work.Configuration
import androidx.work.WorkManager
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.EntryPointAccessors
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
Expand All @@ -20,7 +22,10 @@ object WorkManagerInitializer : Initializer<WorkManager> {
@Provides
@Singleton
override fun create(@ApplicationContext context: Context): WorkManager {
val configuration = Configuration.Builder().build()
val workFactory = getWorkerFactory(context)
val configuration = Configuration.Builder()
.setWorkerFactory(workFactory)
.build()
WorkManager.initialize(context, configuration)
return WorkManager.getInstance(context)
}
Expand All @@ -30,4 +35,12 @@ object WorkManagerInitializer : Initializer<WorkManager> {
ProcessLifecycleInitializer::class.java
)
}

private fun getWorkerFactory(appContext: Context): HiltWorkerFactory {
val workManagerEntryPoint = EntryPointAccessors.fromApplication(
appContext,
WorkManagerInitializerEntryPoint::class.java
)
return workManagerEntryPoint.hiltWorkerFactory()
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package city.zouitel.init

import androidx.hilt.work.HiltWorkerFactory
import dagger.hilt.EntryPoint
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent

@InstallIn(SingletonComponent::class)
@EntryPoint
interface WorkManagerInitializerEntryPoint {
fun hiltWorkerFactory(): HiltWorkerFactory
}

0 comments on commit b035384

Please sign in to comment.