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.content.ClipData
import android.content.ClipboardManager
import android.content.Intent
import android.os.Bundle
import android.text.method.PasswordTransformationMethod
@ -346,10 +345,9 @@ open class EuiccManagementFragment : Fragment(), EuiccProfilesChangedListener,
}
iccid.setOnLongClickListener {
requireContext().getSystemService(ClipboardManager::class.java)!!
.setPrimaryClip(ClipData.newPlainText("iccid", iccid.text))
Toast.makeText(requireContext(), R.string.toast_iccid_copied, Toast.LENGTH_SHORT)
.show()
requireContext().setClipboard("ICCID") {
ClipData.newPlainText("iccid", iccid.text)
}
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="toast_profile_enable_failed">新しい eSIM プロファイルに切り替えることができません。</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_select">選択</string>
<string name="usb_permission">USB の権限を許可</string>

View file

@ -18,7 +18,7 @@
<string name="switch_did_not_refresh">操作成功, 但是您手机的基带拒绝刷新。您可能需要切换飞行模式或重新启动,以便使用新的配置文件。</string>
<string name="toast_profile_enable_failed">无法切换到新的 eSIM 配置文件。</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_select">选择</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_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">Select</string>

View file

@ -1,13 +1,12 @@
package im.angry.openeuicc.ui
import android.content.ClipData
import android.content.ClipboardManager
import android.content.pm.PackageManager
import android.os.Bundle
import android.widget.Toast
import androidx.preference.Preference
import im.angry.easyeuicc.R
import im.angry.openeuicc.util.encodeHex
import im.angry.openeuicc.util.setClipboard
import java.security.MessageDigest
class UnprivilegedSettingsFragment : SettingsFragment() {
@ -33,10 +32,9 @@ class UnprivilegedSettingsFragment : SettingsFragment() {
findPreference<Preference>("pref_info_ara_m")?.apply {
summary = firstSigner.encodeHex()
setOnPreferenceClickListener {
requireContext().getSystemService(ClipboardManager::class.java)!!
.setPrimaryClip(ClipData.newPlainText("ara-m", summary))
Toast.makeText(requireContext(), R.string.toast_ara_m_copied, Toast.LENGTH_SHORT)
.show()
requireContext().setClipboard(title.toString()) {
ClipData.newPlainText("ara-m", summary)
}
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">挿入された取り外し可能な eSIM がデバイス上で管理できるかどうかを確認できません。\n%s</string>
<string name="compatibility_check_verdict_fail_shared">ただし、eSIM プロファイルがすでに読み込まれている場合、有効化されたプロファイル自体は引き続き機能します。また、プロファイルが管理できない場合は、このデバイスで USB カードリーダーを介してプロファイルを管理できる可能性があります。</string>
<string name="toast_ara_m_copied">ARA-M SHA-1 をクリップボードにコピーしました</string>
</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">我们无法确定是否可以在您的设备上管理可插拔 eSIM 卡。\n%s</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>

View file

@ -7,9 +7,6 @@
<!-- Settings -->
<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 -->
<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>