浏览代码

ui: Add placeholder text for when no eUICC is found to TextProvider

Peter Cai 1 年之前
父节点
当前提交
14ea84c36e

+ 6 - 0
app-common/src/main/java/im/angry/openeuicc/di/CustomizableTextProvider.kt

@@ -1,6 +1,12 @@
 package im.angry.openeuicc.di
 
 interface CustomizableTextProvider {
+    /**
+     * Explanation string for when no eUICC is found on the device.
+     * This could be different depending on whether the app is privileged or not.
+     */
+    val noEuiccExplanation: String
+
     /**
      * Format the name of a logical slot; internal only -- not intended for
      * other channels such as USB.

+ 3 - 0
app-common/src/main/java/im/angry/openeuicc/di/DefaultCustomizableTextProvider.kt

@@ -4,6 +4,9 @@ import android.content.Context
 import im.angry.openeuicc.common.R
 
 open class DefaultCustomizableTextProvider(private val context: Context) : CustomizableTextProvider {
+    override val noEuiccExplanation: String
+        get() = context.getString(R.string.no_euicc)
+
     override fun formatInternalChannelName(logicalSlotId: Int): String =
         context.getString(R.string.channel_name_format, logicalSlotId)
 }

+ 7 - 2
app-common/src/main/java/im/angry/openeuicc/ui/NoEuiccPlaceholderFragment.kt

@@ -4,15 +4,20 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.TextView
 import androidx.fragment.app.Fragment
 import im.angry.openeuicc.common.R
+import im.angry.openeuicc.util.*
 
-class NoEuiccPlaceholderFragment : Fragment() {
+class NoEuiccPlaceholderFragment : Fragment(), OpenEuiccContextMarker {
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View? {
-        return inflater.inflate(R.layout.fragment_no_euicc_placeholder, container, false)
+        val view = inflater.inflate(R.layout.fragment_no_euicc_placeholder, container, false)
+        val textView = view.requireViewById<TextView>(R.id.no_euicc_placeholder)
+        textView.text = appContainer.customizableTextProvider.noEuiccExplanation
+        return view
     }
 }

+ 4 - 0
app/src/main/java/im/angry/openeuicc/di/PrivilegedAppContainer.kt

@@ -23,4 +23,8 @@ class PrivilegedAppContainer(context: Context) : DefaultAppContainer(context) {
     override val euiccChannelFactory by lazy {
         PrivilegedEuiccChannelFactory(context)
     }
+
+    override val customizableTextProvider by lazy {
+        PrivilegedCustomizableTextProvider(context)
+    }
 }

+ 10 - 0
app/src/main/java/im/angry/openeuicc/di/PrivilegedCustomizableTextProvider.kt

@@ -0,0 +1,10 @@
+package im.angry.openeuicc.di
+
+import android.content.Context
+import im.angry.openeuicc.R
+
+class PrivilegedCustomizableTextProvider(private val context: Context) :
+    DefaultCustomizableTextProvider(context) {
+    override val noEuiccExplanation: String
+        get() = context.getString(R.string.no_euicc_priv)
+}

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

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <string name="no_euicc">このデバイスで eUICC が見つかりません。\nデバイスによってはアプリのメニューからデュアル SIM を有効化する必要があります。</string>
+    <string name="no_euicc_priv">このデバイスで eUICC が見つかりません。\nデバイスによってはアプリのメニューからデュアル SIM を有効化する必要があります。</string>
     <string name="telephony_manager">TelephonyManager (特権)</string>
     <string name="dsds">デュアル SIM</string>
     <string name="toast_dsds_switched">DSDS の状態が切り替わりました。モデムが再起動するまでお待ちください。</string>

+ 1 - 1
app/src/main/res/values-zh-rCN/strings.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <string name="no_euicc">在此设备上找不到 eUICC 芯片。\n在某些设备上,您可能需要先在此应用的菜单中启用双卡支持。</string>
+    <string name="no_euicc_priv">在此设备上找不到 eUICC 芯片。\n在某些设备上,您可能需要先在此应用的菜单中启用双卡支持。</string>
     <string name="dsds">双卡</string>
     <string name="toast_dsds_switched">双卡支持状态已切换。请等待基带重新启动。</string>
     <string name="footer_mep">此卡槽支持多个启用配置文件 (MEP)。要启用或禁用此功能,请使用\"卡槽映射\"工具。</string>

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

@@ -1,6 +1,6 @@
 <resources>
     <string name="app_name" translatable="false">OpenEUICC</string>
-    <string name="no_euicc">No eUICC found on this device.\nOn some devices, you may need to enable dual SIM first in the menu of this app.</string>
+    <string name="no_euicc_priv">No eUICC found on this device.\nOn some devices, you may need to enable dual SIM first in the menu of this app.</string>
     <string name="telephony_manager">TelephonyManager (Privileged)</string>
 
     <string name="dsds">Dual SIM</string>