瀏覽代碼

ui: Add option to reload all slots

Peter Cai 1 年之前
父節點
當前提交
8210f06098

+ 21 - 0
app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt

@@ -13,6 +13,7 @@ import android.widget.ArrayAdapter
 import android.widget.ProgressBar
 import android.widget.Spinner
 import androidx.fragment.app.Fragment
+import androidx.fragment.app.commit
 import androidx.lifecycle.lifecycleScope
 import im.angry.openeuicc.common.R
 import im.angry.openeuicc.util.*
@@ -98,6 +99,10 @@ open class MainActivity : BaseEuiccAccessActivity(), OpenEuiccContextMarker {
                 startActivity(Intent(this, SettingsActivity::class.java));
                 true
             }
+            R.id.reload -> {
+                refresh()
+                true
+            }
             else -> super.onOptionsItemSelected(item)
         }
 
@@ -154,4 +159,20 @@ open class MainActivity : BaseEuiccAccessActivity(), OpenEuiccContextMarker {
             }
         }
     }
+
+    private fun refresh() {
+        lifecycleScope.launch {
+            loading = true
+
+            supportFragmentManager.commit {
+                fragments.firstOrNull()?.let {
+                    remove(it)
+                }
+            }
+            fragments.clear()
+            spinnerAdapter.clear()
+
+            init()
+        }
+    }
 }

+ 5 - 0
app-common/src/main/res/menu/activity_main.xml

@@ -7,6 +7,11 @@
         app:actionViewClass="android.widget.Spinner"
         app:showAsAction="always" />
 
+    <item
+        android:id="@+id/reload"
+        android:title="@string/reload"
+        app:showAsAction="never" />
+
     <item
         android:id="@+id/settings"
         android:title="@string/pref_settings"

+ 1 - 0
app-common/src/main/res/values/strings.xml

@@ -3,6 +3,7 @@
     <string name="no_euicc">No removable eUICC card accessible by this app is detected on this device.</string>
     <string name="unknown">Unknown</string>
     <string name="help">Help</string>
+    <string name="reload">Reload Slots</string>
 
     <string name="channel_name_format">Logical Slot %d</string>