From 8294a3594f0270ed6e8acf21ecc47a4e97cdc167 Mon Sep 17 00:00:00 2001 From: septs Date: Thu, 5 Dec 2024 09:46:14 +0800 Subject: [PATCH 1/6] feat: show profile class with unfiltered profile list --- .../openeuicc/ui/EuiccManagementFragment.kt | 20 +++++++++- .../src/main/res/layout/euicc_profile.xml | 37 +++++++++---------- app-common/src/main/res/values-ja/strings.xml | 3 +- app-common/src/main/res/values/strings.xml | 8 +++- 4 files changed, 43 insertions(+), 25 deletions(-) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt index b7462e2..d022cf7 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt @@ -5,6 +5,7 @@ import android.content.ClipData import android.content.ClipboardManager import android.content.Intent import android.os.Bundle +import android.text.Html import android.text.method.PasswordTransformationMethod import android.view.LayoutInflater import android.view.Menu @@ -20,6 +21,7 @@ import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat +import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope @@ -339,6 +341,7 @@ open class EuiccManagementFragment : Fragment(), EuiccProfilesChangedListener, private val name: TextView = root.requireViewById(R.id.name) private val state: TextView = root.requireViewById(R.id.state) private val provider: TextView = root.requireViewById(R.id.provider) + private val profileClass: TextView = root.requireViewById(R.id.profile_class) private val profileMenu: ImageButton = root.requireViewById(R.id.profile_menu) init { @@ -374,7 +377,22 @@ open class EuiccManagementFragment : Fragment(), EuiccProfilesChangedListener, R.string.disabled } ) - provider.text = profile.providerName + provider.text = Html.fromHtml( + getString(R.string.provider, profile.providerName), + Html.FROM_HTML_MODE_COMPACT + ) + val profileClassName = getString( + when (profile.profileClass) { + LocalProfileInfo.Clazz.Testing -> R.string.profile_class_testing + LocalProfileInfo.Clazz.Provisioning -> R.string.profile_class_provisioning + LocalProfileInfo.Clazz.Operational -> R.string.profile_class_operational + } + ) + profileClass.isVisible = unfilteredProfileListFlow.value + profileClass.text = Html.fromHtml( + getString(R.string.profile_class, profileClassName), + Html.FROM_HTML_MODE_COMPACT + ) iccid.text = profile.iccid iccid.transformationMethod = PasswordTransformationMethod.getInstance() } diff --git a/app-common/src/main/res/layout/euicc_profile.xml b/app-common/src/main/res/layout/euicc_profile.xml index 06aa2b8..4b8ba17 100644 --- a/app-common/src/main/res/layout/euicc_profile.xml +++ b/app-common/src/main/res/layout/euicc_profile.xml @@ -49,32 +49,29 @@ android:singleLine="true" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/name" - app:layout_constraintBottom_toTopOf="@+id/provider_label"/> - - + app:layout_constraintBottom_toTopOf="@+id/provider"/> + app:layout_constraintBottom_toTopOf="@+id/profile_class"/> + + diff --git a/app-common/src/main/res/values-ja/strings.xml b/app-common/src/main/res/values-ja/strings.xml index 925a5a2..d515176 100644 --- a/app-common/src/main/res/values-ja/strings.xml +++ b/app-common/src/main/res/values-ja/strings.xml @@ -10,8 +10,7 @@ OpenMobile API (OMAPI) 有効済み 無効済み - プロバイダー: - ICCID: + <b>プロバイダー:</b> %s 有効化 無効化 削除 diff --git a/app-common/src/main/res/values/strings.xml b/app-common/src/main/res/values/strings.xml index d0813d2..53dc67c 100644 --- a/app-common/src/main/res/values/strings.xml +++ b/app-common/src/main/res/values/strings.xml @@ -12,8 +12,12 @@ Enabled Disabled - Provider: - ICCID: + <b>Provider:</b> %s + <b>Class:</b> %s + Testing + Provisioning + Operational + ICCID: Enable Disable -- 2.45.3 From f1cd528c0dd328580a4650d49d4461050a331478 Mon Sep 17 00:00:00 2001 From: septs Date: Thu, 5 Dec 2024 10:06:45 +0800 Subject: [PATCH 2/6] feat: profile class invisible by default --- app-common/src/main/res/layout/euicc_profile.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app-common/src/main/res/layout/euicc_profile.xml b/app-common/src/main/res/layout/euicc_profile.xml index 4b8ba17..b97a6dd 100644 --- a/app-common/src/main/res/layout/euicc_profile.xml +++ b/app-common/src/main/res/layout/euicc_profile.xml @@ -67,11 +67,12 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="6dp" - android:textSize="14sp" android:singleLine="true" + android:textSize="14sp" + android:visibility="invisible" + app:layout_constraintBottom_toTopOf="@+id/iccid_label" app:layout_constraintLeft_toLeftOf="parent" - app:layout_constraintTop_toBottomOf="@id/provider" - app:layout_constraintBottom_toTopOf="@+id/iccid_label"/> + app:layout_constraintTop_toBottomOf="@id/provider" /> Date: Thu, 5 Dec 2024 11:00:58 +0800 Subject: [PATCH 3/6] chore: accept reviews --- .../openeuicc/ui/EuiccManagementFragment.kt | 15 +++---- .../src/main/res/layout/euicc_profile.xml | 43 +++++++++++++++---- app-common/src/main/res/values/strings.xml | 4 +- 3 files changed, 42 insertions(+), 20 deletions(-) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt index d022cf7..7eed660 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt @@ -341,6 +341,7 @@ open class EuiccManagementFragment : Fragment(), EuiccProfilesChangedListener, private val name: TextView = root.requireViewById(R.id.name) private val state: TextView = root.requireViewById(R.id.state) private val provider: TextView = root.requireViewById(R.id.provider) + private val profileClassLabel: TextView = root.requireViewById(R.id.profile_class_label) private val profileClass: TextView = root.requireViewById(R.id.profile_class) private val profileMenu: ImageButton = root.requireViewById(R.id.profile_menu) @@ -377,22 +378,16 @@ open class EuiccManagementFragment : Fragment(), EuiccProfilesChangedListener, R.string.disabled } ) - provider.text = Html.fromHtml( - getString(R.string.provider, profile.providerName), - Html.FROM_HTML_MODE_COMPACT - ) - val profileClassName = getString( + provider.text = profile.providerName + profileClassLabel.isVisible = unfilteredProfileListFlow.value + profileClass.isVisible = unfilteredProfileListFlow.value + profileClass.setText( when (profile.profileClass) { LocalProfileInfo.Clazz.Testing -> R.string.profile_class_testing LocalProfileInfo.Clazz.Provisioning -> R.string.profile_class_provisioning LocalProfileInfo.Clazz.Operational -> R.string.profile_class_operational } ) - profileClass.isVisible = unfilteredProfileListFlow.value - profileClass.text = Html.fromHtml( - getString(R.string.profile_class, profileClassName), - Html.FROM_HTML_MODE_COMPACT - ) iccid.text = profile.iccid iccid.transformationMethod = PasswordTransformationMethod.getInstance() } diff --git a/app-common/src/main/res/layout/euicc_profile.xml b/app-common/src/main/res/layout/euicc_profile.xml index b97a6dd..83aae8d 100644 --- a/app-common/src/main/res/layout/euicc_profile.xml +++ b/app-common/src/main/res/layout/euicc_profile.xml @@ -49,30 +49,57 @@ android:singleLine="true" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/name" - app:layout_constraintBottom_toTopOf="@+id/provider"/> + app:layout_constraintBottom_toTopOf="@+id/provider_label"/> + + + + + android:singleLine="true" + app:layout_constraintLeft_toRightOf="@id/profile_class_label" + app:layout_constraintTop_toBottomOf="@id/provider" + app:layout_constraintBottom_toTopOf="@+id/iccid"/> Enabled Disabled - <b>Provider:</b> %s - <b>Class:</b> %s + Provider: + Class: Testing Provisioning Operational -- 2.45.3 From c867a13d0d01ab68be6d9a56e249f16abfe0f9b3 Mon Sep 17 00:00:00 2001 From: septs Date: Thu, 5 Dec 2024 11:01:48 +0800 Subject: [PATCH 4/6] chore: cleanup unused imports --- .../main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt index 7eed660..824b683 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt @@ -5,7 +5,6 @@ import android.content.ClipData import android.content.ClipboardManager import android.content.Intent import android.os.Bundle -import android.text.Html import android.text.method.PasswordTransformationMethod import android.view.LayoutInflater import android.view.Menu -- 2.45.3 From d7588cfb88d9ebb41c2e19b25f845de4cfe46dd2 Mon Sep 17 00:00:00 2001 From: septs Date: Thu, 5 Dec 2024 11:02:35 +0800 Subject: [PATCH 5/6] revert: strings (ja) --- app-common/src/main/res/values-ja/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-common/src/main/res/values-ja/strings.xml b/app-common/src/main/res/values-ja/strings.xml index d515176..02cf737 100644 --- a/app-common/src/main/res/values-ja/strings.xml +++ b/app-common/src/main/res/values-ja/strings.xml @@ -10,7 +10,7 @@ OpenMobile API (OMAPI) 有効済み 無効済み - <b>プロバイダー:</b> %s + プロバイダー: 有効化 無効化 削除 -- 2.45.3 From 93e7b7677461478e91dee7f07975341f525c1401 Mon Sep 17 00:00:00 2001 From: septs Date: Fri, 6 Dec 2024 12:17:27 +0800 Subject: [PATCH 6/6] chore: simplify logical --- .../java/im/angry/openeuicc/ui/EuiccManagementFragment.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt index 824b683..8947480 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt @@ -367,6 +367,10 @@ open class EuiccManagementFragment : Fragment(), EuiccProfilesChangedListener, private lateinit var profile: LocalProfileInfo fun setProfile(profile: LocalProfileInfo) { + if (unfilteredProfileListFlow.value) { + profileClassLabel.isVisible = true + profileClass.isVisible = true + } this.profile = profile name.text = profile.displayName @@ -378,9 +382,7 @@ open class EuiccManagementFragment : Fragment(), EuiccProfilesChangedListener, } ) provider.text = profile.providerName - profileClassLabel.isVisible = unfilteredProfileListFlow.value - profileClass.isVisible = unfilteredProfileListFlow.value - profileClass.setText( + if (profileClass.isVisible) profileClass.setText( when (profile.profileClass) { LocalProfileInfo.Clazz.Testing -> R.string.profile_class_testing LocalProfileInfo.Clazz.Provisioning -> R.string.profile_class_provisioning -- 2.45.3