diff --git a/app/build.gradle b/app/build.gradle
index cd4ed1d..68b1088 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -22,7 +22,7 @@ android {
minSdk 24
targetSdk 34
versionCode 43
- versionName "1.6-beta28"
+ versionName "1.6-beta29"
flavorDimensions = ["versionName"]
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/src/main/java/com/skyd/rays/model/respository/ImportExportFilesRepository.kt b/app/src/main/java/com/skyd/rays/model/respository/ImportExportFilesRepository.kt
index 3e8bc89..a14e84c 100644
--- a/app/src/main/java/com/skyd/rays/model/respository/ImportExportFilesRepository.kt
+++ b/app/src/main/java/com/skyd/rays/model/respository/ImportExportFilesRepository.kt
@@ -152,10 +152,7 @@ class ImportExportFilesRepository @Inject constructor(
// 添加最后四个字节 0x0D000721
appContext.contentResolver.openOutputStream(zipFileUri, "wa").use { fos ->
check(fos != null) {
- appContext.getString(
- R.string.import_export_files_repo_error,
- "Zip file OutputStream is null!"
- )
+ appContext.getString(R.string.failed_info, "Zip file OutputStream is null!")
}
fos.write(byteArrayOf(0x0D, 0x00, 0x07, 0x21))
}
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/add/AddScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/add/AddScreen.kt
index 638ae08..67ebc2f 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/add/AddScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/add/AddScreen.kt
@@ -90,7 +90,6 @@ import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.navigation.NavHostController
import com.skyd.rays.R
-import com.skyd.rays.appContext
import com.skyd.rays.base.LoadUiIntent
import com.skyd.rays.config.refreshStickerData
import com.skyd.rays.ext.addAllDistinctly
@@ -233,7 +232,7 @@ fun AddScreen(
if (currentSticker() == null) {
snackbarHostState.showSnackbar(
scope = scope,
- message = appContext.getString(R.string.add_screen_sticker_is_not_set),
+ message = context.getString(R.string.add_screen_sticker_is_not_set),
)
} else {
keyboardController?.hide()
@@ -369,7 +368,7 @@ fun AddScreen(
when (it) {
is LoadUiIntent.Error -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- context.getString(R.string.add_screen_error, it.msg),
+ context.getString(R.string.failed_info, it.msg),
key2 = it,
)
}
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/home/HomeScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/home/HomeScreen.kt
index 190a242..3233313 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/home/HomeScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/home/HomeScreen.kt
@@ -229,9 +229,7 @@ fun HomeScreen(viewModel: HomeViewModel = hiltViewModel()) {
when (loadUiIntent) {
is LoadUiIntent.Error -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = context.getString(
- R.string.home_screen_failed, loadUiIntent.msg
- ),
+ message = context.getString(R.string.failed_info, loadUiIntent.msg),
key2 = loadUiIntent,
)
}
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/main/MainScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/main/MainScreen.kt
index 23e4eb2..6f6dd89 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/main/MainScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/main/MainScreen.kt
@@ -13,12 +13,12 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Egg
import androidx.compose.material.icons.filled.Extension
import androidx.compose.material.icons.filled.Home
-import androidx.compose.material.icons.outlined.Egg
+import androidx.compose.material.icons.filled.Widgets
import androidx.compose.material.icons.outlined.Extension
import androidx.compose.material.icons.outlined.Home
+import androidx.compose.material.icons.outlined.Widgets
import androidx.compose.material3.Icon
import androidx.compose.material3.NavigationBar
import androidx.compose.material3.NavigationBarItem
@@ -107,8 +107,8 @@ private fun NavigationBarOrRail(navController: NavController) {
)
val icons = remember {
mapOf(
- true to listOf(Icons.Filled.Home, Icons.Filled.Extension, Icons.Filled.Egg),
- false to listOf(Icons.Outlined.Home, Icons.Outlined.Extension, Icons.Outlined.Egg),
+ true to listOf(Icons.Filled.Home, Icons.Filled.Extension, Icons.Filled.Widgets),
+ false to listOf(Icons.Outlined.Home, Icons.Outlined.Extension, Icons.Outlined.Widgets),
)
}
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/more/MoreScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/more/MoreScreen.kt
index 6ae2e39..f2142bb 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/more/MoreScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/more/MoreScreen.kt
@@ -3,10 +3,10 @@ package com.skyd.rays.ui.screen.more
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Egg
import androidx.compose.material.icons.filled.ImportExport
import androidx.compose.material.icons.filled.Info
import androidx.compose.material.icons.filled.Settings
+import androidx.compose.material.icons.filled.Widgets
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
@@ -57,7 +57,7 @@ fun MoreScreen() {
title = { Text(text = stringResource(id = R.string.more_screen_name)) },
navigationIcon = {
RaysIconButton(
- imageVector = Icons.Default.Egg,
+ imageVector = Icons.Default.Widgets,
onClick = {
snackbarHostState.showSnackbar(
message = "\uD83D\uDC31 Nya~",
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/settings/api/apigrant/ApiGrantScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/settings/api/apigrant/ApiGrantScreen.kt
index feacef6..1c3dc24 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/settings/api/apigrant/ApiGrantScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/settings/api/apigrant/ApiGrantScreen.kt
@@ -64,9 +64,7 @@ fun ApiGrantScreen(viewModel: ApiGrantViewModel = hiltViewModel()) {
when (addPackageNameUiEvent) {
is AddPackageNameUiEvent.Failed -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = context.getString(
- R.string.uri_string_share_screen_failed, addPackageNameUiEvent.msg
- ),
+ message = context.getString(R.string.failed_info, addPackageNameUiEvent.msg),
key2 = addPackageNameUiEvent,
)
}
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/settings/data/DataScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/settings/data/DataScreen.kt
index 8d712d6..c83f524 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/settings/data/DataScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/settings/data/DataScreen.kt
@@ -19,11 +19,11 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.input.nestedscroll.nestedScroll
+import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.skyd.rays.R
-import com.skyd.rays.appContext
import com.skyd.rays.base.LoadUiIntent
import com.skyd.rays.ext.showSnackbarWithLaunchedEffect
import com.skyd.rays.ui.component.BaseSettingsItem
@@ -40,6 +40,7 @@ const val DATA_SCREEN_ROUTE = "dataScreen"
fun DataScreen(viewModel: DataViewModel = hiltViewModel()) {
val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
val navController = LocalNavController.current
+ val context = LocalContext.current
val snackbarHostState = remember { SnackbarHostState() }
var openDeleteWarningDialog by rememberSaveable { mutableStateOf(false) }
var openWaitingDialog by rememberSaveable { mutableStateOf(false) }
@@ -82,9 +83,7 @@ fun DataScreen(viewModel: DataViewModel = hiltViewModel()) {
when (loadUiIntent) {
is LoadUiIntent.Error -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = appContext.getString(
- R.string.data_screen_failed, loadUiIntent.msg
- ),
+ message = context.getString(R.string.failed_info, loadUiIntent.msg),
key2 = loadUiIntent,
)
}
@@ -98,7 +97,7 @@ fun DataScreen(viewModel: DataViewModel = hiltViewModel()) {
when (deleteAllResultUiEvent) {
is DeleteAllResultUiEvent.Success -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = appContext.getString(
+ message = context.getString(
R.string.data_screen_delete_all_success,
deleteAllResultUiEvent.time / 1000.0f
),
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/cloud/webdav/WebDavScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/cloud/webdav/WebDavScreen.kt
index 92b3270..a64fe7a 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/cloud/webdav/WebDavScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/cloud/webdav/WebDavScreen.kt
@@ -49,7 +49,6 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.skyd.rays.R
-import com.skyd.rays.appContext
import com.skyd.rays.base.LoadUiIntent
import com.skyd.rays.ext.dateTime
import com.skyd.rays.ext.editor
@@ -125,7 +124,7 @@ fun WebDavScreen(viewModel: WebDavViewModel = hiltViewModel()) {
{
scope.launch {
snackbarHostState.showSnackbar(
- message = appContext.getString(R.string.webdav_screen_info_incomplete),
+ message = context.getString(R.string.webdav_screen_info_incomplete),
withDismissAction = true
)
}
@@ -144,7 +143,7 @@ fun WebDavScreen(viewModel: WebDavViewModel = hiltViewModel()) {
password = password,
onServerItemClick = {
inputDialogInfo = Triple(
- appContext.getString(R.string.webdav_screen_input_server), server
+ context.getString(R.string.webdav_screen_input_server), server
) {
openInputDialog = false
WebDavServerPreference.put(
@@ -158,7 +157,7 @@ fun WebDavScreen(viewModel: WebDavViewModel = hiltViewModel()) {
},
onAccountItemClick = {
inputDialogInfo = Triple(
- appContext.getString(R.string.webdav_screen_input_account), account
+ context.getString(R.string.webdav_screen_input_account), account
) {
account = it
openInputDialog = false
@@ -169,7 +168,7 @@ fun WebDavScreen(viewModel: WebDavViewModel = hiltViewModel()) {
},
onPasswordItemClick = {
inputDialogInfo = Triple(
- appContext.getString(R.string.webdav_screen_input_password), password
+ context.getString(R.string.webdav_screen_input_password), password
) {
password = it
openInputDialog = false
@@ -221,10 +220,7 @@ fun WebDavScreen(viewModel: WebDavViewModel = hiltViewModel()) {
when (loadUiIntent) {
is LoadUiIntent.Error -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = appContext.getString(
- R.string.webdav_screen_failed,
- loadUiIntent.msg
- ),
+ message = context.getString(R.string.failed_info, loadUiIntent.msg),
key2 = loadUiIntent,
)
openWaitingDialog = false
@@ -319,7 +315,7 @@ fun WebDavScreen(viewModel: WebDavViewModel = hiltViewModel()) {
when (val result = uploadResultUiEvent.result) {
is WebDavResultInfo -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = appContext.resources.getQuantityString(
+ message = context.resources.getQuantityString(
R.plurals.webdav_screen_upload_success,
result.count,
result.time / 1000.0f, result.count
@@ -341,7 +337,7 @@ fun WebDavScreen(viewModel: WebDavViewModel = hiltViewModel()) {
when (val result = downloadResultUiEvent.result) {
is WebDavResultInfo -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = appContext.resources.getQuantityString(
+ message = context.resources.getQuantityString(
R.plurals.webdav_screen_download_success,
result.count,
result.time / 1000.0f, result.count
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/file/exportfiles/ExportFilesScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/file/exportfiles/ExportFilesScreen.kt
index d56f774..f523950 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/file/exportfiles/ExportFilesScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/file/exportfiles/ExportFilesScreen.kt
@@ -34,7 +34,6 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.skyd.rays.R
-import com.skyd.rays.appContext
import com.skyd.rays.base.LoadUiIntent
import com.skyd.rays.ext.plus
import com.skyd.rays.ext.showSnackbarWithLaunchedEffect
@@ -160,7 +159,7 @@ fun ExportFilesScreen(viewModel: ExportFilesViewModel = hiltViewModel()) {
when (val loadUi = loadUiIntent) {
is LoadUiIntent.Error -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = appContext.getString(R.string.export_files_screen_failed, loadUi.msg),
+ message = context.getString(R.string.failed_info, loadUi.msg),
key2 = loadUiIntent,
)
openWaitingDialog = false
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/file/importfiles/ImportFilesScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/file/importfiles/ImportFilesScreen.kt
index ad415e6..d6efd8a 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/file/importfiles/ImportFilesScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/settings/data/importexport/file/importfiles/ImportFilesScreen.kt
@@ -40,7 +40,6 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.skyd.rays.R
-import com.skyd.rays.appContext
import com.skyd.rays.base.LoadUiIntent
import com.skyd.rays.ext.plus
import com.skyd.rays.ext.showSnackbarWithLaunchedEffect
@@ -191,7 +190,7 @@ fun ImportFilesScreen(viewModel: ImportFilesViewModel = hiltViewModel()) {
when (val loadUi = loadUiIntent) {
is LoadUiIntent.Error -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = appContext.getString(R.string.import_files_screen_failed, loadUi.msg),
+ message = context.getString(R.string.failed_info, loadUi.msg),
key2 = loadUiIntent,
)
openWaitingDialog = false
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/settings/ml/classification/model/ClassificationModelScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/settings/ml/classification/model/ClassificationModelScreen.kt
index 722dae0..0b49f31 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/settings/ml/classification/model/ClassificationModelScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/settings/ml/classification/model/ClassificationModelScreen.kt
@@ -111,10 +111,7 @@ fun ClassificationModelScreen(viewModel: ClassificationModelViewModel = hiltView
when (it) {
is LoadUiIntent.Error -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = context.getString(
- R.string.classification_model_screen_failed,
- it.msg
- ),
+ message = context.getString(R.string.failed_info, it.msg),
key2 = it,
)
}
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/settings/shareconfig/ShareConfigScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/settings/shareconfig/ShareConfigScreen.kt
index d3b69c2..f2ee934 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/settings/shareconfig/ShareConfigScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/settings/shareconfig/ShareConfigScreen.kt
@@ -79,7 +79,7 @@ fun ShareConfigScreen() {
item {
SwitchSettingsItem(
icon = Icons.Default.FileCopy,
- checked = LocalCopyStickerToClipboard.current,
+ checked = LocalStickerExtName.current && LocalCopyStickerToClipboard.current,
text = stringResource(R.string.share_config_screen_copy_sticker_to_clipboard),
description = stringResource(R.string.share_config_screen_copy_sticker_to_clipboard_description),
onCheckedChange = {
diff --git a/app/src/main/java/com/skyd/rays/ui/screen/settings/shareconfig/uristringshare/UriStringShareScreen.kt b/app/src/main/java/com/skyd/rays/ui/screen/settings/shareconfig/uristringshare/UriStringShareScreen.kt
index 26767da..f2b4262 100644
--- a/app/src/main/java/com/skyd/rays/ui/screen/settings/shareconfig/uristringshare/UriStringShareScreen.kt
+++ b/app/src/main/java/com/skyd/rays/ui/screen/settings/shareconfig/uristringshare/UriStringShareScreen.kt
@@ -64,9 +64,7 @@ fun UriStringShareScreen(viewModel: UriStringShareViewModel = hiltViewModel()) {
when (addPackageNameUiEvent) {
is AddPackageNameUiEvent.Failed -> {
snackbarHostState.showSnackbarWithLaunchedEffect(
- message = context.getString(
- R.string.uri_string_share_screen_failed, addPackageNameUiEvent.msg
- ),
+ message = context.getString(R.string.failed_info, addPackageNameUiEvent.msg),
key2 = addPackageNameUiEvent,
)
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 5b14a08..8d2fb7d 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -12,6 +12,7 @@
修改表情包
返回
操作成功
+ 操作失败:%s
处理列表
表情包图片未设置!
按下回车以添加
@@ -69,9 +70,8 @@
- 共更新 %1$d 个表情包,耗时 %2$.2f 秒
- 操作失败:%s
冲突时策略
- “冲突”指的是当前要导入表情包的 UUID 与已有贴纸的 UUID 相同,与这两个表情包图片的内容是否相同无关。
+ “冲突”指的是当前要导入表情包的 UUID 与已有表情包的 UUID 相同,与这两个表情包图片的内容是否相同无关。
导出为文件
将表情包、标签等信息导出为文件
选择导出文件夹
@@ -83,13 +83,11 @@
- 共导出 %1$d 个表情包,耗时 %2$.2f 秒
- 操作失败:%s
打开备份文件
跳过
替换原有
格式非法,备份文件的魔数不等于 0x0D000721
格式非法:%s
- 错误:%s
WebDAV
通过 WebDAV 在云端同步数据
WebDAV 服务
@@ -113,7 +111,6 @@
- 推送成功,耗时 %1$.2f 秒,更新 %2$d 条
- 操作失败:%s
请稍后…
服务器网址
账号
@@ -141,11 +138,9 @@
删除本地所有表情包
删除 Rays 管理的所有本地表情包数据,包括表情包图像、标题和标签等,此操作不可逆
备份、同步、删除表情包数据等
- 操作失败:%s
所有表情包数据已清空,耗时 %.2f 秒
交集搜索
使用空格分割多个搜索关键字以实现“并且”条件,即对这些关键字的结果进行交集操作
- 操作失败:%s
- 导出了 %d 个表情包
@@ -158,13 +153,11 @@
发送表情包
显示菜单
一个在本地记录、查找抽象段落/评论区小作文的工具。🤗 您还在为记不住小作文内容,面临前面、中间、后面都忘了的尴尬处境吗?使用这款工具将帮助您记录您所遇到的小作文,再也不因为忘记而烦恼!😋
- https://github.com/SkyD666/Raca-Android
当您在夜间🌙使用手机时,Night Screen 可以帮助您减少屏幕亮度,减少对眼睛的伤害。
- https://github.com/SkyD666/NightScreen
其他作品
该表情包已经被添加,正在展示已添加的信息!
建议标签
- Ai
+ AI
配置 AI 模型等
表情包分类
设置表情包分类模型、置信度阈值等
@@ -173,8 +166,6 @@
默认
选择外部模型
选择外部模型文件 (.tflite 或 .lite)
- 操作失败:%s
- 错误:%s
清空主屏幕
样式
首页样式
@@ -240,7 +231,6 @@
添加包名
例如 com.skyd.example
包名不可用:%s
- 错误:%s
表情包文件扩展名、URI 字符串分享等
文件扩展名
分享表情包时为文件添加扩展名
@@ -269,7 +259,6 @@
包名不可用:%s
管理外部应用使用 API 的权限
启用 API
- Rays
建议允许 Rays 自启动、关联启动和后台运行。\n\nRays 的以下功能需要使用无障碍:\n\n自动分享
自动分享
自动分享表情包到上一个页面
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index f640172..774c0ec 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -39,7 +39,6 @@
Rays 使用 MVI 架構,完全採用 Material You 設計風格。所有頁面都使用 Jetpack Compose 開發。
請輸入 WebDAV 帳戶
在分享表情包時添加文件擴展名
- 操作失敗:%s
- 共更新 %1$d 張表情包,耗時 %2$.2f 秒
@@ -75,20 +74,7 @@
您還在為手機中的表情包太多,找不到想要的表情包而苦惱嗎?使用這款工具將幫助您管理您存儲的表情包,再也不因為找不到表情包而煩惱! 😋
資訊
跟隨系統
- 自動分享功能可將表情包直接分享到上一個頁面對應的應用程式。
-\n
-\n此功能需要無障礙權限。在結束 Rays 進程、升級或重新安裝 Rays 後,自動分享可能會被禁用,需要手動開啟無障礙權限才能再次啟用。
-\n
-\n建議允許 Rays 在啟動時啟動、由其他應用啟動、在背景中持續運行。
-\n
-\n支援的應用程式:
-\nQQ
-\n微信
-\n微博
-\nTelegram
-\nInstagram
-\nDiscord
-\nWhatsApp
+ 自動分享功能可將表情包直接分享到上一個頁面對應的應用程式。\n\n此功能需要無障礙權限。在結束 Rays 進程、升級或重新安裝 Rays 後,自動分享可能會被禁用,需要手動開啟無障礙權限才能再次啟用。\n\n建議允許 Rays 在啟動時啟動、由其他應用啟動、在背景中持續運行。\n\n支援的應用程式:\nQQ\n微信\n微博\nTelegram\nInstagram\nDiscord\nWhatsApp
自動分享
表情包 MD5
WebDAV
@@ -139,22 +125,20 @@
透過雲端
選擇風格圖片
現在已經授予無障礙權限
- 錯誤:%s
更新本地數據 + 表情包
上次修改時間:%s
所有表情包數據已清除,花費 %.2f 秒
文字識別閾值
分享時複製
背景
+ 選擇自拍照
+ 選擇背景
刪除
透過文件
AI
內容
重置自拍照
- 新版本:%1$s
-\n發布日期:%2$s
-\n下載次數:%3$s
-\n
+ 新版本:%1$s\n發布日期:%2$s\n下載次數:%3$s\n
選擇用於分類表情包的機器學習模型
請勿在推送和拉取時強制結束應用程式或斷開網路,否則可能會損壞數據!
交集搜尋
@@ -181,6 +165,7 @@
轉移
在分割前請選擇一張自拍照片
操作成功
+ 操作失敗:%s
風格
裁剪
收起
@@ -222,11 +207,7 @@
為處理清單中的所有表情包加入此標籤
發送表情包
搜尋方案、搜尋領域等
- 建議允許 Rays 自啟動、關聯啟動和背景運行。
-\n
-\nRays 的以下功能需要使用無障礙:
-\n
-\n自動分享
+ 建議允許 Rays 自啟動、關聯啟動和背景運行。\n\nRays 的以下功能需要使用無障礙:\n\n自動分享
創建新表情包或從搜尋結果中選擇表情包~
UUID
遠端回收站為空
@@ -236,10 +217,8 @@
應用程式內禁止截圖
發現新版本
填滿邊界
- 操作失敗:%s
替換原有
小工具
- 操作失敗:%s
選擇匯出目錄
排序
請輸入 WebDAV 伺服器 URL
@@ -283,7 +262,6 @@
備份、同步、刪除表情包數據等
將搜尋關鍵字視為正則表達式
刪除本地數據 + 表情包
- 操作失敗:%s
沒有軟體包可用:%s
建議的標籤
熱門值:%.2f
@@ -304,7 +282,6 @@
匯出
搜索欄
同步表情包數據
- 操作失敗:%s
填滿寬度
表情包分類
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ca57952..301e948 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -12,6 +12,7 @@
Edit
Back
Operation successful
+ Failed: %s
Waiting list
Please select a sticker!
Press Enter to add
@@ -71,7 +72,6 @@
- Updated %1$d sticker in total, took %2$.2f s
- Updated %1$d stickers in total, took %2$.2f s
- Operation failed: %s
On conflict
"Conflict" refers to the situation where the UUID of the sticker you are currently importing is the same as the UUID of an existing sticker, regardless of whether the content of these two stickers is the same.
Export to files
@@ -86,13 +86,11 @@
- Exported %1$d sticker in total, took %2$.2f s
- Exported %1$d stickers in total, took %2$.2f s
- Operation failed: %s
Open backup file
Skip
Replace
Invalid format, Magic number not equals to 0x0D000721
Invalid format: %s
- Error: %s
WebDAV
Synchronize data via WebDAV
Service
@@ -118,7 +116,6 @@
- Push succeeded, spent %1$.2fs, update %2$d sticker
- Push succeeded, spent %1$.2fs, update %2$d stickers
- Operation failed: %s
Please wait…
Server URL
Account
@@ -146,11 +143,9 @@
Delete all local stickers
Delete all local data managed by Rays, including images, titles and labels. This operation is irreversible
Backup, synchronize, delete sticker data
- Operation failed: %s
All sticker data cleared, spent %.2fs
Intersection search
Use spaces to split multiple keywords to achieve the \"and\" condition
- Operation failed: %s
- Export %d sticker
- Export %d stickers
@@ -165,10 +160,10 @@
Show menu
Raca (Record All Classic Articles)
A tool to record and search abstract passages and mini-essays in the comments section locally. 🤗 Are you still having trouble remembering the content of your mini-essay and facing the embarrassing situation of forgetting the front, middle and back? Using this tool will help you record the mini-essays you come across and never worry about forgetting them again! 😋
- https://github.com/SkyD666/Raca-Android
+ https://github.com/SkyD666/Raca-Android
Night Screen
When you use your phone at night 🌙, Night Screen can help you reduce the brightness of the screen and reduce the damage to your eyes.
- https://github.com/SkyD666/NightScreen
+ https://github.com/SkyD666/NightScreen
Other works
The sticker has already been added and is showing the existing information!
Suggested tags
@@ -181,9 +176,7 @@
Default
Select external model
Select an external model file (.tflite or .lite)
- Operation failed: %s
EfficientNet-Lite2
- Error: %s
Clear screen
Style
Home screen style
@@ -249,7 +242,6 @@
Add package
e.g., com.skyd.example
This package is unavailable: %s
- Error: %s
Sticker file extension, URI string share
File extension
Add the file extension name when sharing a sticker
@@ -273,12 +265,12 @@
Select a background image
Reset selfie
API (Experimental)
- API Grant
+ API grant
Application Programming Interface
No such package is available: %s
Manage API permissions for external applications
Enable API
- Rays
+ Rays
It is recommended that Rays should be allowed to launch on startup, launch by other apps and keep running in background.\n\nThe following features of Rays are required for accessibility:\n\nAuto share
Auto share
Share sticker to the previous page automatically