Browse Source

Merge branch 'koin2.0' into 'master'

Koin2.0

See merge request kdanandroid/pdf/pdfreaderreadermodule!35
Wayne Huang 5 năm trước cách đây
mục cha
commit
2fbd70e8c5

+ 1 - 1
build.gradle

@@ -27,7 +27,7 @@ android {
 ext {
     daggerVersion = 2.12
     lifecycleVersion = "1.1.0"
-    koin_version = "1.0.2"
+    koin_version = "2.0.0"
 }
 
 dependencies {

+ 8 - 2
src/main/java/com/kdanmobile/reader/InitializerContentProvider.kt

@@ -4,7 +4,10 @@ import android.content.ContentProvider
 import android.content.ContentValues
 import android.database.Cursor
 import android.net.Uri
-import org.koin.android.ext.android.startKoin
+import com.kdanmobile.reader.koin.KoinModule
+import com.kdanmobile.reader.koin.MyKoinContext
+import org.koin.android.ext.koin.androidContext
+import org.koin.dsl.koinApplication
 
 /**
  * This ContentProvider is used for initializing some stuff.
@@ -13,7 +16,10 @@ class InitializerContentProvider : ContentProvider() {
 
     override fun onCreate(): Boolean {
         val context = context.applicationContext
-        startKoin(context, listOf(KoinModule.m))
+        MyKoinContext.koinApplication = koinApplication {
+            androidContext(context)
+            modules(KoinModule.m)
+        }
         return true
     }
 

+ 6 - 1
src/main/java/com/kdanmobile/reader/ReaderActivity.kt

@@ -24,6 +24,7 @@ import com.kdanmobile.reader.Utils.applyConstraintSet
 import com.kdanmobile.reader.annotationattribute.AnnotationAttribute
 import com.kdanmobile.reader.annotationattribute.AnnotationColor
 import com.kdanmobile.reader.annotationattribute.InkAttribute
+import com.kdanmobile.reader.koin.ReadModuleKoinComponent
 import com.kdanmobile.reader.password.DialogPasswordActivity
 import com.kdanmobile.reader.screen.contextmenu.TextBoxContextMenuActionListener
 import com.kdanmobile.reader.screen.model.SharePrefsModel
@@ -49,7 +50,11 @@ import java.io.File
 import java.util.*
 import kotlin.properties.Delegates
 
-abstract class ReaderActivity : KdanBaseActivity(), ReaderSettingListener, PdfThumbFragmentListener {
+abstract class ReaderActivity :
+        KdanBaseActivity(),
+        ReaderSettingListener,
+        PdfThumbFragmentListener,
+        ReadModuleKoinComponent {
 
     /**
      * If return true, ReaderActivity.onBackPressed will not run

+ 10 - 5
src/main/java/com/kdanmobile/reader/KoinModule.kt

@@ -1,14 +1,18 @@
-package com.kdanmobile.reader
+package com.kdanmobile.reader.koin
 
 import android.content.Context
 import com.kdanmobile.reader.copyfile.CopyFileViewModel
 import com.kdanmobile.reader.copyfile.CopyFileInfo
 import android.net.Uri
+import com.kdanmobile.reader.Config
+import com.kdanmobile.reader.ReaderModel
+import com.kdanmobile.reader.ReaderModelManager
+import com.kdanmobile.reader.ReaderViewModel
 import com.kdanmobile.reader.thumb.PdfThumbViewModel
-import org.koin.android.viewmodel.ext.koin.viewModel
-import org.koin.dsl.module.module
+import org.koin.android.viewmodel.dsl.viewModel
+import org.koin.dsl.module
 
-object KoinModule {
+internal object KoinModule {
     val m = module {
         single { ReaderModelManager() }
         viewModel { (applicationContext: Context, info: CopyFileInfo) ->
@@ -20,7 +24,8 @@ object KoinModule {
                     uri,
                     Config.PDF_SDK_LICENSE,
                     Config.PDF_SDK_RSA_MSG
-            ) }
+            )
+        }
         viewModel { (readerModel: ReaderModel) -> PdfThumbViewModel(readerModel) }
     }
 }

+ 7 - 0
src/main/java/com/kdanmobile/reader/koin/MyKoinContext.kt

@@ -0,0 +1,7 @@
+package com.kdanmobile.reader.koin
+
+import org.koin.core.KoinApplication
+
+internal object MyKoinContext {
+    lateinit var koinApplication: KoinApplication
+}

+ 10 - 0
src/main/java/com/kdanmobile/reader/koin/ReadModuleKoinComponent.kt

@@ -0,0 +1,10 @@
+package com.kdanmobile.reader.koin
+
+import org.koin.core.Koin
+import org.koin.core.KoinComponent
+
+interface ReadModuleKoinComponent : KoinComponent {
+    override fun getKoin(): Koin {
+        return MyKoinContext.koinApplication.koin
+    }
+}

+ 5 - 1
src/main/java/com/kdanmobile/reader/thumb/PdfThumbDialogFragment.kt

@@ -13,6 +13,7 @@ import android.support.v7.widget.RecyclerView
 import android.support.v7.widget.Toolbar
 import android.support.v7.widget.helper.ItemTouchHelper
 import android.view.*
+import com.kdanmobile.reader.koin.ReadModuleKoinComponent
 import com.kdanmobile.reader.R
 import com.kdanmobile.reader.ReaderActivity
 import com.kdanmobile.reader.ReaderViewModel
@@ -27,7 +28,10 @@ import org.koin.android.viewmodel.ext.android.viewModel
 import org.koin.core.parameter.parametersOf
 import java.io.File
 
-abstract class PdfThumbDialogFragment: DialogFragment(), PdfThumbAdapter.PageMoveHandler {
+abstract class PdfThumbDialogFragment:
+        DialogFragment(),
+        PdfThumbAdapter.PageMoveHandler,
+        ReadModuleKoinComponent {
     abstract fun provideIntent(): Intent
     abstract fun canDelete(): Boolean
     abstract fun canExtract() : Boolean