From e3d1fe8aee8cde94bfe0f1f3bd844da57badce81 Mon Sep 17 00:00:00 2001 From: septs Date: Fri, 20 Dec 2024 09:07:34 +0800 Subject: [PATCH 1/2] fix: profile rename state restore --- .../openeuicc/ui/ProfileRenameFragment.kt | 51 ++++++++++++------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/ProfileRenameFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/ProfileRenameFragment.kt index e3f2d8d..607ac5e 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/ProfileRenameFragment.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/ProfileRenameFragment.kt @@ -5,6 +5,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.EditText import android.widget.ProgressBar import android.widget.Toast import androidx.appcompat.widget.Toolbar @@ -19,19 +20,19 @@ import net.typeblog.lpac_jni.LocalProfileAssistant class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragmentMarker { companion object { const val TAG = "ProfileRenameFragment" + private const val FIELD_ICCID = "iccid" + private const val FIELD_CURRENT_NAME = "currentName" + private const val FIELD_EDITED_NAME = "editedName" - fun newInstance(slotId: Int, portId: Int, iccid: String, currentName: String): ProfileRenameFragment { - val instance = newInstanceEuicc(ProfileRenameFragment::class.java, slotId, portId) - instance.requireArguments().apply { - putString("iccid", iccid) - putString("currentName", currentName) + fun newInstance(slotId: Int, portId: Int, iccid: String, currentName: String) = + newInstanceEuicc(ProfileRenameFragment::class.java, slotId, portId) { + putString(FIELD_ICCID, iccid) + putString(FIELD_CURRENT_NAME, currentName) } - return instance - } } private lateinit var toolbar: Toolbar - private lateinit var profileRenameNewName: TextInputLayout + private lateinit var editText: EditText private lateinit var progress: ProgressBar private var renaming = false @@ -44,7 +45,7 @@ class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragment val view = inflater.inflate(R.layout.fragment_profile_rename, container, false) toolbar = view.requireViewById(R.id.toolbar) - profileRenameNewName = view.requireViewById(R.id.profile_rename_new_name) + editText = view.requireViewById(R.id.profile_rename_new_name).editText!! progress = view.requireViewById(R.id.progress) toolbar.inflateMenu(R.menu.fragment_profile_rename) @@ -66,14 +67,31 @@ class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragment } } - override fun onStart() { - super.onStart() - profileRenameNewName.editText!!.setText(requireArguments().getString("currentName")) + private val iccid by lazy { + requireArguments().getString("iccid")!! } + private val currentName by lazy { + requireArguments().getString("currentName")!! + } + + private val editedName: String + get() = editText.text.toString().trim() + override fun onResume() { super.onResume() setWidthPercent(95) + editText.requestFocus() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + outState.putString(FIELD_EDITED_NAME, editedName) + } + + override fun onViewStateRestored(savedInstanceState: Bundle?) { + super.onViewStateRestored(savedInstanceState) + editText.setText(savedInstanceState?.getString(FIELD_EDITED_NAME) ?: currentName) } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { @@ -101,12 +119,9 @@ class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragment lifecycleScope.launch { ensureEuiccChannelManager() euiccChannelManagerService.waitForForegroundTask() - val res = euiccChannelManagerService.launchProfileRenameTask( - slotId, - portId, - requireArguments().getString("iccid")!!, - profileRenameNewName.editText!!.text.toString().trim() - ).waitDone() + val res = euiccChannelManagerService + .launchProfileRenameTask(slotId, portId, iccid, editedName) + .waitDone() when (res) { is LocalProfileAssistant.ProfileNameTooLongException -> { -- 2.45.3 From 9d29aa8d980504fa58bbcdea9aedc59a8e0dc5ca Mon Sep 17 00:00:00 2001 From: septs Date: Sat, 21 Dec 2024 00:36:53 +0800 Subject: [PATCH 2/2] chore: move variables --- .../openeuicc/ui/ProfileRenameFragment.kt | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/ProfileRenameFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/ProfileRenameFragment.kt index 607ac5e..dc2020e 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/ProfileRenameFragment.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/ProfileRenameFragment.kt @@ -37,6 +37,17 @@ class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragment private var renaming = false + private val iccid by lazy { + requireArguments().getString("iccid")!! + } + + private val currentName by lazy { + requireArguments().getString("currentName")!! + } + + private val editedName: String + get() = editText.text.toString().trim() + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -67,17 +78,6 @@ class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragment } } - private val iccid by lazy { - requireArguments().getString("iccid")!! - } - - private val currentName by lazy { - requireArguments().getString("currentName")!! - } - - private val editedName: String - get() = editText.text.toString().trim() - override fun onResume() { super.onResume() setWidthPercent(95) -- 2.45.3