瀏覽代碼

Lift the ownership of EuiccChannelRepository to application

Should probably use Dagger but there's just this one thing and I'm too
lazy
Peter Cai 3 年之前
父節點
當前提交
27ca07cde0

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -11,6 +11,7 @@
     <uses-permission android:name="android.permission.SECURE_ELEMENT_PRIVILEGED_OPERATION" />
 
     <application
+        android:name=".OpenEUICCApplication"
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"

+ 8 - 0
app/src/main/java/im/angry/openeuicc/OpenEUICCApplication.kt

@@ -0,0 +1,8 @@
+package im.angry.openeuicc
+
+import android.app.Application
+import im.angry.openeuicc.core.EuiccChannelRepositoryProxy
+
+class OpenEUICCApplication : Application() {
+    val euiccChannelRepo = EuiccChannelRepositoryProxy(this)
+}

+ 5 - 2
app/src/main/java/im/angry/openeuicc/ui/MainActivity.kt

@@ -9,8 +9,9 @@ import android.widget.ArrayAdapter
 import android.widget.Spinner
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.lifecycleScope
+import im.angry.openeuicc.OpenEUICCApplication
 import im.angry.openeuicc.R
-import im.angry.openeuicc.core.EuiccChannelRepositoryProxy
+import im.angry.openeuicc.core.EuiccChannelRepository
 import im.angry.openeuicc.databinding.ActivityMainBinding
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -21,7 +22,7 @@ class MainActivity : AppCompatActivity() {
         const val TAG = "MainActivity"
     }
 
-    private val repo = EuiccChannelRepositoryProxy(this)
+    private lateinit var repo: EuiccChannelRepository
 
     private lateinit var spinnerAdapter: ArrayAdapter<String>
     private lateinit var spinner: Spinner
@@ -35,6 +36,8 @@ class MainActivity : AppCompatActivity() {
         binding = ActivityMainBinding.inflate(layoutInflater)
         setContentView(binding.root)
 
+        repo = (application as OpenEUICCApplication).euiccChannelRepo
+
         spinnerAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item)
 
         lifecycleScope.launch {