Skip to content

Commit

Permalink
- Removed: Remove default WorkManger initialization node
Browse files Browse the repository at this point in the history
- Implemented: Implemented workManagerModule and initialize in StartKoin
  • Loading branch information
danggai committed May 13, 2021
1 parent fb0ac39 commit 5cdec73
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 6 deletions.
6 changes: 6 additions & 0 deletions app/src/main/AndroidManifest.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="danggai.app.parcelwhere">

<uses-permission android:name="android.permission.INTERNET" />
Expand All @@ -15,6 +16,11 @@
android:screenOrientation="portrait"
>

<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="danggai.app.parcelwhere.App.workmanager-init"
tools:node="remove"/>

<activity
android:name="danggai.app.parcelwhere.ui.main.MainActivity"
android:launchMode="singleTask" >
Expand Down
17 changes: 11 additions & 6 deletions app/src/main/java/danggai/app/parcelwhere/App.kt
@@ -1,27 +1,33 @@
package danggai.app.parcelwhere

import android.app.Application
import danggai.app.parcelwhere.di.NetworkModule
import danggai.app.parcelwhere.di.RoomModule
import danggai.app.parcelwhere.di.ViewModelModule
import danggai.app.parcelwhere.di.repositoryModule
import androidx.work.DelegatingWorkerFactory
import androidx.work.WorkerFactory
import danggai.app.parcelwhere.di.*
import danggai.app.parcelwhere.util.log
import danggai.app.parcelwhere.worker.MyWorkerFactory
import io.reactivex.exceptions.UndeliverableException
import io.reactivex.plugins.RxJavaPlugins
import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.androidx.workmanager.koin.workManagerFactory
import org.koin.core.KoinExperimentalAPI
import org.koin.core.context.startKoin
import java.io.IOException
import java.net.SocketException


class App: Application() {

@KoinExperimentalAPI
override fun onCreate() {
super.onCreate()

startKoin {
androidLogger()
androidContext(this@App)
modules(listOf(ViewModelModule, NetworkModule, repositoryModule, RoomModule))
workManagerFactory()
modules(listOf(ViewModelModule, NetworkModule, repositoryModule, RoomModule, WorkerFactoryModule))
}

RxJavaPlugins.setErrorHandler { e ->
Expand All @@ -38,5 +44,4 @@ class App: Application() {
}
}
}

}
@@ -0,0 +1,14 @@
package danggai.app.parcelwhere.di

import androidx.work.WorkerFactory
import danggai.app.parcelwhere.data.api.ApiInterface
import danggai.app.parcelwhere.data.api.ApiRepository
import danggai.app.parcelwhere.worker.MyWorkerFactory
import danggai.app.parcelwhere.worker.RefreshWorker
import org.koin.androidx.workmanager.dsl.worker
import org.koin.dsl.module
import retrofit2.Retrofit

val WorkerFactoryModule = module {
worker { params -> RefreshWorker(get(), get(), workerParams = params.get()) }
}

0 comments on commit 5cdec73

Please sign in to comment.