From 46a70d6d3aff72df13a0310ae6184a7f0839ab4a Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Mon, 22 Dec 2025 14:13:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20#5621?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/book/group/GroupEditDialog.kt | 9 ++-- .../ui/book/info/edit/BookInfoEditActivity.kt | 9 ++-- .../ui/book/read/config/BgTextConfigDialog.kt | 14 +++---- .../app/ui/config/CoverConfigFragment.kt | 41 ++++++++++++++++--- .../app/ui/config/ThemeConfigFragment.kt | 14 +++++-- .../app/ui/config/WelcomeConfigFragment.kt | 24 ++++++++--- .../legado/app/ui/file/HandleFileActivity.kt | 26 +++++++++++- .../legado/app/ui/file/HandleFileContract.kt | 4 ++ .../io/legado/app/ui/qrcode/QrCodeActivity.kt | 9 ++-- .../java/io/legado/app/utils/UriExtensions.kt | 4 +- app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-ja-rJP/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-vi/strings.xml | 1 + app/src/main/res/values-zh-rHK/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 18 files changed, 123 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/group/GroupEditDialog.kt b/app/src/main/java/io/legado/app/ui/book/group/GroupEditDialog.kt index 316f8ec21..0235b747f 100644 --- a/app/src/main/java/io/legado/app/ui/book/group/GroupEditDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/group/GroupEditDialog.kt @@ -10,13 +10,12 @@ import io.legado.app.data.entities.BookGroup import io.legado.app.databinding.DialogBookGroupEditBinding import io.legado.app.lib.dialogs.alert import io.legado.app.lib.theme.primaryColor +import io.legado.app.ui.file.HandleFileContract import io.legado.app.utils.FileUtils import io.legado.app.utils.MD5Utils -import io.legado.app.utils.SelectImageContract import io.legado.app.utils.externalFiles import io.legado.app.utils.gone import io.legado.app.utils.inputStream -import io.legado.app.utils.launch import io.legado.app.utils.readUri import io.legado.app.utils.setLayout import io.legado.app.utils.toastOnUi @@ -37,7 +36,7 @@ class GroupEditDialog() : BaseDialogFragment(R.layout.dialog_book_group_edit) { private val binding by viewBinding(DialogBookGroupEditBinding::bind) private val viewModel by viewModels() private var bookGroup: BookGroup? = null - private val selectImage = registerForActivityResult(SelectImageContract()) { + private val selectImage = registerForActivityResult(HandleFileContract()) { it.uri ?: return@registerForActivityResult readUri(it.uri) { fileDoc, inputStream -> try { @@ -82,7 +81,9 @@ class GroupEditDialog() : BaseDialogFragment(R.layout.dialog_book_group_edit) { } binding.run { ivCover.onClick { - selectImage.launch() + selectImage.launch { + mode = HandleFileContract.IMAGE + } } btnCancel.onClick { dismiss() diff --git a/app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditActivity.kt index b498190de..b02f599ca 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/edit/BookInfoEditActivity.kt @@ -18,12 +18,11 @@ import io.legado.app.help.book.isImage import io.legado.app.help.book.isLocal import io.legado.app.help.book.removeType import io.legado.app.ui.book.changecover.ChangeCoverDialog +import io.legado.app.ui.file.HandleFileContract import io.legado.app.utils.FileUtils import io.legado.app.utils.MD5Utils -import io.legado.app.utils.SelectImageContract import io.legado.app.utils.externalFiles import io.legado.app.utils.inputStream -import io.legado.app.utils.launch import io.legado.app.utils.readUri import io.legado.app.utils.setOnApplyWindowInsetsListenerCompat import io.legado.app.utils.showDialogFragment @@ -37,7 +36,7 @@ class BookInfoEditActivity : VMBaseActivity(), ChangeCoverDialog.CallBack { - private val selectCover = registerForActivityResult(SelectImageContract()) { + private val selectCover = registerForActivityResult(HandleFileContract()) { it.uri?.let { uri -> coverChangeTo(uri) } @@ -87,7 +86,9 @@ class BookInfoEditActivity : } } tvSelectCover.setOnClickListener { - selectCover.launch() + selectCover.launch { + mode = HandleFileContract.IMAGE + } } tvRefreshCover.setOnClickListener { viewModel.book?.customCoverUrl = tieCoverUrl.text?.toString() diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt index b84e26982..77c1e7e54 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt @@ -2,7 +2,6 @@ package io.legado.app.ui.book.read.config import android.annotation.SuppressLint import android.content.DialogInterface -import android.graphics.Color import android.graphics.PorterDuff import android.net.Uri import android.os.Bundle @@ -12,6 +11,7 @@ import android.view.ViewGroup import android.view.WindowManager import android.widget.SeekBar import androidx.appcompat.widget.TooltipCompat +import androidx.core.graphics.toColorInt import androidx.core.view.isGone import com.jaredrummler.android.colorpicker.ColorPickerDialog import io.legado.app.R @@ -41,7 +41,6 @@ import io.legado.app.utils.FileDoc import io.legado.app.utils.FileUtils import io.legado.app.utils.GSON import io.legado.app.utils.MD5Utils -import io.legado.app.utils.SelectImageContract import io.legado.app.utils.compress.ZipUtils import io.legado.app.utils.createFileIfNotExist import io.legado.app.utils.createFileReplace @@ -52,7 +51,6 @@ import io.legado.app.utils.externalFiles import io.legado.app.utils.find import io.legado.app.utils.getFile import io.legado.app.utils.inputStream -import io.legado.app.utils.launch import io.legado.app.utils.longToast import io.legado.app.utils.openInputStream import io.legado.app.utils.openOutputStream @@ -81,7 +79,7 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { private var primaryTextColor = 0 private var secondaryTextColor = 0 private val importFormNet = "网络导入" - private val selectBgImage = registerForActivityResult(SelectImageContract()) { + private val selectBgImage = registerForActivityResult(HandleFileContract()) { it.uri?.let { uri -> setBgFromUri(uri) } @@ -154,7 +152,9 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { ivBg.setImageResource(R.drawable.ic_image) ivBg.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) root.setOnClickListener { - selectBgImage.launch() + selectBgImage.launch { + mode = HandleFileContract.IMAGE + } } } } @@ -218,8 +218,8 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { } binding.tvBgColor.setOnClickListener { val bgColor = - if (curBgType() == 0) Color.parseColor(curBgStr()) - else Color.parseColor("#015A86") + if (curBgType() == 0) curBgStr().toColorInt() + else "#015A86".toColorInt() ColorPickerDialog.newBuilder() .setColor(bgColor) .setShowAlphaSlider(false) diff --git a/app/src/main/java/io/legado/app/ui/config/CoverConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/CoverConfigFragment.kt index 0ff57e78c..0a63d3346 100644 --- a/app/src/main/java/io/legado/app/ui/config/CoverConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/CoverConfigFragment.kt @@ -13,7 +13,19 @@ import io.legado.app.lib.prefs.SwitchPreference import io.legado.app.lib.prefs.fragment.PreferenceFragment import io.legado.app.lib.theme.primaryColor import io.legado.app.model.BookCover -import io.legado.app.utils.* +import io.legado.app.ui.file.HandleFileContract +import io.legado.app.utils.FileUtils +import io.legado.app.utils.MD5Utils +import io.legado.app.utils.externalFiles +import io.legado.app.utils.getPrefBoolean +import io.legado.app.utils.getPrefString +import io.legado.app.utils.inputStream +import io.legado.app.utils.putPrefString +import io.legado.app.utils.readUri +import io.legado.app.utils.removePref +import io.legado.app.utils.setEdgeEffectColor +import io.legado.app.utils.showDialogFragment +import io.legado.app.utils.toastOnUi import splitties.init.appCtx import java.io.FileOutputStream @@ -22,7 +34,7 @@ class CoverConfigFragment : PreferenceFragment(), private val requestCodeCover = 111 private val requestCodeCoverDark = 112 - private val selectImage = registerForActivityResult(SelectImageContract()) { + private val selectImage = registerForActivityResult(HandleFileContract()) { it.uri?.let { uri -> when (it.requestCode) { requestCodeCover -> setCoverFromUri(PreferKey.defaultCover, uri) @@ -64,16 +76,19 @@ class CoverConfigFragment : PreferenceFragment(), PreferKey.defaultCoverDark -> { upPreferenceSummary(key, getPrefString(key)) } + PreferKey.coverShowName -> { findPreference(PreferKey.coverShowAuthor) ?.isEnabled = getPrefBoolean(key) BookCover.upDefaultCover() } + PreferKey.coverShowNameN -> { findPreference(PreferKey.coverShowAuthorN) ?.isEnabled = getPrefBoolean(key) BookCover.upDefaultCover() } + PreferKey.coverShowAuthor, PreferKey.coverShowAuthorN -> { BookCover.upDefaultCover() @@ -87,7 +102,10 @@ class CoverConfigFragment : PreferenceFragment(), "coverRule" -> showDialogFragment(CoverRuleConfigDialog()) PreferKey.defaultCover -> if (getPrefString(preference.key).isNullOrEmpty()) { - selectImage.launch(requestCodeCover) + selectImage.launch { + requestCode = requestCodeCover + mode = HandleFileContract.IMAGE + } } else { context?.selector( items = arrayListOf( @@ -99,13 +117,20 @@ class CoverConfigFragment : PreferenceFragment(), removePref(preference.key) BookCover.upDefaultCover() } else { - selectImage.launch(requestCodeCover) + selectImage.launch { + requestCode = requestCodeCover + mode = HandleFileContract.IMAGE + } } } } + PreferKey.defaultCoverDark -> if (getPrefString(preference.key).isNullOrEmpty()) { - selectImage.launch(requestCodeCoverDark) + selectImage.launch { + requestCode = requestCodeCoverDark + mode = HandleFileContract.IMAGE + } } else { context?.selector( items = arrayListOf( @@ -117,7 +142,10 @@ class CoverConfigFragment : PreferenceFragment(), removePref(preference.key) BookCover.upDefaultCover() } else { - selectImage.launch(requestCodeCoverDark) + selectImage.launch { + requestCode = requestCodeCoverDark + mode = HandleFileContract.IMAGE + } } } } @@ -134,6 +162,7 @@ class CoverConfigFragment : PreferenceFragment(), } else { value } + else -> preference.summary = value } } diff --git a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt index 6aa997809..f9dd5e065 100644 --- a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt @@ -27,12 +27,12 @@ import io.legado.app.lib.dialogs.selector import io.legado.app.lib.prefs.ColorPreference import io.legado.app.lib.prefs.fragment.PreferenceFragment import io.legado.app.lib.theme.primaryColor +import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.widget.number.NumberPickerDialog import io.legado.app.ui.widget.seekbar.SeekBarChangeListener import io.legado.app.utils.ColorUtils import io.legado.app.utils.FileUtils import io.legado.app.utils.MD5Utils -import io.legado.app.utils.SelectImageContract import io.legado.app.utils.applyTint import io.legado.app.utils.externalFiles import io.legado.app.utils.getPrefInt @@ -57,7 +57,7 @@ class ThemeConfigFragment : PreferenceFragment(), private val requestCodeBgLight = 121 private val requestCodeBgDark = 122 - private val selectImage = registerForActivityResult(SelectImageContract()) { + private val selectImage = registerForActivityResult(HandleFileContract()) { it.uri?.let { uri -> when (it.requestCode) { requestCodeBgLight -> setBgFromUri(uri, PreferKey.bgImage) { @@ -253,9 +253,15 @@ class ThemeConfigFragment : PreferenceFragment(), 1 -> { if (isNight) { - selectImage.launch(requestCodeBgDark) + selectImage.launch { + requestCode = requestCodeBgDark + mode = HandleFileContract.IMAGE + } } else { - selectImage.launch(requestCodeBgLight) + selectImage.launch { + requestCode = requestCodeBgLight + mode = HandleFileContract.IMAGE + } } } diff --git a/app/src/main/java/io/legado/app/ui/config/WelcomeConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/WelcomeConfigFragment.kt index a30907be0..15e7bb4e0 100644 --- a/app/src/main/java/io/legado/app/ui/config/WelcomeConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/WelcomeConfigFragment.kt @@ -14,9 +14,9 @@ import io.legado.app.lib.prefs.SwitchPreference import io.legado.app.lib.prefs.fragment.PreferenceFragment import io.legado.app.lib.theme.primaryColor import io.legado.app.model.BookCover +import io.legado.app.ui.file.HandleFileContract import io.legado.app.utils.FileUtils import io.legado.app.utils.MD5Utils -import io.legado.app.utils.SelectImageContract import io.legado.app.utils.externalFiles import io.legado.app.utils.getPrefString import io.legado.app.utils.inputStream @@ -33,7 +33,7 @@ class WelcomeConfigFragment : PreferenceFragment(), private val requestWelcomeImage = 221 private val requestWelcomeImageDark = 222 - private val selectImage = registerForActivityResult(SelectImageContract()) { + private val selectImage = registerForActivityResult(HandleFileContract()) { it.uri?.let { uri -> when (it.requestCode) { requestWelcomeImage -> setCoverFromUri(PreferKey.welcomeImage, uri) @@ -110,7 +110,10 @@ class WelcomeConfigFragment : PreferenceFragment(), when (preference.key) { PreferKey.welcomeImage -> if (getPrefString(preference.key).isNullOrEmpty()) { - selectImage.launch(requestWelcomeImage) + selectImage.launch { + requestCode = requestWelcomeImage + mode = HandleFileContract.IMAGE + } } else { context?.selector( items = arrayListOf( @@ -130,14 +133,20 @@ class WelcomeConfigFragment : PreferenceFragment(), } BookCover.upDefaultCover() } else { - selectImage.launch(requestWelcomeImage) + selectImage.launch { + requestCode = requestWelcomeImage + mode = HandleFileContract.IMAGE + } } } } PreferKey.welcomeImageDark -> if (getPrefString(preference.key).isNullOrEmpty()) { - selectImage.launch(requestWelcomeImageDark) + selectImage.launch { + requestCode = requestWelcomeImageDark + mode = HandleFileContract.IMAGE + } } else { context?.selector( items = arrayListOf( @@ -157,7 +166,10 @@ class WelcomeConfigFragment : PreferenceFragment(), } BookCover.upDefaultCover() } else { - selectImage.launch(requestWelcomeImageDark) + selectImage.launch { + requestCode = requestWelcomeImageDark + mode = HandleFileContract.IMAGE + } } } } diff --git a/app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt b/app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt index 04eb7328c..211f9b9e6 100644 --- a/app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt +++ b/app/src/main/java/io/legado/app/ui/file/HandleFileActivity.kt @@ -7,6 +7,7 @@ import android.os.Environment import android.webkit.MimeTypeMap import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels +import androidx.core.net.toUri import androidx.lifecycle.lifecycleScope import io.legado.app.R import io.legado.app.base.VMBaseActivity @@ -18,6 +19,7 @@ import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.alert import io.legado.app.lib.permission.Permissions import io.legado.app.lib.permission.PermissionsCompat +import io.legado.app.utils.SelectImageContract import io.legado.app.utils.checkWrite import io.legado.app.utils.externalFiles import io.legado.app.utils.getJsonArray @@ -59,6 +61,12 @@ class HandleFileActivity : } ?: finish() } + private val selectImage = registerForActivityResult(SelectImageContract()) { + it.uri?.let { uri -> + onResult(Intent().setData(uri)) + } ?: finish() + } + override fun onActivityCreated(savedInstanceState: Bundle?) { mode = intent.getIntExtra("mode", 0) viewModel.errorLiveData.observe(this) { @@ -76,6 +84,7 @@ class HandleFileActivity : addAll(getDirActions()) } + HandleFileContract.IMAGE -> getImageActions() else -> arrayListOf() } intent.getJsonArray>("otherActions")?.let { @@ -85,6 +94,7 @@ class HandleFileActivity : when (mode) { HandleFileContract.EXPORT -> return@let getString(R.string.export) HandleFileContract.DIR -> return@let getString(R.string.select_folder) + HandleFileContract.IMAGE -> return@let getString(R.string.select_image) else -> return@let getString(R.string.select_file) } } @@ -116,6 +126,10 @@ class HandleFileActivity : } } + HandleFileContract.IMAGE -> { + selectImage.launch() + } + 10 -> checkPermissions { @Suppress("DEPRECATION") lifecycleScope.launchWhenResumed { @@ -139,7 +153,7 @@ class HandleFileActivity : 111 -> getFileData()?.let { viewModel.upload(it.first, it.second, it.third) { url -> - val uri = Uri.parse(url) + val uri = url.toUri() setResult(RESULT_OK, Intent().setData(uri)) finish() } @@ -152,7 +166,7 @@ class HandleFileActivity : else -> { val path = item.title val uri = if (path.isContentScheme()) { - Uri.parse(path) + path.toUri() } else { Uri.fromFile(File(path)) } @@ -250,6 +264,14 @@ class HandleFileActivity : ) } + private fun getImageActions(): ArrayList> { + return arrayListOf( + SelectItem(getString(R.string.sys_image_picker), HandleFileContract.IMAGE) + ).apply { + addAll(getFileActions()) + } + } + private fun checkPermissions(success: (() -> Unit)? = null) { PermissionsCompat.Builder() .addPermissions(*Permissions.Group.STORAGE) diff --git a/app/src/main/java/io/legado/app/ui/file/HandleFileContract.kt b/app/src/main/java/io/legado/app/ui/file/HandleFileContract.kt index 278688153..b4251ca2a 100644 --- a/app/src/main/java/io/legado/app/ui/file/HandleFileContract.kt +++ b/app/src/main/java/io/legado/app/ui/file/HandleFileContract.kt @@ -24,6 +24,9 @@ class HandleFileContract : input?.let { handleFileParam.apply(input) } + if (handleFileParam.mode == IMAGE) { + handleFileParam.allowExtensions = arrayOf("jpg", "png", "bmp", "webp") + } handleFileParam.let { requestCode = it.requestCode intent.putExtra("mode", it.mode) @@ -57,6 +60,7 @@ class HandleFileContract : const val FILE = 1 const val DIR_SYS = 2 const val EXPORT = 3 + const val IMAGE = 4 } @Suppress("ArrayInDataClass") diff --git a/app/src/main/java/io/legado/app/ui/qrcode/QrCodeActivity.kt b/app/src/main/java/io/legado/app/ui/qrcode/QrCodeActivity.kt index a97afe913..a67456dc0 100644 --- a/app/src/main/java/io/legado/app/ui/qrcode/QrCodeActivity.kt +++ b/app/src/main/java/io/legado/app/ui/qrcode/QrCodeActivity.kt @@ -9,9 +9,8 @@ import com.google.zxing.Result import io.legado.app.R import io.legado.app.base.BaseActivity import io.legado.app.databinding.ActivityQrcodeCaptureBinding +import io.legado.app.ui.file.HandleFileContract import io.legado.app.utils.QRCodeUtils -import io.legado.app.utils.SelectImageContract -import io.legado.app.utils.launch import io.legado.app.utils.readBytes import io.legado.app.utils.viewbindingdelegate.viewBinding @@ -19,7 +18,7 @@ class QrCodeActivity : BaseActivity(), ScanResultC override val binding by viewBinding(ActivityQrcodeCaptureBinding::inflate) - private val selectQrImage = registerForActivityResult(SelectImageContract()) { + private val selectQrImage = registerForActivityResult(HandleFileContract()) { it.uri?.readBytes(this)?.let { bytes -> val bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.size) onScanResultCallback(QRCodeUtils.parseCodeResult(bitmap)) @@ -41,7 +40,9 @@ class QrCodeActivity : BaseActivity(), ScanResultC override fun onCompatOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { - R.id.action_choose_from_gallery -> selectQrImage.launch() + R.id.action_choose_from_gallery -> selectQrImage.launch { + mode = HandleFileContract.IMAGE + } } return super.onCompatOptionsItemSelected(item) } diff --git a/app/src/main/java/io/legado/app/utils/UriExtensions.kt b/app/src/main/java/io/legado/app/utils/UriExtensions.kt index 17a760bf6..c4bb8d5ab 100644 --- a/app/src/main/java/io/legado/app/utils/UriExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/UriExtensions.kt @@ -62,7 +62,7 @@ fun AppCompatActivity.readUri( } } catch (e: Exception) { e.printOnDebug() - AppLog.put("读取Uri出错\n$e", e, true) + AppLog.put("读取Uri出错\n$uri\n$e", e, true) if (e is SecurityException) { throw e } @@ -99,7 +99,7 @@ fun Fragment.readUri(uri: Uri?, success: (fileDoc: FileDoc, inputStream: InputSt } } catch (e: Exception) { e.printOnDebug() - AppLog.put("读取Uri出错\n$e", e, true) + AppLog.put("读取Uri出错\n$uri\n$e", e, true) } } diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index e07eb70e1..ae1938555 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1224,4 +1224,5 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 系统图片选择器 diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 4a365fdca..547b110fa 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -1227,4 +1227,5 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 系统图片选择器 diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 33208017f..e9a8cb177 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -1227,4 +1227,5 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 系统图片选择器 diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 1b89571a0..f35580eb0 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1218,4 +1218,5 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 系统图片选择器 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index d7ae70171..5499265ea 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1222,4 +1222,5 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 系统图片选择器 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 3a98a452b..d3ba98f54 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1223,4 +1223,5 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 系统图片选择器 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 4bfedd092..38c06742a 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1229,4 +1229,5 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 系统图片选择器 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ceac4910d..9189bfc92 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1231,4 +1231,5 @@ 是否确认开始缓存? 自动检查新备份 打开软件时检查是否有新备份,有新备份时提示是否更新 + 系统图片选择器