diff --git a/app-common/src/main/java/im/angry/openeuicc/core/LocalProfileAssistantWrapper.kt b/app-common/src/main/java/im/angry/openeuicc/core/LocalProfileAssistantWrapper.kt
index b715ca0..aab9e63 100644
--- a/app-common/src/main/java/im/angry/openeuicc/core/LocalProfileAssistantWrapper.kt
+++ b/app-common/src/main/java/im/angry/openeuicc/core/LocalProfileAssistantWrapper.kt
@@ -54,9 +54,8 @@ class LocalProfileAssistantWrapper(orig: LocalProfileAssistant) :
override fun euiccMemoryReset() = lpa.euiccMemoryReset()
- override fun setNickname(iccid: String, nickname: String) {
+ override fun setNickname(iccid: String, nickname: String): Boolean =
lpa.setNickname(iccid, nickname)
- }
override fun close() = lpa.close()
diff --git a/app-common/src/main/java/im/angry/openeuicc/service/EuiccChannelManagerService.kt b/app-common/src/main/java/im/angry/openeuicc/service/EuiccChannelManagerService.kt
index a20c8db..c4d16df 100644
--- a/app-common/src/main/java/im/angry/openeuicc/service/EuiccChannelManagerService.kt
+++ b/app-common/src/main/java/im/angry/openeuicc/service/EuiccChannelManagerService.kt
@@ -414,12 +414,16 @@ class EuiccChannelManagerService : LifecycleService(), OpenEuiccContextMarker {
getString(R.string.task_profile_rename_failure),
R.drawable.ic_task_rename
) {
- euiccChannelManager.withEuiccChannel(slotId, portId) { channel ->
+ val res = euiccChannelManager.withEuiccChannel(slotId, portId) { channel ->
channel.lpa.setNickname(
iccid,
name
)
}
+
+ if (!res) {
+ throw RuntimeException("Profile not renamed")
+ }
}
fun launchProfileDeleteTask(
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..8582278 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
@@ -14,7 +14,6 @@ import im.angry.openeuicc.common.R
import im.angry.openeuicc.service.EuiccChannelManagerService.Companion.waitDone
import im.angry.openeuicc.util.*
import kotlinx.coroutines.launch
-import net.typeblog.lpac_jni.LocalProfileAssistant
class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragmentMarker {
companion object {
@@ -82,18 +81,13 @@ class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragment
}
}
- private fun showErrorAndCancel(errorStrRes: Int) {
- Toast.makeText(
- requireContext(),
- errorStrRes,
- Toast.LENGTH_LONG
- ).show()
-
- renaming = false
- progress.visibility = View.GONE
- }
-
private fun rename() {
+ val name = profileRenameNewName.editText!!.text.toString().trim()
+ if (name.length >= 64) {
+ Toast.makeText(context, R.string.toast_profile_name_too_long, Toast.LENGTH_LONG).show()
+ return
+ }
+
renaming = true
progress.isIndeterminate = true
progress.visibility = View.VISIBLE
@@ -101,37 +95,21 @@ class ProfileRenameFragment : BaseMaterialDialogFragment(), EuiccChannelFragment
lifecycleScope.launch {
ensureEuiccChannelManager()
euiccChannelManagerService.waitForForegroundTask()
- val res = euiccChannelManagerService.launchProfileRenameTask(
+ euiccChannelManagerService.launchProfileRenameTask(
slotId,
portId,
requireArguments().getString("iccid")!!,
- profileRenameNewName.editText!!.text.toString().trim()
+ name
).waitDone()
- when (res) {
- is LocalProfileAssistant.ProfileNameTooLongException -> {
- showErrorAndCancel(R.string.profile_rename_too_long)
- }
+ if (parentFragment is EuiccProfilesChangedListener) {
+ (parentFragment as EuiccProfilesChangedListener).onEuiccProfilesChanged()
+ }
- is LocalProfileAssistant.ProfileNameIsInvalidUTF8Exception -> {
- showErrorAndCancel(R.string.profile_rename_encoding_error)
- }
-
- is Throwable -> {
- showErrorAndCancel(R.string.profile_rename_failure)
- }
-
- else -> {
- if (parentFragment is EuiccProfilesChangedListener) {
- (parentFragment as EuiccProfilesChangedListener).onEuiccProfilesChanged()
- }
-
- try {
- dismiss()
- } catch (e: IllegalStateException) {
- // Ignored
- }
- }
+ try {
+ dismiss()
+ } catch (e: IllegalStateException) {
+ // Ignored
}
}
}
diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardMethodSelectFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardMethodSelectFragment.kt
index 6203364..d329048 100644
--- a/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardMethodSelectFragment.kt
+++ b/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardMethodSelectFragment.kt
@@ -1,7 +1,6 @@
package im.angry.openeuicc.ui.wizard
import android.app.AlertDialog
-import android.content.ClipboardManager
import android.graphics.BitmapFactory
import android.os.Bundle
import android.view.LayoutInflater
@@ -9,7 +8,6 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
-import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.DividerItemDecoration
@@ -70,9 +68,6 @@ class DownloadWizardMethodSelectFragment : DownloadWizardActivity.DownloadWizard
DownloadMethod(R.drawable.ic_gallery_black, R.string.download_wizard_method_gallery) {
gallerySelectorLauncher.launch("image/*")
},
- DownloadMethod(R.drawable.ic_paste_go, R.string.download_wizard_method_clipboard) {
- handleLoadFromClipboard()
- },
DownloadMethod(R.drawable.ic_edit, R.string.download_wizard_method_manual) {
gotoNextFragment(DownloadWizardDetailsFragment())
}
@@ -108,22 +103,6 @@ class DownloadWizardMethodSelectFragment : DownloadWizardActivity.DownloadWizard
return view
}
- private fun handleLoadFromClipboard() {
- val clipboard = requireContext().getSystemService(ClipboardManager::class.java)
- val text = clipboard.primaryClip?.getItemAt(0)?.text
-
- if (text == null) {
- Toast.makeText(
- requireContext(),
- R.string.profile_download_no_lpa_string,
- Toast.LENGTH_SHORT
- ).show()
- return
- }
-
- processLpaString(text.toString())
- }
-
private fun processLpaString(s: String) {
val components = s.split("$")
if (components.size < 3 || components[0] != "LPA:1") {
diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardSlotSelectFragment.kt b/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardSlotSelectFragment.kt
index 3723aea..f16a086 100644
--- a/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardSlotSelectFragment.kt
+++ b/app-common/src/main/java/im/angry/openeuicc/ui/wizard/DownloadWizardSlotSelectFragment.kt
@@ -57,15 +57,13 @@ class DownloadWizardSlotSelectFragment : DownloadWizardActivity.DownloadWizardSt
super.beforeNext()
if (adapter.selected.freeSpace < LOW_NVRAM_THRESHOLD) {
- val activity = requireActivity()
-
AlertDialog.Builder(requireContext()).apply {
setTitle(R.string.profile_download_low_nvram_title)
setMessage(R.string.profile_download_low_nvram_message)
setCancelable(true)
setPositiveButton(android.R.string.ok, null)
setNegativeButton(android.R.string.cancel) { _, _ ->
- activity.finish()
+ requireActivity().finish()
}
show()
}
diff --git a/app-common/src/main/res/drawable/ic_paste_go.xml b/app-common/src/main/res/drawable/ic_paste_go.xml
deleted file mode 100644
index 7536fff..0000000
--- a/app-common/src/main/res/drawable/ic_paste_go.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-