6.6.2 - Alpha5 - 优化主题色设置页面英文颜色名称搜索模式
This commit is contained in:
@@ -43,7 +43,7 @@ object ColorInfoDialogManager {
|
|||||||
.positiveColorRes(R.color.dialog_button_default)
|
.positiveColorRes(R.color.dialog_button_default)
|
||||||
.show()
|
.show()
|
||||||
|
|
||||||
dialog.makeTextCopyable { it.titleView }
|
title?.run { dialog.makeTextCopyable { it.titleView } }
|
||||||
|
|
||||||
CoroutineScope(Dispatchers.Main).launch {
|
CoroutineScope(Dispatchers.Main).launch {
|
||||||
launch(Dispatchers.IO) {
|
launch(Dispatchers.IO) {
|
||||||
|
|||||||
@@ -507,29 +507,42 @@ abstract class ColorSelectBaseActivity : BaseActivity() {
|
|||||||
mSearchJob = lifecycleScope.launch {
|
mSearchJob = lifecycleScope.launch {
|
||||||
withContext(Dispatchers.Default) {
|
withContext(Dispatchers.Default) {
|
||||||
if (query.isNullOrBlank()) return@withContext colorItems
|
if (query.isNullOrBlank()) return@withContext colorItems
|
||||||
val normalizedQuery = normalizeForMatching(query)
|
val searchTerm = query.trimStart()
|
||||||
|
val cleanedSearchTerm = searchTerm.drop(1)
|
||||||
|
val normalizedQuery = normalizeForMatching(searchTerm)
|
||||||
colorItems.filter { colorItem ->
|
colorItems.filter { colorItem ->
|
||||||
val colorHex = String.format("#%06X", 0xFFFFFF and getColor(colorItem.colorRes))
|
val colorHex = String.format("#%06X", 0xFFFFFF and getColor(colorItem.colorRes))
|
||||||
if (query.startsWith("#")) {
|
val enName by lazy { getLocalizedString(this@ColorSelectBaseActivity, colorItem.nameRes, Locale("en")) }
|
||||||
if (isRegexSearch(query.drop(1))) {
|
val localizedName by lazy { getString(colorItem.nameRes) }
|
||||||
val regex = compileRegexOrNull(extractPatternFromQuery(query.drop(1))) ?: return@filter false
|
when {
|
||||||
return@filter regex.containsMatchIn(colorHex)
|
searchTerm.startsWith("#") -> {
|
||||||
|
searchMatch(cleanedSearchTerm, colorHex) {
|
||||||
|
colorHex.contains(searchTerm, ignoreCase = true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
searchTerm.startsWith("$") -> {
|
||||||
|
searchMatch(cleanedSearchTerm, enName) {
|
||||||
|
normalizeForMatching(enName).contains(normalizedQuery, ignoreCase = true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else -> {
|
||||||
|
searchMatch(searchTerm, localizedName) {
|
||||||
|
normalizeForMatching(localizedName).contains(normalizedQuery, ignoreCase = true)
|
||||||
}
|
}
|
||||||
return@filter colorHex.contains(query, ignoreCase = true)
|
|
||||||
}
|
}
|
||||||
val localName = getString(colorItem.nameRes)
|
|
||||||
val enName = getLocalizedString(this@ColorSelectBaseActivity, colorItem.nameRes, Locale("en"))
|
|
||||||
if (isRegexSearch(query)) {
|
|
||||||
val regex = compileRegexOrNull(extractPatternFromQuery(query)) ?: return@filter false
|
|
||||||
return@filter regex.containsMatchIn(localName) || regex.containsMatchIn(enName)
|
|
||||||
}
|
}
|
||||||
return@filter normalizeForMatching(localName).contains(normalizedQuery, ignoreCase = true)
|
|
||||||
|| normalizeForMatching(enName).contains(normalizedQuery, ignoreCase = true)
|
|
||||||
}
|
}
|
||||||
}.let { filteredResult -> colorItemAdapter.updateData(filteredResult) }
|
}.let { filteredResult -> colorItemAdapter.updateData(filteredResult) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun searchMatch(search: String, text: String, nonRegexMatch: () -> Boolean) = when {
|
||||||
|
isRegexSearch(search) -> {
|
||||||
|
compileRegexOrNull(extractPatternFromQuery(search))?.containsMatchIn(text) == true
|
||||||
|
}
|
||||||
|
else -> nonRegexMatch()
|
||||||
|
}
|
||||||
|
|
||||||
private fun normalizeForMatching(input: String): String {
|
private fun normalizeForMatching(input: String): String {
|
||||||
// 去掉所有非字母或数字字符 (例如空格/括号/斜线等).
|
// 去掉所有非字母或数字字符 (例如空格/括号/斜线等).
|
||||||
// \p{L} 表示任何语言的字母字符, \p{N} 表示数字.
|
// \p{L} 表示任何语言的字母字符, \p{N} 表示数字.
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
### 2. اسم اللون (بالإنجليزية)
|
### 2. اسم اللون (بالإنجليزية)
|
||||||
|
|
||||||
استخدم الاسم الإنجليزي للون ككلمة مفتاحية للبحث.
|
ابدأ بـ "$" لتفعيل وضع البحث عن اسم اللون بالإنجليزية.
|
||||||
|
|
||||||
#### المثال 2.1: red
|
#### المثال 2.1: $red
|
||||||
|
|
||||||
يطابق جميع أسماء الألوان بالإنجليزية التي تحتوي على "red"، مثل "أحمر"، "أحمر قوي"، "أحمر برتقالي"، إلخ. حتى إذا لم تكن لغة العرض الحالية هي الإنجليزية، لا يزال بإمكانك البحث عن اللون المقابل باستخدام الكلمة المفتاحية الإنجليزية.
|
يطابق جميع أسماء الألوان بالإنجليزية التي تحتوي على "red"، مثل "أحمر"، "أحمر قوي"، "أحمر برتقالي"، إلخ. حتى إذا لم تكن لغة العرض الحالية هي الإنجليزية، لا يزال بإمكانك البحث عن اللون المقابل باستخدام الكلمة المفتاحية الإنجليزية.
|
||||||
|
|
||||||
#### المثال 2.2: blue50
|
#### المثال 2.2: $blue50
|
||||||
|
|
||||||
يشبه المثال 1.2، إذ يمكن أن يطابق "أزرق (50)"، "أزرق (500)" و"الأزرق الفاتح (50)"، إلخ.
|
يشبه المثال 1.2، إذ يمكن أن يطابق "أزرق (50)"، "أزرق (500)" و"الأزرق الفاتح (50)"، إلخ.
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,13 @@ Coincide con todos los nombres de color que incluyan "azul50". Durante la coinci
|
|||||||
|
|
||||||
### 2. Nombre de color (inglés)
|
### 2. Nombre de color (inglés)
|
||||||
|
|
||||||
Usa el nombre de color en inglés como palabra clave de búsqueda.
|
Comience con "$" para activar el modo de búsqueda por nombre de color en inglés.
|
||||||
|
|
||||||
#### Ejemplo 2.1: red
|
#### Ejemplo 2.1: $red
|
||||||
|
|
||||||
Coincide con todos los nombres de color en inglés que contengan "red", como "Rojo", "Rojo anaranjado", "Rojo oscuro", etc. Incluso si el idioma de la interfaz no es inglés, puedes buscar el color correspondiente usando una palabra clave en inglés.
|
Coincide con todos los nombres de color en inglés que contengan "red", como "Rojo", "Rojo anaranjado", "Rojo oscuro", etc. Incluso si el idioma de la interfaz no es inglés, puedes buscar el color correspondiente usando una palabra clave en inglés.
|
||||||
|
|
||||||
#### Ejemplo 2.2: blue50
|
#### Ejemplo 2.2: $blue50
|
||||||
|
|
||||||
Igual que en el Ejemplo 1.2, puede coincidir con "Azul (50)", "Azul (500)" y "Azul claro (50)".
|
Igual que en el Ejemplo 1.2, puede coincidir con "Azul (50)", "Azul (500)" y "Azul claro (50)".
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,13 @@ Correspond à tous les noms de couleur contenant « bleu50 ». Lors de la corres
|
|||||||
|
|
||||||
### 2. Nom de couleur (anglais)
|
### 2. Nom de couleur (anglais)
|
||||||
|
|
||||||
Utilisez le nom de couleur en anglais comme mot-clé de recherche.
|
Commencez par "$" pour activer le mode de recherche par nom de couleur en anglais.
|
||||||
|
|
||||||
#### Exemple 2.1 : red
|
#### Exemple 2.1 : $red
|
||||||
|
|
||||||
Correspond à tous les noms de couleur en anglais contenant « red », tels que « Rouge », « Rouge orangé », « Rouge foncé », etc. Même si la langue d'affichage n'est pas l'anglais, vous pouvez toujours rechercher la couleur correspondante à l'aide d'un mot-clé en anglais.
|
Correspond à tous les noms de couleur en anglais contenant « red », tels que « Rouge », « Rouge orangé », « Rouge foncé », etc. Même si la langue d'affichage n'est pas l'anglais, vous pouvez toujours rechercher la couleur correspondante à l'aide d'un mot-clé en anglais.
|
||||||
|
|
||||||
#### Exemple 2.2 : blue50
|
#### Exemple 2.2 : $blue50
|
||||||
|
|
||||||
Comme dans l'exemple 1.2, il peut correspondre à « Bleu (50) », « Bleu (500) » et « Bleu clair (50) ».
|
Comme dans l'exemple 1.2, il peut correspondre à « Bleu (50) », « Bleu (500) » et « Bleu clair (50) ».
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
### 2. カラー名 (英語)
|
### 2. カラー名 (英語)
|
||||||
|
|
||||||
英語のカラー名をキーワードとして検索します.
|
"$" で始めると, 英語のカラーネーム検索モードが有効になります.
|
||||||
|
|
||||||
#### 例 2.1: red
|
#### 例 2.1: $red
|
||||||
|
|
||||||
"red" を含むすべての英語カラー名がマッチします. たとえば "レッド", "オレンジレッド", "インディアンレッド" など. 表示言語が英語でなくても, 英語のキーワードで該当するカラーを検索できます.
|
"red" を含むすべての英語カラー名がマッチします. たとえば "レッド", "オレンジレッド", "インディアンレッド" など. 表示言語が英語でなくても, 英語のキーワードで該当するカラーを検索できます.
|
||||||
|
|
||||||
#### 例 2.2: blue50
|
#### 例 2.2: $blue50
|
||||||
|
|
||||||
例 1.2 と同様に, "ブルー (50)", "ブルー (500)", "水色 (50)" などにマッチします.
|
例 1.2 と同様に, "ブルー (50)", "ブルー (500)", "水色 (50)" などにマッチします.
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
### 2. 색상 이름 (영어)
|
### 2. 색상 이름 (영어)
|
||||||
|
|
||||||
영어로 된 색상 이름을 검색 키워드로 사용합니다.
|
"$" 로 시작하여 영어 색상 이름 검색 모드를 활성화합니다.
|
||||||
|
|
||||||
#### 예시 2.1: red
|
#### 예시 2.1: $red
|
||||||
|
|
||||||
"red" 를 포함하는 모든 영어 색상 이름과 일치합니다. 예: "레드", "다크 레드", "스피넬 레드" 등. 현재 언어가 영어가 아니더라도, 영어 키워드를 통해 해당 색상을 검색할 수 있습니다.
|
"red" 를 포함하는 모든 영어 색상 이름과 일치합니다. 예: "레드", "다크 레드", "스피넬 레드" 등. 현재 언어가 영어가 아니더라도, 영어 키워드를 통해 해당 색상을 검색할 수 있습니다.
|
||||||
|
|
||||||
#### 예시 2.2: blue50
|
#### 예시 2.2: $blue50
|
||||||
|
|
||||||
예시 1.2 와 동일하게 "블루 (50)", "블루 (500)", "밝은 파란색 (50)" 등에 일치합니다.
|
예시 1.2 와 동일하게 "블루 (50)", "블루 (500)", "밝은 파란색 (50)" 등에 일치합니다.
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
### 2. Название цвета (английское)
|
### 2. Название цвета (английское)
|
||||||
|
|
||||||
Использовать английское название цвета в качестве ключевого слова.
|
Начните со знака "$", чтобы включить режим поиска по английскому названию цвета.
|
||||||
|
|
||||||
#### Пример 2.1: red
|
#### Пример 2.1: $red
|
||||||
|
|
||||||
Находит все английские названия цветов, содержащие «red», например «Красный», «Кирпичный красный», «Оранжево-красный» и т. д. Даже если язык интерфейса не английский, можно искать соответствующий цвет с помощью английского ключевого слова.
|
Находит все английские названия цветов, содержащие «red», например «Красный», «Кирпичный красный», «Оранжево-красный» и т. д. Даже если язык интерфейса не английский, можно искать соответствующий цвет с помощью английского ключевого слова.
|
||||||
|
|
||||||
#### Пример 2.2: blue50
|
#### Пример 2.2: $blue50
|
||||||
|
|
||||||
Аналогично примеру 1.2, совпадает с «Синий (50)», «Синий (500)», «Светло-голубой (50)» и т. д.
|
Аналогично примеру 1.2, совпадает с «Синий (50)», «Синий (500)», «Светло-голубой (50)» и т. д.
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
### 2. 顏色名稱 (英文)
|
### 2. 顏色名稱 (英文)
|
||||||
|
|
||||||
以英文顏色名稱作為關鍵字的搜索方式.
|
以 "$" 開頭, 啓用英文顏色名稱搜索方式.
|
||||||
|
|
||||||
#### 示例 2.1: red
|
#### 示例 2.1: $red
|
||||||
|
|
||||||
可匹配全部英文顏色名稱中包含 "red" 的顏色, 如 "紅", "鮮紅", "橙紅" 等. 即使當前顯示語言並非英語, 也可通過英文關鍵字搜索到對應的顏色.
|
可匹配全部英文顏色名稱中包含 "red" 的顏色, 如 "紅", "鮮紅", "橙紅" 等. 即使當前顯示語言並非英語, 也可通過英文關鍵字搜索到對應的顏色.
|
||||||
|
|
||||||
#### 示例 2.2: blue50
|
#### 示例 2.2: $blue50
|
||||||
|
|
||||||
同示例 1.2, 可匹配 "藍 (50)", "藍 (500)" 以及 "淺藍 (50)" 等.
|
同示例 1.2, 可匹配 "藍 (50)", "藍 (500)" 以及 "淺藍 (50)" 等.
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
### 2. 顏色名稱 (英文)
|
### 2. 顏色名稱 (英文)
|
||||||
|
|
||||||
以英文顏色名稱作為關鍵字的搜尋方式.
|
以 "$" 開頭, 啟用英文顏色名稱搜尋方式.
|
||||||
|
|
||||||
#### 示例 2.1: red
|
#### 示例 2.1: $red
|
||||||
|
|
||||||
可匹配全部英文顏色名稱中包含 "red" 的顏色, 如 "紅", "鮮紅", "橙紅" 等. 即使當前顯示語言並非英語, 也可透過英文關鍵字搜尋到對應的顏色.
|
可匹配全部英文顏色名稱中包含 "red" 的顏色, 如 "紅", "鮮紅", "橙紅" 等. 即使當前顯示語言並非英語, 也可透過英文關鍵字搜尋到對應的顏色.
|
||||||
|
|
||||||
#### 示例 2.2: blue50
|
#### 示例 2.2: $blue50
|
||||||
|
|
||||||
同示例 1.2, 可匹配 "藍 (50)", "藍 (500)" 以及 "淺藍 (50)" 等.
|
同示例 1.2, 可匹配 "藍 (50)", "藍 (500)" 以及 "淺藍 (50)" 等.
|
||||||
|
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
### 2. 颜色名称 (英文)
|
### 2. 颜色名称 (英文)
|
||||||
|
|
||||||
以英文颜色名称作为关键字的搜索方式.
|
以 "$" 开头, 启用英文颜色名称搜索方式.
|
||||||
|
|
||||||
#### 示例 2.1: red
|
#### 示例 2.1: $red
|
||||||
|
|
||||||
可匹配全部英文颜色名称中包含 "red" 的颜色, 如 "红", "鲜红", "橙红" 等. 即使当前显示语言并非英语, 也可通过英文关键字搜索到对应的颜色.
|
可匹配全部英文颜色名称中包含 "red" 的颜色, 如 "红", "鲜红", "橙红" 等. 即使当前显示语言并非英语, 也可通过英文关键字搜索到对应的颜色.
|
||||||
|
|
||||||
#### 示例 2.2: blue50
|
#### 示例 2.2: $blue50
|
||||||
|
|
||||||
同示例 1.2, 可匹配 "蓝 (50)", "蓝 (500)" 以及 "浅蓝 (50)" 等.
|
同示例 1.2, 可匹配 "蓝 (50)", "蓝 (500)" 以及 "浅蓝 (50)" 等.
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
<string name="dialog_button_copy">@string/text_copy</string>
|
<string name="dialog_button_copy">@string/text_copy</string>
|
||||||
<string name="dialog_button_default_prefix">기본 접두사</string>
|
<string name="dialog_button_default_prefix">기본 접두사</string>
|
||||||
<string name="dialog_button_details">세부</string>
|
<string name="dialog_button_details">세부</string>
|
||||||
<string name="dialog_button_dismiss">Dismiss</string>
|
<string name="dialog_button_dismiss">닫기</string>
|
||||||
<string name="dialog_button_download_with_browser">브라우저</string>
|
<string name="dialog_button_download_with_browser">브라우저</string>
|
||||||
<string name="dialog_button_file_information">파일 정보</string>
|
<string name="dialog_button_file_information">파일 정보</string>
|
||||||
<string name="dialog_button_history">역사</string>
|
<string name="dialog_button_history">역사</string>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#Tue Apr 08 21:28:35 CST 2025
|
#Wed Apr 09 21:04:42 CST 2025
|
||||||
BUILD_TIME=1744118915044
|
BUILD_TIME=1744203882827
|
||||||
COMPILE_SDK_VERSION=35
|
COMPILE_SDK_VERSION=35
|
||||||
JAVA_VERSION=23
|
JAVA_VERSION=23
|
||||||
JAVA_VERSION_MIN_RADICAL=0
|
JAVA_VERSION_MIN_RADICAL=0
|
||||||
@@ -17,6 +17,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13
|
|||||||
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
|
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
|
||||||
TARGET_SDK_VERSION=35
|
TARGET_SDK_VERSION=35
|
||||||
TARGET_SDK_VERSION_INRT=29
|
TARGET_SDK_VERSION_INRT=29
|
||||||
VERSION_BUILD=3113
|
VERSION_BUILD=3118
|
||||||
VERSION_NAME=6.6.2 Alpha5
|
VERSION_NAME=6.6.2 Alpha5
|
||||||
VSCODE_EXT_REQUIRED_VERSION=1.0.8
|
VSCODE_EXT_REQUIRED_VERSION=1.0.8
|
||||||
|
|||||||
Reference in New Issue
Block a user