refactor: extract clipboard setter as utils #104

Closed
septs wants to merge 2 commits from septs:clipboard into master
9 changed files with 24 additions and 19 deletions

View file

@ -2,7 +2,6 @@ package im.angry.openeuicc.ui
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.ClipData import android.content.ClipData
import android.content.ClipboardManager
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.text.method.PasswordTransformationMethod import android.text.method.PasswordTransformationMethod
@ -346,10 +345,9 @@ open class EuiccManagementFragment : Fragment(), EuiccProfilesChangedListener,
} }
iccid.setOnLongClickListener { iccid.setOnLongClickListener {
requireContext().getSystemService(ClipboardManager::class.java)!! requireContext().setClipboard("ICCID") {
.setPrimaryClip(ClipData.newPlainText("iccid", iccid.text)) ClipData.newPlainText("iccid", iccid.text)
Toast.makeText(requireContext(), R.string.toast_iccid_copied, Toast.LENGTH_SHORT) }
.show()
true true
} }

View file

@ -0,0 +1,14 @@
package im.angry.openeuicc.util
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.widget.Toast
import im.angry.openeuicc.common.R
fun Context.setClipboard(label: String, callback: () -> ClipData) {
getSystemService(ClipboardManager::class.java)!!
.setPrimaryClip(callback())
Toast.makeText(this, getString(R.string.toast_copied, label), Toast.LENGTH_SHORT)
.show()
}

View file

@ -17,7 +17,7 @@
<string name="switch_did_not_refresh">操作は成功しましたが、デバイスのモデムが更新を拒否しました。新しいプロファイルを使用するには機内モードに切り替えるか、再起動する必要があります。</string> <string name="switch_did_not_refresh">操作は成功しましたが、デバイスのモデムが更新を拒否しました。新しいプロファイルを使用するには機内モードに切り替えるか、再起動する必要があります。</string>
<string name="toast_profile_enable_failed">新しい eSIM プロファイルに切り替えることができません。</string> <string name="toast_profile_enable_failed">新しい eSIM プロファイルに切り替えることができません。</string>
<string name="toast_profile_name_too_long">ニックネームは 64 文字以内にしてください</string> <string name="toast_profile_name_too_long">ニックネームは 64 文字以内にしてください</string>
<string name="toast_iccid_copied">ICCID をクリップボードにコピーしました</string> <string name="toast_copied">%s をクリップボードにコピーしました</string>
<string name="slot_select">スロットを選択</string> <string name="slot_select">スロットを選択</string>
<string name="slot_select_select">選択</string> <string name="slot_select_select">選択</string>
<string name="usb_permission">USB の権限を許可</string> <string name="usb_permission">USB の権限を許可</string>

View file

@ -18,7 +18,7 @@
<string name="switch_did_not_refresh">操作成功, 但是您手机的基带拒绝刷新。您可能需要切换飞行模式或重新启动,以便使用新的配置文件。</string> <string name="switch_did_not_refresh">操作成功, 但是您手机的基带拒绝刷新。您可能需要切换飞行模式或重新启动,以便使用新的配置文件。</string>
<string name="toast_profile_enable_failed">无法切换到新的 eSIM 配置文件。</string> <string name="toast_profile_enable_failed">无法切换到新的 eSIM 配置文件。</string>
<string name="toast_profile_name_too_long">昵称不能超过 64 个字符</string> <string name="toast_profile_name_too_long">昵称不能超过 64 个字符</string>
<string name="toast_iccid_copied">已复制 ICCID 到剪贴板</string> <string name="toast_copied">已复制 %s 到剪贴板</string>
<string name="slot_select">选择卡槽</string> <string name="slot_select">选择卡槽</string>
<string name="slot_select_select">选择</string> <string name="slot_select_select">选择</string>
<string name="usb_permission">授予 USB 权限</string> <string name="usb_permission">授予 USB 权限</string>

View file

@ -29,7 +29,7 @@
<string name="toast_profile_enable_failed">Cannot switch to new eSIM profile.</string> <string name="toast_profile_enable_failed">Cannot switch to new eSIM profile.</string>
<string name="toast_profile_name_too_long">Nickname cannot be longer than 64 characters</string> <string name="toast_profile_name_too_long">Nickname cannot be longer than 64 characters</string>
<string name="toast_iccid_copied">ICCID copied to clipboard</string> <string name="toast_copied">%s copied to clipboard</string>
<string name="slot_select">Select Slot</string> <string name="slot_select">Select Slot</string>
<string name="slot_select_select">Select</string> <string name="slot_select_select">Select</string>

View file

@ -1,13 +1,12 @@
package im.angry.openeuicc.ui package im.angry.openeuicc.ui
import android.content.ClipData import android.content.ClipData
import android.content.ClipboardManager
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import android.widget.Toast
import androidx.preference.Preference import androidx.preference.Preference
import im.angry.easyeuicc.R import im.angry.easyeuicc.R
import im.angry.openeuicc.util.encodeHex import im.angry.openeuicc.util.encodeHex
import im.angry.openeuicc.util.setClipboard
import java.security.MessageDigest import java.security.MessageDigest
class UnprivilegedSettingsFragment : SettingsFragment() { class UnprivilegedSettingsFragment : SettingsFragment() {
@ -33,10 +32,9 @@ class UnprivilegedSettingsFragment : SettingsFragment() {
findPreference<Preference>("pref_info_ara_m")?.apply { findPreference<Preference>("pref_info_ara_m")?.apply {
summary = firstSigner.encodeHex() summary = firstSigner.encodeHex()
setOnPreferenceClickListener { setOnPreferenceClickListener {
requireContext().getSystemService(ClipboardManager::class.java)!! requireContext().setClipboard(title.toString()) {
.setPrimaryClip(ClipData.newPlainText("ara-m", summary)) ClipData.newPlainText("ara-m", summary)
Toast.makeText(requireContext(), R.string.toast_ara_m_copied, Toast.LENGTH_SHORT) }
.show()
true true
} }
} }

View file

@ -30,5 +30,4 @@
<string name="compatibility_check_verdict_unknown_likely_fail">挿入された取り外し可能な eSIM がデバイス上で管理できるかどうかは判断できません。デバイスが OMAPI のサポートを宣言していないため、このデバイス上で取り外し可能な eSIM を管理することはサポートされていない可能性があります。\n%s</string> <string name="compatibility_check_verdict_unknown_likely_fail">挿入された取り外し可能な eSIM がデバイス上で管理できるかどうかは判断できません。デバイスが OMAPI のサポートを宣言していないため、このデバイス上で取り外し可能な eSIM を管理することはサポートされていない可能性があります。\n%s</string>
<string name="compatibility_check_verdict_unknown">挿入された取り外し可能な eSIM がデバイス上で管理できるかどうかを確認できません。\n%s</string> <string name="compatibility_check_verdict_unknown">挿入された取り外し可能な eSIM がデバイス上で管理できるかどうかを確認できません。\n%s</string>
<string name="compatibility_check_verdict_fail_shared">ただし、eSIM プロファイルがすでに読み込まれている場合、有効化されたプロファイル自体は引き続き機能します。また、プロファイルが管理できない場合は、このデバイスで USB カードリーダーを介してプロファイルを管理できる可能性があります。</string> <string name="compatibility_check_verdict_fail_shared">ただし、eSIM プロファイルがすでに読み込まれている場合、有効化されたプロファイル自体は引き続き機能します。また、プロファイルが管理できない場合は、このデバイスで USB カードリーダーを介してプロファイルを管理できる可能性があります。</string>
<string name="toast_ara_m_copied">ARA-M SHA-1 をクリップボードにコピーしました</string>
</resources> </resources>

View file

@ -28,5 +28,4 @@
<string name="compatibility_check_verdict_unknown_likely_fail">我们无法确定是否可以在您的设备上管理可插拔 eSIM 卡。由于您的设备未声明支持OMAPI因此更有可能不支持在此设备上管理可插拔 eSIM。\n%s</string> <string name="compatibility_check_verdict_unknown_likely_fail">我们无法确定是否可以在您的设备上管理可插拔 eSIM 卡。由于您的设备未声明支持OMAPI因此更有可能不支持在此设备上管理可插拔 eSIM。\n%s</string>
<string name="compatibility_check_verdict_unknown">我们无法确定是否可以在您的设备上管理可插拔 eSIM 卡。\n%s</string> <string name="compatibility_check_verdict_unknown">我们无法确定是否可以在您的设备上管理可插拔 eSIM 卡。\n%s</string>
<string name="compatibility_check_verdict_fail_shared">然而已经加载了eSIM配置文件的可插拔 eSIM 卡仍然可以工作; 即使无法在装置上直接管理可插拔 eSIM 卡中的配置文件,您仍然可以使用 USB 卡读卡器来管理配置文件。</string> <string name="compatibility_check_verdict_fail_shared">然而已经加载了eSIM配置文件的可插拔 eSIM 卡仍然可以工作; 即使无法在装置上直接管理可插拔 eSIM 卡中的配置文件,您仍然可以使用 USB 卡读卡器来管理配置文件。</string>
<string name="toast_ara_m_copied">ARA-M SHA-1 已拷贝到剪贴板</string>
</resources> </resources>

View file

@ -7,9 +7,6 @@
<!-- Settings --> <!-- Settings -->
<string name="pref_developer_ara_m" translatable="false">ARA-M SHA-1</string> <string name="pref_developer_ara_m" translatable="false">ARA-M SHA-1</string>
<!-- Toast -->
<string name="toast_ara_m_copied">ARA-M SHA-1 copied to clipboard</string>
<!-- Compatibility Check Descriptions --> <!-- Compatibility Check Descriptions -->
<string name="compatibility_check_system_features">System Features</string> <string name="compatibility_check_system_features">System Features</string>
<string name="compatibility_check_system_features_desc">Whether your device has all the required features for managing removable eUICC cards. For example, basic telephony and OMAPI support.</string> <string name="compatibility_check_system_features_desc">Whether your device has all the required features for managing removable eUICC cards. For example, basic telephony and OMAPI support.</string>