Skip to content

Commit 9dd8563

Browse files
committed
fix: 更新错误提示信息为中文,增强用户体验
1 parent eab5a97 commit 9dd8563

10 files changed

Lines changed: 135 additions & 136 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ app/
165165
### 环境要求
166166
- **Android Studio**: Hedgehog | 2023.1.1 或更高版本
167167
- **JDK**: 17
168-
- **Android SDK**: API 25+ (Android 7.0+)
168+
- **Android SDK**: API 26+ (Android 8.0+)
169169
- **Gradle**: 8.0+
170170

171171
### 编译步骤

app/src/main/java/com/muort/upworker/feature/account/AccountViewModel.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class AccountViewModel @Inject constructor(
105105
) {
106106
if (name.isBlank() || accountId.isBlank() || token.isBlank()) {
107107
viewModelScope.launch {
108-
_message.emit("Please fill in all required fields")
108+
_message.emit("请填写所有必填项")
109109
}
110110
return
111111
}
@@ -123,13 +123,13 @@ class AccountViewModel @Inject constructor(
123123

124124
when (val result = accountRepository.insertAccount(account)) {
125125
is Resource.Success -> {
126-
_message.emit("Account added successfully")
126+
_message.emit("账号添加成功")
127127
if (isDefault) {
128128
accountRepository.setDefaultAccount(result.data)
129129
}
130130
}
131131
is Resource.Error -> {
132-
_message.emit("Failed to add account: ${result.message}")
132+
_message.emit("添加账号失败: ${result.message}")
133133
}
134134
is Resource.Loading -> {}
135135
}
@@ -140,13 +140,13 @@ class AccountViewModel @Inject constructor(
140140
viewModelScope.launch {
141141
when (val result = accountRepository.updateAccount(account)) {
142142
is Resource.Success -> {
143-
_message.emit("Account updated successfully")
143+
_message.emit("账号更新成功")
144144
if (account.isDefault) {
145145
accountRepository.setDefaultAccount(account.id)
146146
}
147147
}
148148
is Resource.Error -> {
149-
_message.emit("Failed to update account: ${result.message}")
149+
_message.emit("更新账号失败: ${result.message}")
150150
}
151151
is Resource.Loading -> {}
152152
}
@@ -157,10 +157,10 @@ class AccountViewModel @Inject constructor(
157157
viewModelScope.launch {
158158
when (val result = accountRepository.deleteAccount(account)) {
159159
is Resource.Success -> {
160-
_message.emit("Account deleted successfully")
160+
_message.emit("账号删除成功")
161161
}
162162
is Resource.Error -> {
163-
_message.emit("Failed to delete account: ${result.message}")
163+
_message.emit("删除账号失败: ${result.message}")
164164
}
165165
is Resource.Loading -> {}
166166
}
@@ -171,10 +171,10 @@ class AccountViewModel @Inject constructor(
171171
viewModelScope.launch {
172172
when (val result = accountRepository.setDefaultAccount(accountId)) {
173173
is Resource.Success -> {
174-
_message.emit("Default account updated")
174+
_message.emit("默认账号已更新")
175175
}
176176
is Resource.Error -> {
177-
_message.emit("Failed to set default account: ${result.message}")
177+
_message.emit("设置默认账号失败: ${result.message}")
178178
}
179179
is Resource.Loading -> {}
180180
}
@@ -185,7 +185,7 @@ class AccountViewModel @Inject constructor(
185185
return when (val result = accountRepository.exportAccounts()) {
186186
is Resource.Success -> result.data
187187
is Resource.Error -> {
188-
_message.emit("Failed to export accounts: ${result.message}")
188+
_message.emit("导出账号失败: ${result.message}")
189189
null
190190
}
191191
is Resource.Loading -> null
@@ -196,10 +196,10 @@ class AccountViewModel @Inject constructor(
196196
viewModelScope.launch {
197197
when (val result = accountRepository.importAccounts(accounts)) {
198198
is Resource.Success -> {
199-
_message.emit("Accounts imported successfully")
199+
_message.emit("账号导入成功")
200200
}
201201
is Resource.Error -> {
202-
_message.emit("Failed to import accounts: ${result.message}")
202+
_message.emit("导入账号失败: ${result.message}")
203203
}
204204
is Resource.Loading -> {}
205205
}

app/src/main/java/com/muort/upworker/feature/dns/DnsViewModel.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class DnsViewModel @Inject constructor(
3737
Timber.d("Loaded ${result.data.size} DNS records")
3838
}
3939
is Resource.Error -> {
40-
_message.emit("Failed to load DNS records: ${result.message}")
40+
_message.emit("加载 DNS 记录失败: ${result.message}")
4141
Timber.e("Failed to load DNS records: ${result.message}")
4242
}
4343
is Resource.Loading -> {}
@@ -71,11 +71,11 @@ class DnsViewModel @Inject constructor(
7171

7272
when (val result = dnsRepository.createDnsRecord(account, record)) {
7373
is Resource.Success -> {
74-
_message.emit("DNS record created successfully")
74+
_message.emit("DNS 记录创建成功")
7575
loadDnsRecords(account)
7676
}
7777
is Resource.Error -> {
78-
_message.emit("Failed to create DNS record: ${result.message}")
78+
_message.emit("创建 DNS 记录失败: ${result.message}")
7979
}
8080
is Resource.Loading -> {}
8181
}
@@ -109,11 +109,11 @@ class DnsViewModel @Inject constructor(
109109

110110
when (val result = dnsRepository.updateDnsRecord(account, recordId, record)) {
111111
is Resource.Success -> {
112-
_message.emit("DNS record updated successfully")
112+
_message.emit("DNS 记录更新成功")
113113
loadDnsRecords(account)
114114
}
115115
is Resource.Error -> {
116-
_message.emit("Failed to update DNS record: ${result.message}")
116+
_message.emit("更新 DNS 记录失败: ${result.message}")
117117
}
118118
is Resource.Loading -> {}
119119
}
@@ -128,11 +128,11 @@ class DnsViewModel @Inject constructor(
128128

129129
when (val result = dnsRepository.deleteDnsRecord(account, recordId)) {
130130
is Resource.Success -> {
131-
_message.emit("DNS record deleted successfully")
131+
_message.emit("DNS 记录删除成功")
132132
loadDnsRecords(account)
133133
}
134134
is Resource.Error -> {
135-
_message.emit("Failed to delete DNS record: ${result.message}")
135+
_message.emit("删除 DNS 记录失败: ${result.message}")
136136
}
137137
is Resource.Loading -> {}
138138
}

app/src/main/java/com/muort/upworker/feature/kv/KvViewModel.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class KvViewModel @Inject constructor(
4949
Timber.d("Loaded ${result.data.size} namespaces")
5050
}
5151
is Resource.Error -> {
52-
_message.emit("Failed to load namespaces: ${result.message}")
52+
_message.emit("加载命名空间失败: ${result.message}")
5353
Timber.e("Failed to load namespaces: ${result.message}")
5454
}
5555
is Resource.Loading -> {}
@@ -62,7 +62,7 @@ class KvViewModel @Inject constructor(
6262
fun createNamespace(account: Account, title: String) {
6363
if (title.isBlank()) {
6464
viewModelScope.launch {
65-
_message.emit("Please enter namespace title")
65+
_message.emit("请输入命名空间名称")
6666
}
6767
return
6868
}
@@ -72,11 +72,11 @@ class KvViewModel @Inject constructor(
7272

7373
when (val result = kvRepository.createNamespace(account, title)) {
7474
is Resource.Success -> {
75-
_message.emit("Namespace created successfully")
75+
_message.emit("命名空间创建成功")
7676
loadNamespaces(account)
7777
}
7878
is Resource.Error -> {
79-
_message.emit("Failed to create namespace: ${result.message}")
79+
_message.emit("创建命名空间失败: ${result.message}")
8080
}
8181
is Resource.Loading -> {}
8282
}
@@ -91,15 +91,15 @@ class KvViewModel @Inject constructor(
9191

9292
when (val result = kvRepository.deleteNamespace(account, namespaceId)) {
9393
is Resource.Success -> {
94-
_message.emit("Namespace deleted successfully")
94+
_message.emit("命名空间删除成功")
9595
if (_selectedNamespace.value?.id == namespaceId) {
9696
_selectedNamespace.value = null
9797
_keys.value = emptyList()
9898
}
9999
loadNamespaces(account)
100100
}
101101
is Resource.Error -> {
102-
_message.emit("Failed to delete namespace: ${result.message}")
102+
_message.emit("删除命名空间失败: ${result.message}")
103103
}
104104
is Resource.Loading -> {}
105105
}
@@ -132,7 +132,7 @@ class KvViewModel @Inject constructor(
132132
Timber.d("Loaded ${keysWithValues.size} keys with values")
133133
}
134134
is Resource.Error -> {
135-
_message.emit("Failed to load keys: ${result.message}")
135+
_message.emit("加载 Key 列表失败: ${result.message}")
136136
}
137137
is Resource.Loading -> {}
138138
}
@@ -152,7 +152,7 @@ class KvViewModel @Inject constructor(
152152
onResult(result.data)
153153
}
154154
is Resource.Error -> {
155-
_message.emit("Failed to get value: ${result.message}")
155+
_message.emit("获取 Value 失败: ${result.message}")
156156
onResult(null)
157157
}
158158
is Resource.Loading -> {}
@@ -165,7 +165,7 @@ class KvViewModel @Inject constructor(
165165
fun putValue(account: Account, namespaceId: String, keyName: String, value: String) {
166166
if (keyName.isBlank()) {
167167
viewModelScope.launch {
168-
_message.emit("Please enter key name")
168+
_message.emit("请输入 Key 名称")
169169
}
170170
return
171171
}
@@ -175,11 +175,11 @@ class KvViewModel @Inject constructor(
175175

176176
when (val result = kvRepository.putValue(account, namespaceId, keyName, value)) {
177177
is Resource.Success -> {
178-
_message.emit("Value saved successfully")
178+
_message.emit("Value 保存成功")
179179
loadKeys(account, namespaceId)
180180
}
181181
is Resource.Error -> {
182-
_message.emit("Failed to save value: ${result.message}")
182+
_message.emit("保存 Value 失败: ${result.message}")
183183
}
184184
is Resource.Loading -> {}
185185
}
@@ -194,15 +194,15 @@ class KvViewModel @Inject constructor(
194194

195195
when (val result = kvRepository.deleteValue(account, namespaceId, keyName)) {
196196
is Resource.Success -> {
197-
_message.emit("Value deleted successfully")
197+
_message.emit("Value 删除成功")
198198
if (_selectedKey.value?.name == keyName) {
199199
_selectedKey.value = null
200200
_keyValue.value = ""
201201
}
202202
loadKeys(account, namespaceId)
203203
}
204204
is Resource.Error -> {
205-
_message.emit("Failed to delete value: ${result.message}")
205+
_message.emit("删除 Value 失败: ${result.message}")
206206
}
207207
is Resource.Loading -> {}
208208
}

app/src/main/java/com/muort/upworker/feature/pages/PagesFragment.kt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,11 @@ class PagesFragment : Fragment() {
431431
loadingDialog.show()
432432

433433
// Fetch current project detail to get existing bindings
434-
viewLifecycleOwner.lifecycleScope.launch {
434+
// Fetch all namespaces first
435+
lifecycleScope.launch {
436+
val namespacesResult = kvRepository.listNamespaces(account)
437+
val namespaces = if (namespacesResult is Resource.Success) namespacesResult.data else emptyList()
438+
// Fetch current project detail to get existing bindings
435439
pagesViewModel.getProjectDetail(account, project.name) { projectResult ->
436440
loadingDialog.dismiss()
437441

@@ -452,10 +456,12 @@ class PagesFragment : Fragment() {
452456
projectResult.data.deploymentConfigs?.preview
453457
}
454458
envConfig?.kvNamespaces?.forEach { (bindingName, kvBinding) ->
455-
val binding = Pair(bindingName, kvBinding.namespaceId)
459+
val ns = namespaces.find { it.id == kvBinding.namespaceId }
460+
val nsTitle = ns?.title ?: kvBinding.namespaceId
461+
val binding = Pair(bindingName, nsTitle)
456462
tempKvBindings.add(binding)
457463
originalKvBindings.add(binding)
458-
Timber.d("Loaded existing KV binding: $bindingName -> ${kvBinding.namespaceId}")
464+
Timber.d("Loaded existing KV binding: $bindingName -> $nsTitle")
459465
}
460466
}
461467

@@ -528,7 +534,7 @@ class PagesFragment : Fragment() {
528534
val dialogBinding = com.muort.upworker.databinding.DialogKvBindingBinding.inflate(layoutInflater)
529535

530536
// Setup spinner
531-
val namespaceNames = namespaces.map { "${it.title} (${it.id})" }
537+
val namespaceNames = namespaces.map { it.title }
532538
val adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, namespaceNames)
533539
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
534540
dialogBinding.namespaceSpinner.adapter = adapter
@@ -1207,7 +1213,7 @@ class PagesKvBindingsAdapter(
12071213

12081214
fun bind(kvBinding: Pair<String, String>) {
12091215
binding.bindingNameText.text = kvBinding.first
1210-
binding.namespaceIdText.text = "Namespace ID: ${kvBinding.second}"
1216+
binding.namespaceIdText.text = kvBinding.second
12111217

12121218
binding.deleteBindingBtn.setOnClickListener {
12131219
onDeleteClick(kvBinding)

0 commit comments

Comments
 (0)