diff --git a/app/build.gradle b/app/build.gradle index 2530e436..1d0c48d6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { minSdkVersion 26 targetSdkVersion 35 - versionCode 48 - versionName "1.19.0" + versionCode 50 + versionName "1.19.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/io/heckel/ntfy/ui/BasePreferenceFragment.kt b/app/src/main/java/io/heckel/ntfy/ui/BasePreferenceFragment.kt index 730827f5..ddf7c9b5 100644 --- a/app/src/main/java/io/heckel/ntfy/ui/BasePreferenceFragment.kt +++ b/app/src/main/java/io/heckel/ntfy/ui/BasePreferenceFragment.kt @@ -1,6 +1,11 @@ package io.heckel.ntfy.ui +import android.os.Bundle +import android.view.View import android.widget.TextView +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updatePadding import androidx.preference.EditTextPreference import androidx.preference.ListPreference import androidx.preference.Preference @@ -10,6 +15,20 @@ import com.google.android.material.textfield.TextInputEditText import io.heckel.ntfy.R abstract class BasePreferenceFragment : PreferenceFragmentCompat() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + // Apply window insets to ensure content is not covered by navigation bar + listView?.let { recyclerView -> + recyclerView.clipToPadding = false + ViewCompat.setOnApplyWindowInsetsListener(recyclerView) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.updatePadding(bottom = systemBars.bottom) + insets + } + } + } + /** * Show [ListPreference] and [EditTextPreference] dialog by [MaterialAlertDialogBuilder] */ diff --git a/app/src/main/java/io/heckel/ntfy/ui/DetailSettingsActivity.kt b/app/src/main/java/io/heckel/ntfy/ui/DetailSettingsActivity.kt index 51a81b09..8120e14d 100644 --- a/app/src/main/java/io/heckel/ntfy/ui/DetailSettingsActivity.kt +++ b/app/src/main/java/io/heckel/ntfy/ui/DetailSettingsActivity.kt @@ -97,7 +97,7 @@ class DetailSettingsActivity : AppCompatActivity() { return true } - class SettingsFragment : PreferenceFragmentCompat() { + class SettingsFragment : BasePreferenceFragment() { private lateinit var resolver: ContentResolver private lateinit var repository: Repository private lateinit var serviceManager: SubscriberServiceManager diff --git a/app/src/main/res/layout/fragment_main_item.xml b/app/src/main/res/layout/fragment_main_item.xml index 1b999364..264e20b6 100644 --- a/app/src/main/res/layout/fragment_main_item.xml +++ b/app/src/main/res/layout/fragment_main_item.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?android:attr/selectableItemBackground" + android:foreground="?android:attr/selectableItemBackground" android:orientation="horizontal" android:clickable="true" android:focusable="true" android:paddingEnd="18dp" android:paddingStart="18dp"> diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index c0ef6c8a..139d50c8 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -349,4 +349,7 @@ Будилници в точно време ntfy може да насрочва будилници в точно определено време. Те са задължителни за повторно свързване на WebSockets във фонов режим. За да оттеглите разрешението докоснете. ntfy не може да насрочва будилници в точно определено време. Те са задължителни за повторно свързване на WebSockets във фонов режим. За да разрешите докоснете. + Динамични цветове + Използване на динамичните системни цветове + Използване на цветовете от темата на ntfy diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e0cb2768..1498bc60 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -349,4 +349,7 @@ Genaue Alarme ntfy kann genaue Alarme planen. Um WebSockets im Hintergrund wieder zu verbinden, sind genaue Alarme erforderlich. Hier tippen, um die Berechtigung zu widerrufen. ntfy kann keine genauen Alarme planen. Um WebSockets im Hintergrund wieder zu verbinden, sind genaue Alarme erforderlich. Tippe hier, um die Berechtigung zu erteilen. + Dynamische Farben + Verwendung der dynamischen Systemfarben + Verwendung der ntfy-Themenfarben diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index b452d70d..ea367b56 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -339,4 +339,7 @@ Helimärguanded, „Ära sega“ olekuga mittearvestamine, jne. Jätka pidevate märguannetega Anna märku vaid üks kord + Kasuta dünaamilist värvivalikut + Kasutan dünaamilist süsteemi värvide valikut + Kasutan ntfy kujunduste valikut diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 5449bf84..ee6f09ae 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -51,4 +51,50 @@ از سرور دیگری استفاده کن برای اشتراک در موضوعات از سرورهای دیگر، نشانی‌های سرویس را در زیر وارد کنید. با فشردن + یک موضوع ایجاد کرده یا به آن مشترک شوید. از این پس شما هنگام ارسال توسط PUT یا POST بر روی دستگاه خود اطلاعیه دریافت می کنید. + رد کردن + رد کردن + لغو + اشتراک + بازگشت + نام کاربری + گذرواژه + لغو + لغو + برگردان + حذف شده + لغو اشتراک + رونوشت + حذف + لغو + هم‌رسانی + هم‌رسانی + لغو + ذخیره + گشودن + مرور + بارگیری + لغو + تنظیمات + آگاهی‌ها + کم + پیش‌گزیده + زیاد + بیشینه + کمینه + هرگز + عمومی + کاربران + همه‌چیز + پیشرفته + قبول + سوکت‌های وب + درباره + نگارش + ظاهر + درباره + نام کاربری + گذرواژه + لغو + ذخیره + رد کردن diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 673e78e5..24d88f5f 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -346,4 +346,7 @@ Demander plus tard Ignorer Autoriser + Alarmes exactes + ntfy peut programmer des alarmes exactes. Les alarmes exactes sont nécessaires pour reconnecter les WebSockets en arrière-plan. Cliquez pour révoquer l’autorisation. + ntfy ne peut pas programmer d’alarmes exactes. Les alarmes exactes sont nécessaires pour reconnecter les WebSockets en arrière-plan. Cliquez pour accorder l’autorisation. diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index b35e1473..50d18e87 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -349,4 +349,7 @@ Alarmas exactas ntfy pode pogramar alarmas exactas. Estas alarmas requírense para reconectar en segundo plano con WebSockets. Preme para revogar o permiso. ntfy non pode programar alarmas exactas. Estas alarmas requírense para reconectar en segundo plano con WebSockets. Preme para conceder o permiso. + Cores dinámicas + Usando as cores dinámicas do sistema + Usando as cores do decorado ntfy diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 3488a85e..a5b64f1d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -257,7 +257,7 @@ Modalità scura Backup su file Modalità scura attiva. Sei un vampiro? - Backup & Ripristino + Backup e Ripristino Ripristino fallito: %1$s Log copiati negli appunti Informazioni @@ -345,4 +345,7 @@ Allarmi esatti ntfy può programmare allarmi esatti. Gli allarmi esatti sono necessari per riconnettere i WebSocket in sottofondo. Clicca per revocare l\'autorizzazione. ntfy non può pianificare allarmi esatti. Gli allarmi esatti sono necessari per riconnettere i WebSocket in sottofondo. Clicca per concedere l\'autorizzazione. + Colori dinamici + Utilizzo dei colori del sistema dinamico + Utilizzo dei colori del tema di ntfy diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 30543449..cbc2a966 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -349,4 +349,7 @@ 正確なアラーム ntfyは正確なアラームをスケジュールできます。正確なアラームはバックグラウンドでWebSocketを再接続するのに使用されます。クリックして権限を取り消す。 ntfyは正確なアラームをスケジュールできません。WebSocketsをバックグラウンドで再接続するには正確なアラームが必要です。クリックして権限を許可してください。 + ダイナミックカラー + システムのダイナミックカラーを使用する + ntfyのテーマカラーを使用する diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 550042ab..5e92e2de 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -347,4 +347,7 @@ Kesin alarmlar ntfy, kesin alarmlar planlayabilir. Kesin alarmlar, WebSocket’lerin arka planda yeniden bağlanması için gereklidir. İzni geri almak için tıklayın. ntfy, kesin alarmlar planlayamaz. Kesin alarmlar, WebSocket’lerin arka planda yeniden bağlanması için gereklidir. İzni vermek için tıklayın. + Değişken renkler + Değişken sistem renkleri kullanılıyor + ntfy tema renkleri kullanılıyor diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 4b9beb3a..543d350c 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1,27 +1,27 @@ - Ưu tiên thấp + Mức ưu tiên thấp Mật khẩu Tên tài khoản - Chủ đề này cần đăng nhập để truy cập. Vui lòng nhập tên tài khoản và mật khẩu. - Thêm người dùng + Chủ đề cần đăng nhập để truy cập. Vui lòng nhập tên tài khoản và mật khẩu. + Thêm tài khoản Đăng nhập thất bại. Tài khoản %1$s không được cấp quyền. Bạn có thể chỉnh sửa tên tài khoản hoặc mật khẩu của người dùng này, hoặc xóa người dùng này khỏi hệ thống. Lưu Mật khẩu Tên chủ đề, ví dụ: phils_alerts - Xóa người dùng + Xóa tài khoản Hủy Sử dụng máy chủ khác Mật khẩu (không đổi nếu để trống) Theo dõi chủ đề Tên tài khoản - Ưu tiên thấp nhất - Ưu tiên cao nhất + Mức ưu tiên thấp nhất + Mức ưu tiên cao nhất Mặc định Dịch vụ thông báo Mặc định - Ưu tiên cao + Mức ưu tiên cao Chờ thông báo Đã nhận %1$d thông báo Xóa vĩnh viễn @@ -32,11 +32,11 @@ Đăng kí Quay lại Đăng nhập - Yêu cầi đăng nhập - Ví dụ (với curl):

$ curl -d \"Hi\" %1$s
+ Yêu cầu đăng nhập + $ curl -d \"Xin chào\" %1$s-]]> Kết nối không thành công: %1$s Bạn chưa nhận thông báo nào cho chủ đề này. - Để gửi thông báo tới chủ đề này, hãy PUT hoặc POST vào URL của chủ đề. + Để gửi thông báo tới chủ đề này, hãy PUT hoặc POST tới URL của chủ đề. Kết nối đến máy chủ bằng WebSockets là cách được khuyến nghị và có thể cải thiện thời lượng pin, nhưng có thể cần thêm cấu hình trong proxy của bạn. Điều này có thể được bật/tắt trong Cài đặt. Cài đặt Báo lỗi @@ -58,4 +58,288 @@ Huỷ Huỷ Huỷ + Đã đăng kí nhận thông báo thời gian thực + Đã đăng kí một chủ đề nhận thông báo thời gian thực + Đã đăng kí hai chủ đề nhận thông báo thời gian thực + Đã đăng kí ba chủ đề nhận thông báo thời gian thực + Đã đăng kí bốn chủ đề nhận thông báo thời gian thực + Đã đăng kí năm chủ đề nhận thông báo thời gian thực + Đã đăng kí sáu chủ đề nhận thông báo thời gian thực + Đã đăng kí %1$d chủ đề nhận thông báo thời gian thực + Đã đăng kí các chủ đề + Đã đăng kí một chủ đề + Đã đăng kí hai chủ đề + Đã đăng kí ba chủ đề + Đã đăng kí bốn chủ đề + Đã đăng kí năm chủ đề + Đã đăng kí sáu chủ đề + Đã đăng kí %1$d chủ đề + Không có thông báo mới + Không thể cập nhật %1$d chủ đề\n\n%2$s + Không thể cập nhật chủ đề: %1$s + Hiện thông báo + Đã tắt thông báo + Đang kết nối lại … + %1$s (UnifiedPush) + Đăng kí thêm + Bấm nút + để tạo hoặc đăng kí chủ đề. Bạn sẽ nhận thông báo trên các thiết bị khi gửi thông báo bằng PUT hoặc POST. + Chủ đề này được quản lí bởi %1$s thông qua UnifiedPush + Khuyến nghị tắt chế độ tiết kiệm pin để tránh lỗi thông báo. + Bỏ qua + Cho phép + Bỏ qua + Cho phép + Để đảm bảo WebSocket kết nối lại khi chạy nền, hãy cấp quyền Báo thức & Nhắc nhở cho ntfy + Hỏi sau + Bỏ qua + Cho phép + Chủ đề không được bảo vệ bằng mật khẩu, vì vậy hãy đặt tên khó đoán. Sau khi đăng ký, bạn có thể gửi thông báo bằng PUT/POST. + Nhập URL bên dưới để đăng ký các chủ đề từ server khác. + Nhận thông báo thời gian thực trong chế độ ngủ + Đảm bảo thông báo được gửi ngay cả khi thiết bị không hoạt động. + Thông báo thời gian thực luôn được bật cho hosts khác ngoài %1$s. + Chọn URL + Xóa URL + Hướng dẫn cụ thể trên ntfy.sh, và trong tài liệu hướng dẫn. + Xóa tất cả thông báo trong chủ đề này? + Xóa vĩnh viễn + Hủy đăng kí chủ đề và xóa tát cả thông báo đã nhận? + Xóa vĩnh viễn + Thử nghiệm: Bạn có thể đặt title nếu thích. + Thông báo thử nghiệm từ ntfy Android. Mức ưu tiên %1$d. Gửi thêm có thể khác. + Không thể gửi thông báo: %1$s + Không thể gửi thông báo: Gửi ẩn danh không được phép. + Không thể gửi thông báo: Người dùng \"%1$s\" không có quyền. + Không thể gửi thông báo: Tệp đính kèm quá lớn. + Đã lưu vào clipboard + Hiện thông báo thời gian thực + Đã tắt thông báo thời gian thực + Đã đăng kí chủ đề %1$s + Đã xóa thông báo + Hoàn tác + Mở tệp + Xóa tệp + Tải tệp + Hủy tải xuống + Lưu tệp + Sao chép URL + URL đã được sao chép vào clipboard + Sao chép thông báo + Thông báo đã được sao chép vào clipboard + Đã lưu thành \"%1$s\" trong thư mục \"Downloads\" + Không thể mở hoặc tải tệp. Liên kết hết hạn và không tìm thấy tệp. + Không thể mở tệp đính kèm: %1$s + Không thể mở tệp: Tệp đã xóa hoặc không có ứng dụng mở được. + Không thể mở liên kết: %1$s + Không thể cài ứng dụng trực tiếp. Hãy tải qua trình duyệt. Xem issue #531 để biết thêm chi tiết. + Không thể lưu tệp đính kèm: %1$s + Không thể xóa tệp đính kèm: %1$s + Không thể tải tệp đính kèm: %1$s + chưa tải xuống + chưa tải xuống, liên kết hết hạn + chưa tải xuống, hết hạn %1$s + Đã tải %1$d%% + đã xóa + đã xóa, liên kết hết hạn + đã xóa, liên kết hết hạn %1$s + tải xuống thất bại + tải xuống thất bại, liên kết hết hạn + tải xuống thất bại, liên kết hết hạn %1$s + Hiện thông báo + Đã tắt thông báo + Thông báo bị tắt cho đến %1$s + Bật thông báo thời gian thực + Tắt thông báo thời gian thực + Gửi thông báo thử nghiệm + Sao chép địa chỉ chủ đề + Xóa tất cả thông báo + Cài đặt đăng kí + Hủy đăng kí + Sao chép + Xóa + Xóa vĩnh viễn thông báo đã chọn? + Xóa vĩnh viễn + Cài đặt đăng kí + Chia sẻ + Chia sẻ + Xem trước thông báo + Thêm nội dung để chia sẻ + Một ảnh đã được chia sẻ với bạn + Không thể đọc ảnh: %1$s + Một tệp đã được chia sẻ với bạn + Không thể đọc thông tin tệp: %1$s + Chia sẻ tới + Các chủ đề được gợi ý + Đã chia sẻ thành công + Tắt thông báo + Thông báo bật lại + Đã tắt thông báo + Thông báo bị tắt cho đến %1$s + Xem tất cả thông báo + 30 phút + 1 tiếng + 2 tiếng + 8 tiếng + Ngày mai + Cho đến khi bật lại + Mở + Duyệt + Tải + %1$s\nTệp: %2$s + Đang tải %1$s, %2$d%%\n%3$s + %1$s\nTệp: %2$s đã tải xong + %1$s\nTệp: %2$s, tải thất bại + %1$s thất bại: %2$s + Cài đặt + Thông báo + Tắt thông báp + Đang hiển thị tất cả thông báo + Đã tắt thông báo đến khi bật lại + Thông báo bị tắt cho đến %1$s + Mức ưu tiên thấp nhất + Đang hiển thị tất cả thông báo + Hiển thị thông báo nếu mức ưu tiên là %1$d (%2$s) hoặc cao hơn + Hiển thị thông báo nếu mức ưu tiên 5 (cao nhất) + Mọi mức ưu tiên + Mức ưu tiên thấp trở lên + Mức mặc định trở lên + Mức ưu tiên cao trở lên + Chỉ mức ưu tiên cao nhất + thấp + thấp nhất + mặc định + cao + cao nhất + cài đặt kênh + Bỏ qua chế độ Không làm phiền (DND), âm thanh, v.v. + Tải tệp đính kèm + Tự động tải tệp đính kèm + Không tự động tải tệp đính kèm + Tự động tải tệp đính kèm tối đa %1$s + Không tự động tải + Tự động tải + nếu dưới 100kB + nếu dưới 500 kB + nếu dưới 1 MB + nếu dưới 5 MB + nếu dưới 10 MB + nếu dưới 50 MB + Xóa thông báo + Không tự động xóa thông báo + Tự động xóa thông báo sau một ngày + Tự động xóa thông báo sau ba ngày + Tự động xóa thông báo sau một tuần + Tự động xóa thông báo sau một tháng + Tự động xóa thông báo sau ba tháng + Không bao giờ + Sau một ngày + Sau ba ngày + Sau một tuần + Sau một tháng + Sau ba tháng + Cảnh báo mức ưu tiên cao nhất + Cảnh báo liên tục cho thông báo ưu tiên cao nhất cho đén khi tắt + Cảnh báo một lần cho thông báo ưu tiên cao nhất + Tổng quan + Server mặc định + Nhập URL server để dùng làm mặc định khi đăng ký/chia sẻ chủ đề mới. + %1$s (mặc định) + Quản lí tài khoản + Thêm/xóa tài khoản cho các topic được bảo vệ + Tài khoản + Hiện chưa có topic sử dụng + Topic %1$s đang sử dụng + Các topic %1$s đang sử dụng + Thêm tài khoản + Thêm tài khoản mới + Tạo tài khoản cho server mới + Chế độ tối + Mặc định hệ thống + Chế độ sáng + Đã bật chế độ tối. Sợ ánh sáng hả? + Mặc định hệ thống + Chế độ sáng + Chế độ tối + Màu động + Màu động hệ thống + Màu ntfy + Sao lưu & Phục hồi + Sao lưu vào tệp + Xuất cấu hình, thông báo và người dùng + Tất cả + Tất cả, trừ tài khoản + Chỉ cài đặt + Bản sao lưu đã được tạo + Sao lưu thất bại: %1$s + Phục hồi từ tệp + Nhập cấu hình, thông báo và tài khoản + Phục hồi thành công + Phục hồi thất bại: %1$s + Nâng cao + Broadcast thông báo + Ứng dụng có thể nhận thông báo dưới dạng broadcast + Ứng dụng không thể nhận thông báo dưới dạng broadcast + Bật UnifiedPush + ntfy sẽ gửi thông báo thông qua UnifiedPush + ntfy sẽ không gửi thông báo thông qua UnifiedPush + Ghi logs + Ghi logs (tối đa 1.000 đầu mục) vào thiết bị… + Bật ghi log để chia sẻ log để chẩn đoán sự cố sau này. + Sao chép/tải lên logs + Sao chép logs vào clipboard hoặc tải lên nopaste.net (thuộc tác giả ntfy). Hostname và topic có thể ẩn, nhưng thông báo sẽ luôn giữ nguyên. + Sao chép vào clipboard + Sao chép vào clipboard (có che) + Tải lên và sao chép liên kết + Tải lên và sao chép liên kết (có che) + Logs đã được sao chép vào clipboard + Đang tải lên logs … + Log đã được tải lên và URL đã sao chép + Không thể tải lên log: %1$s + Topic/hostname đã đổi thành tên trái cây để có thể chia sẻ log an toàn:\n\n%1$s\n\nMật khẩu đã xoá, không liệt kê ở đây. + Không có chủ đề/hostname nào bị ẩn. Có thể bạn chưa đăng ký chủ đề nào? + Xóa logs + Xóa log cũ và bắt đầu lại + Đã xóa logs + Giao thức kết nối + Sử dụng JSON stream qua HTTP để kết nối server. Phương pháp này đã được kiểm chứng nhưng có thể tốn pin hơn. + Sử dụng WebSockets để kết nối server. Đây là phương pháp được khuyến nghị, nhưng có thể cần tùy chỉnh thêm ở proxy. + JSON stream qua HTTP + Báo thức chính xác + ntfy có thể đặt báo thức chính xác. Báo thức chính xác cần thiết để kết nối lại WebSockets khi chạy nền. Nhấn để thu hồi quyền. + ntfy không thể đặt báo thức chính xác. Báo thức chính xác cần thiết để kết nối lại WebSockets khi chạy nền. Nhấn để cấp quyền. + Phiên bản + Đã lưu vào clipboard + Thông báo thời gian thực + Thông báo được gửi ngay lập tức. Cần foreground service và tốn pin hơn. + Thông báo được gửi qua Firebase. Có thể trễ, nhưng tiết kiệm pin hơn. + Cài đặt thông báo tùy chỉnh + Đang sử dụng cài đặt tùy chỉnh cho chủ đề này + Đang sử dụng cài đặt mặc định (âm thanh, bỏ qua Không làm phiền, v.v.) + Tùy chỉnh cài đặt thông báo + Bỏ qua Không làm phiền (DND), âm thanh, etc. + Cảnh báo liên tục + Cảnh báo một lần + Giao diện + Biểu tượng chủ đề + Chọn biểu tượng hiển thị trong thông báo + Biểu tượng chủ đề (Nhấn để xóa) + Hiển thị biểu tượng trong thông báo của topic này + Không thể lưu biểu tượng: %1$s + Tên hiển thị + Đặt tên hiển thị cho subscription này. Để trống để sử dụng tên mặc định (%1$s). + %1$s (mặc định) + Sử dụng cài đặt chung + đang sử dụng cài đặt chung + URL chủ đề + Đã lưu vào clipboard + Thêm tài khoản + Chỉnh sửa tài khoản + Thêm tài khoản cho server này. Tất cả chủ đề của server sẽ dùng tài khoản này. + URL dịch vụ + WebSockets + About + ntfy %1$s (%2$s) + About + Tags: %1$s + OK
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index cff8a815..c811682e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -349,4 +349,7 @@ 精确闹钟 ntfy 可以安排精确闹钟。在后台重连 WebSockets 需要精确闹钟权限。单击撤销该权限。 ntfy 无法安排精确闹钟。在后台重连 WebSockets 需要精确闹钟权限。单击授予该权限。 + 动态颜色 + 使用动态系统颜色 + 使用 ntfy 主题色 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 316205d8..e145671f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -349,4 +349,7 @@ 精準提醒 ntfy 可以排程精準提醒。精準提醒是讓 WebSocket 能在背景重新連線的必要條件。點擊以撤銷此權限。 ntfy 無法排程精準提醒。精準提醒是讓 WebSocket 能在背景重新連線的必要條件。點擊以授予此權限。 + 動態色彩 + 使用系統動態色彩 + 使用 ntfy 主題色彩 diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 470ea305..07dd828d 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -102,7 +102,7 @@ diff --git a/fastlane/metadata/android/en-US/changelog/48.txt b/fastlane/metadata/android/en-US/changelog/50.txt similarity index 100% rename from fastlane/metadata/android/en-US/changelog/48.txt rename to fastlane/metadata/android/en-US/changelog/50.txt diff --git a/fastlane/metadata/android/vi/short_description.txt b/fastlane/metadata/android/vi/short_description.txt index 9bc197ee..6cc6893e 100644 --- a/fastlane/metadata/android/vi/short_description.txt +++ b/fastlane/metadata/android/vi/short_description.txt @@ -1 +1 @@ -Gửi thông báo đến điện thoại của bạn từ bất kỳ script nào bằng yêu cầu PUT/POST +Gửi thông báo đến điện thoại từ bất kỳ script nào bằng yêu cầu PUT/POST diff --git a/fastlane/metadata/android/vi/title.txt b/fastlane/metadata/android/vi/title.txt index 44c71d97..bca8aed0 100644 --- a/fastlane/metadata/android/vi/title.txt +++ b/fastlane/metadata/android/vi/title.txt @@ -1 +1 @@ -ntfy - PUT/POST đến điện thoại của bạn +ntfy - PUT/POST đến điện thoại