From 1758c2c9f16c9d535157b526a53b42a2ecee7ef7 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner <hans@eds.org> Date: Tue, 6 Apr 2021 17:49:53 +0200 Subject: [PATCH 1/7] when no internet and local repos, only update local repos closes #2146 --- .../main/java/org/fdroid/fdroid/UpdateService.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateService.java b/app/src/main/java/org/fdroid/fdroid/UpdateService.java index fa866259f..5443982fb 100644 --- a/app/src/main/java/org/fdroid/fdroid/UpdateService.java +++ b/app/src/main/java/org/fdroid/fdroid/UpdateService.java @@ -404,22 +404,23 @@ public class UpdateService extends JobIntentService { if (isLocalRepoAddress(address)) { Utils.debugLog(TAG, "skipping internet check, this is local: " + address); } else if (netState == ConnectivityMonitorService.FLAG_NET_UNAVAILABLE) { - boolean foundLocalRepo = false; + // keep track of repos that have a local copy in case internet is not available + ArrayList<Repo> localRepos = new ArrayList<>(); for (Repo repo : repos) { if (isLocalRepoAddress(repo.address)) { - foundLocalRepo = true; + localRepos.add(repo); } else { for (String mirrorAddress : repo.getMirrorList()) { if (isLocalRepoAddress(mirrorAddress)) { - foundLocalRepo = true; - //localRepos.add(repo); - //FDroidApp.setLastWorkingMirror(repo.getId(), mirrorAddress); + localRepos.add(repo); break; } } } } - if (!foundLocalRepo) { + if (localRepos.size() > 0) { + repos = localRepos; + } else { Utils.debugLog(TAG, "No internet, cannot update"); if (manualUpdate) { Utils.showToastFromService(this, getString(R.string.warning_no_internet), Toast.LENGTH_SHORT); From f39fc1386a69d66f6cea7dc3d21c26a137481d4e Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner <hans@eds.org> Date: Tue, 6 Apr 2021 20:53:53 +0200 Subject: [PATCH 2/7] synchronized getNewMirrorOnError() for safe writing of numTries `volatile` allows for safe multi-threaded reading, `synchronized` allows for safe multi-threaded writing. --- app/src/main/java/org/fdroid/fdroid/FDroidApp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java index 4c6ab97bd..c35142c1b 100644 --- a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java +++ b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java @@ -267,7 +267,7 @@ public class FDroidApp extends Application implements androidx.work.Configuratio * @see #getTimeout() * @see Repo#getRandomMirror(String) */ - public static String getNewMirrorOnError(@Nullable String urlString, Repo repo2) throws IOException { + public static synchronized String getNewMirrorOnError(@Nullable String urlString, Repo repo2) throws IOException { if (repo2.hasMirrors()) { if (numTries <= 0) { if (timeout == Downloader.DEFAULT_TIMEOUT) { From d9a86d4c16478ddb54953ad521c5b7b7a0cd9fd5 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner <hans@eds.org> Date: Tue, 13 Apr 2021 13:58:14 +0200 Subject: [PATCH 3/7] rename: update_notification_title --> banner_updating_repositories --- app/src/main/java/org/fdroid/fdroid/UpdateService.java | 2 +- .../main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java | 2 +- app/src/main/res/values-af/strings.xml | 2 +- app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-ast/strings.xml | 2 +- app/src/main/res/values-be/strings.xml | 2 +- app/src/main/res/values-bg/strings.xml | 2 +- app/src/main/res/values-bo/strings.xml | 2 +- app/src/main/res/values-ca/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-cy/strings.xml | 2 +- app/src/main/res/values-da/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-en-rGB/strings.xml | 2 +- app/src/main/res/values-eo/strings.xml | 2 +- app/src/main/res/values-es-rAR/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-et/strings.xml | 2 +- app/src/main/res/values-eu/strings.xml | 2 +- app/src/main/res/values-fa/strings.xml | 2 +- app/src/main/res/values-fi/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-gl/strings.xml | 2 +- app/src/main/res/values-he/strings.xml | 2 +- app/src/main/res/values-hi/strings.xml | 2 +- app/src/main/res/values-hr/strings.xml | 2 +- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-hy/strings.xml | 2 +- app/src/main/res/values-id/strings.xml | 2 +- app/src/main/res/values-is/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values-kab/strings.xml | 2 +- app/src/main/res/values-kn/strings.xml | 2 +- app/src/main/res/values-ko/strings.xml | 2 +- app/src/main/res/values-lt/strings.xml | 2 +- app/src/main/res/values-mk/strings.xml | 2 +- app/src/main/res/values-ml/strings.xml | 2 +- app/src/main/res/values-mn/strings.xml | 2 +- app/src/main/res/values-mr/strings.xml | 2 +- app/src/main/res/values-my/strings.xml | 2 +- app/src/main/res/values-nb/strings.xml | 2 +- app/src/main/res/values-nl-rBE/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 2 +- app/src/main/res/values-nn/strings.xml | 2 +- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt-rPT/strings.xml | 2 +- app/src/main/res/values-pt/strings.xml | 2 +- app/src/main/res/values-ro/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-sc/strings.xml | 2 +- app/src/main/res/values-sk/strings.xml | 2 +- app/src/main/res/values-sl/strings.xml | 2 +- app/src/main/res/values-sn/strings.xml | 2 +- app/src/main/res/values-sq/strings.xml | 2 +- app/src/main/res/values-sr/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-te/strings.xml | 2 +- app/src/main/res/values-th/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-uk/strings.xml | 2 +- app/src/main/res/values-vi/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rHK/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 68 files changed, 68 insertions(+), 68 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateService.java b/app/src/main/java/org/fdroid/fdroid/UpdateService.java index 5443982fb..0d06c3e0d 100644 --- a/app/src/main/java/org/fdroid/fdroid/UpdateService.java +++ b/app/src/main/java/org/fdroid/fdroid/UpdateService.java @@ -264,7 +264,7 @@ public class UpdateService extends JobIntentService { .setSmallIcon(R.drawable.ic_refresh) .setOngoing(true) .setCategory(NotificationCompat.CATEGORY_SERVICE) - .setContentTitle(getString(R.string.update_notification_title)); + .setContentTitle(getString(R.string.banner_updating_repositories)); appUpdateStatusManager = AppUpdateStatusManager.getInstance(this); } diff --git a/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java b/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java index eacf581b7..a93d89a79 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java +++ b/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java @@ -33,7 +33,7 @@ public class BannerUpdatingRepos extends androidx.appcompat.widget.AppCompatText setPadding(padding, padding, padding, padding); setBackgroundColor(0xFF4A4A4A); setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); - setText(R.string.update_notification_title); + setText(R.string.banner_updating_repositories); setTextColor(0xFFFFFFFF); } diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index fccf35bb4..e36618409 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -115,7 +115,7 @@ <string name="proxy_host_summary">Jou proxy se hostnaam (bv. 127.0.0.1)</string> <string name="proxy_port">Proxypoort</string> <string name="proxy_port_summary">Jou proxy se poortnommer (bv. 8118)</string> - <string name="update_notification_title">Opdatering van argiewe</string> + <string name="banner_updating_repositories">Opdatering van argiewe</string> <string name="status_processing_xml_percent">Besig met %2$s / %3$s (%4$d%%) van %1$s</string> <string name="status_connecting_to_repo">Koppel tans aan \n%1$s</string> diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 6f39f884a..3793a3235 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -135,7 +135,7 @@ <string name="proxy_port_summary">رقم منفذ البروكسي الخاص بك (مثلا 8118)</string> <string name="status_download">تحميل\n%2$s / %3$s (%4$d%%) من\n%1$s</string> <string name="status_download_unknown_size">تحميل\n%2$s من\n%1$s</string> - <string name="update_notification_title">تحديث المستودعات</string> + <string name="banner_updating_repositories">تحديث المستودعات</string> <string name="status_processing_xml_percent">تجهيز %2$s / %3$s (%4$d%%) مِن %1$s</string> <string name="status_connecting_to_repo">جارٍ الاتصال ب \n %1$s</string> diff --git a/app/src/main/res/values-ast/strings.xml b/app/src/main/res/values-ast/strings.xml index f036899f9..8e880240e 100644 --- a/app/src/main/res/values-ast/strings.xml +++ b/app/src/main/res/values-ast/strings.xml @@ -170,7 +170,7 @@ <string name="bad_fingerprint">Buelga incorreuta</string> <string name="invalid_url">Esto nun ye una URL válida.</string> <string name="menu_changelog">Rexistru de cambeos</string> - <string name="update_notification_title">Anovando depósitos</string> + <string name="banner_updating_repositories">Anovando depósitos</string> <string name="pref_language">Llingua</string> <string name="pref_language_default">La del sistema</string> <string name="wifi">Wi-Fi</string> diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 444380cf5..25bfcb7b1 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -128,7 +128,7 @@ <string name="status_download_unknown_size">Спампоўванне \n%2$s з \n%1$s</string> - <string name="update_notification_title">Абнаўленне рэпазіторыяў</string> + <string name="banner_updating_repositories">Абнаўленне рэпазіторыяў</string> <string name="status_processing_xml_percent">Апрацоўка %2$s / %3$s (%4$d%%) з %1$s</string> <string name="status_connecting_to_repo">Злучэнне з \n%1$s</string> diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 99d2af0e2..d48547536 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -156,7 +156,7 @@ <string name="interval_2w">През 2 седмици</string> <string name="downloading">Сваляне…</string> <string name="about_source">Изходен код</string> - <string name="update_notification_title">Обновяване на хранилищата</string> + <string name="banner_updating_repositories">Обновяване на хранилищата</string> <string name="install_error_unknown">Инсталирането се провали поради неизвестна грешка</string> <string name="uninstall_error_unknown">Деинсталирането се провали поради неизвестна грешка</string> <string name="swap_choose_apps">Изберете приложения</string> diff --git a/app/src/main/res/values-bo/strings.xml b/app/src/main/res/values-bo/strings.xml index 35953459e..e05ea4e5c 100644 --- a/app/src/main/res/values-bo/strings.xml +++ b/app/src/main/res/values-bo/strings.xml @@ -183,7 +183,7 @@ \n%2$s ནས་ \n%1$s</string> <string name="download_404">རེ་སྐུལ་ཞུས་པའི་ཡིག་ཆ་དེ་རྙེད་མ་སོང་།</string> - <string name="update_notification_title">མཛོད་ཁང་རྣམས་གསར་བསྒྱུར་བྱེད་བཞིན་པ།</string> + <string name="banner_updating_repositories">མཛོད་ཁང་རྣམས་གསར་བསྒྱུར་བྱེད་བཞིན་པ།</string> <string name="status_connecting_to_repo">%1$s འདིར་མཐུད་བཞིན་པ།</string> <string name="repos_unchanged">མཛོད་ཁང་ཚང་མ་དུས་ཐོག་ཏུ་ཡོད།</string> <string name="all_other_repos_fine">རེ་པོ་གཞན་དག་ཚང་མར་སྐྱོན་ཤོར་མིན་འདུག</string> diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 04406c046..3740aa2cc 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -154,7 +154,7 @@ <string name="menu_bitcoin">Bitcoin</string> <string name="menu_litecoin">Litecoin</string> <string name="menu_flattr">Flattr</string> - <string name="update_notification_title">Actualitzant els dipòsits</string> + <string name="banner_updating_repositories">Actualitzant els dipòsits</string> <string name="more">Més</string> <string name="less">Menys</string> <string name="permissions">Permisos</string> diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 558b40d32..c2c348434 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -145,7 +145,7 @@ <string name="menu_litecoin">Litecoin</string> <string name="menu_flattr">Flattr</string> <string name="status_download_unknown_size">Stahování\n%2$s z\n%1$s</string> - <string name="update_notification_title">Aktualizace repozitářů</string> + <string name="banner_updating_repositories">Aktualizace repozitářů</string> <string name="status_processing_xml_percent">Zpracovávání %2$s / %3$s (%4$d%%) z %1$s</string> <string name="all_other_repos_fine">Žádné jiné repozitáře nenahlásily chyby.</string> <string name="permissions">Oprávnění</string> diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 5b3061c68..c3828723d 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -237,7 +237,7 @@ \n%2$s o \n%1$s</string> <string name="download_404">Ni chanfuwyd y ffeil honno.</string> - <string name="update_notification_title">Yn diweddaru ystorfeydd</string> + <string name="banner_updating_repositories">Yn diweddaru ystorfeydd</string> <string name="status_processing_xml_percent">Yn prosesu %2$s / %3$s (%4$d%%) o %1$s</string> <string name="status_connecting_to_repo">Yn cysylltu â \n%1$s</string> diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 19e984cdb..8dd1acd0a 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -108,7 +108,7 @@ <string name="proxy_port_summary">Proxy portnummer (e.g. 8118)</string> <string name="status_download">Henter\n%2$s / %3$s (%4$d%%) fra\n%1$s</string> <string name="status_download_unknown_size">Henter\n%2$s fra\n%1$s</string> - <string name="update_notification_title">Opdaterer depoter</string> + <string name="banner_updating_repositories">Opdaterer depoter</string> <string name="status_processing_xml_percent">Behandler %2$s / %3$s (%4$d%%) fra %1$s</string> <string name="status_connecting_to_repo">Forbinder til\n%1$s</string> <string name="status_inserting_apps">Gemmer app-detaljer</string> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index cac67e025..62953be0b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -146,7 +146,7 @@ <string name="back">Zurück</string> <string name="bad_fingerprint">Falscher Fingerabdruck</string> <string name="invalid_url">Das ist keine gültige Adresse.</string> - <string name="update_notification_title">Paketquellenaktualisierung</string> + <string name="banner_updating_repositories">Paketquellenaktualisierung</string> <string name="pref_language">Sprache</string> <string name="pref_language_default">Systemstandard</string> <string name="wifi">WLAN</string> diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 544359d0c..ab9faed63 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -134,7 +134,7 @@ <string name="status_download_unknown_size">Λήψη \n%2$s από \n%1$s</string> - <string name="update_notification_title">Ενημέρωση αποθετηρίων</string> + <string name="banner_updating_repositories">Ενημέρωση αποθετηρίων</string> <string name="status_processing_xml_percent">Επεξεργασία %2$s / %3$s (%4$d%%) από %1$s</string> <string name="repos_unchanged">Όλα τα αποθετήρια είναι ενημερωμένα</string> <string name="all_other_repos_fine">Τα υπόλοιπα αποθετήρια δεν δημιούργησαν σφάλματα.</string> diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 966a8886a..fd22192ae 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -206,7 +206,7 @@ <string name="status_inserting_x_apps">Saving app details (%1$d/%2$d) from %3$s</string> <string name="status_connecting_to_repo">Connecting to \n%1$s</string> - <string name="update_notification_title">Updating repositories</string> + <string name="banner_updating_repositories">Updating repositories</string> <string name="download_404">The requested file was not found.</string> <string name="status_download_unknown_size">Downloading \n%2$s from diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index c90d4520d..6801f6c30 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -141,7 +141,7 @@ <string name="status_download_unknown_size">Elŝutado \n%2$s el \n%1$s</string> - <string name="update_notification_title">Ĝisdatigado de deponejoj</string> + <string name="banner_updating_repositories">Ĝisdatigado de deponejoj</string> <string name="status_processing_xml_percent">Prilaborado de %2$s / %3$s (%4$d%%) el %1$s</string> <string name="status_connecting_to_repo">Konektado al \n%1$s</string> diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml index 20abf7c55..26826c4b6 100644 --- a/app/src/main/res/values-es-rAR/strings.xml +++ b/app/src/main/res/values-es-rAR/strings.xml @@ -287,7 +287,7 @@ \n%2$s desde \n%1$s</string> <string name="download_404">El archivo pedido no fue encontrado.</string> - <string name="update_notification_title">Actualizando repositorios</string> + <string name="banner_updating_repositories">Actualizando repositorios</string> <string name="status_processing_xml_percent">Procesando %2$s / %3$s (%4$d%%) de %1$s</string> <string name="status_connecting_to_repo">Conectando a \n%1$s</string> diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 8d7665333..acf7c25d9 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -147,7 +147,7 @@ <string name="bad_fingerprint">Huella digital incorrecta</string> <string name="invalid_url">No es una URL válida.</string> <string name="menu_changelog">Historial de cambios</string> - <string name="update_notification_title">Actualizando repositorios</string> + <string name="banner_updating_repositories">Actualizando repositorios</string> <string name="status_processing_xml_percent">Procesando %2$s / %3$s (%4$d%%) desde %1$s</string> <string name="pref_language">Idioma</string> <string name="pref_language_default">Predeterminado del sistema</string> diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index fe89d6bbc..9a7b50505 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -70,7 +70,7 @@ <string name="adding_apks_format">%s lisatakse hoidlasse…</string> <string name="linking_apks">APK faile lingitakse hoidlasse…</string> <string name="copying_icons">Rakenduste ikoone kopeeritakse hoidlasse…</string> - <string name="update_notification_title">Hoidlaid värskendatakse</string> + <string name="banner_updating_repositories">Hoidlaid värskendatakse</string> <string name="repos_unchanged">Kõik hoidlad on kaasajastaud</string> <string name="all_other_repos_fine">Kõik ülejäänud hoidlad vigu ei põhjustanud.</string> <string name="repo_details">Hoidla</string> diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 6de294462..173d412c2 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -121,7 +121,7 @@ <string name="copying_icons">Aplikazioen ikonoak biltegira kopiatzen…</string> <string name="proxy_host">Proxy ostalaria</string> <string name="enable_proxy_summary">Konfiguratu HTTP Proxya sare eskari guztientzat</string> - <string name="update_notification_title">Biltegiak eguneratzen</string> + <string name="banner_updating_repositories">Biltegiak eguneratzen</string> <string name="repos_unchanged">Biltegi guztiak egunean daude</string> <string name="all_other_repos_fine">Beste biltegiek ez dute errorerik sortu.</string> <string name="global_error_updating_repos">Errorea eguneratzean: %s</string> diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 3983247c0..4a23ad00f 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -118,7 +118,7 @@ <string name="proxy_port">درگاه پروکسی</string> <string name="proxy_port_summary">شمارهٔ درگاه پروکسی (مثلاً 8118)</string> <string name="status_download_unknown_size">در حال بارگیری\n%2$s از\n%1$s</string> - <string name="update_notification_title">در حال بهروز رسانی مخزنها</string> + <string name="banner_updating_repositories">در حال بهروز رسانی مخزنها</string> <string name="status_processing_xml_percent">در حال پردازش %2$s / %3$s (%4$d%%) از %1$s</string> <string name="status_inserting_apps">در حال ذخیرهٔ جزئیات برنامه</string> <string name="repos_unchanged">تمام مخزنها بهروز هستند</string> diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index cff787e32..594fa7a92 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -163,7 +163,7 @@ <string name="show_incompat_versions_on">Näytä sovellusversiot, jotka eivät ole yhteensopivia laitteesi kanssa</string> <string name="useTor">Käytä Tor-verkkoa</string> <string name="useTorSummary">Pakota latausliikenne Tor-verkon kautta yksityisyyden lisäämiseksi. Vaatii Orbotin</string> - <string name="update_notification_title">Päivitetään sovelluslähteitä</string> + <string name="banner_updating_repositories">Päivitetään sovelluslähteitä</string> <string name="status_inserting_apps">Tallennetaan sovelluksen tietoja</string> <string name="no_permissions">Ei käyttöoikeuksia</string> <string name="permissions">Käyttöluvat</string> diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2d589870d..e8f9ad5a6 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -148,7 +148,7 @@ <string name="bad_fingerprint">Mauvaise empreinte</string> <string name="invalid_url">Ceci n\'est pas une URL valide.</string> <string name="menu_changelog">Journal des changements</string> - <string name="update_notification_title">Mise à jour des dépôts</string> + <string name="banner_updating_repositories">Mise à jour des dépôts</string> <string name="pref_language">Langue</string> <string name="pref_language_default">Langue du système</string> <string name="wifi">Wi-Fi</string> diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 6821a7842..ec99256b9 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -104,7 +104,7 @@ <string name="status_download_unknown_size">Estase a baixar \n%2$s dende \n%1$s</string> - <string name="update_notification_title">Estanse a actualizar os repositorios</string> + <string name="banner_updating_repositories">Estanse a actualizar os repositorios</string> <string name="status_processing_xml_percent">Estase a procesar %2$s / %3$s (%4$d%%) dende %1$s</string> <string name="repos_unchanged">Tódolos repositorios están actualizados</string> <string name="all_other_repos_fine">Os demais repositorios non xeraron erros.</string> diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index cf3acae1a..0e671a196 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -92,7 +92,7 @@ <string name="status_download">מתבצעת הורדה \n%2$s / %3$s (%4$d%%) מתוך \n%1$s</string> - <string name="update_notification_title">המאגרים מתעדכנים</string> + <string name="banner_updating_repositories">המאגרים מתעדכנים</string> <string name="status_processing_xml_percent">%2$s בהליכי עיבוד / %3$s (%4$d%%) מתוך %1$s</string> <string name="status_connecting_to_repo">מתבצעת התחברות אל \n%1$s</string> diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index b6b9be66e..c34084365 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -239,7 +239,7 @@ <string name="status_download_unknown_size">डाउनलोड कर रहा है \n%2$s से \n%1$s</string> - <string name="update_notification_title">रिपोजिटरी को अपडेट करना</string> + <string name="banner_updating_repositories">रिपोजिटरी को अपडेट करना</string> <string name="no_permissions">कोई अनुमति नहीं</string> <string name="permissions">अनुमतियां</string> <string name="no_handler_app">आपके पास कोई भी उपलब्ध ऐप नहीं है जो %s को संभाल सके।</string> diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 375fbec8e..8a80718a5 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -118,7 +118,7 @@ <string name="proxy_port_summary">Broj priključka Vašeg proxyja (npr. 8118)</string> <string name="status_download">Preuzimam\n%2$s / %3$s (%4$d%%) sa\n%1$s</string> <string name="status_download_unknown_size">Preuzimam\n%2$s sa\n%1$s</string> - <string name="update_notification_title">Ažuriram repozitorije</string> + <string name="banner_updating_repositories">Ažuriram repozitorije</string> <string name="status_processing_xml_percent">Obrađujem %2$s / %3$s (%4$d%%) od %1$s</string> <string name="status_connecting_to_repo">Spajam se na\n%1$s</string> <string name="status_inserting_apps">Spremanje detalja aplikacije</string> diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 3aa3d986e..d360e5b73 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -116,7 +116,7 @@ <string name="unsigned">Aláíratlan</string> <string name="unverified">Megerősítetlen</string> <string name="repo_details">Tároló</string> - <string name="update_notification_title">Tárolók frissítése</string> + <string name="banner_updating_repositories">Tárolók frissítése</string> <string name="repos_unchanged">Minden tároló naprakész</string> <string name="repo_url">Cím</string> <string name="repo_num_apps">Alkalmazások száma</string> diff --git a/app/src/main/res/values-hy/strings.xml b/app/src/main/res/values-hy/strings.xml index eb6ccf799..548a808ef 100644 --- a/app/src/main/res/values-hy/strings.xml +++ b/app/src/main/res/values-hy/strings.xml @@ -188,7 +188,7 @@ <string name="menu_upgrade">Թարմացնել</string> <string name="main_menu__latest_apps">Ամենանորը</string> <string name="adding_apks_format">Ավելացնում եմ %s շտեմարանին…</string> - <string name="update_notification_title">Թարմացնում եմ շտեմարանները</string> + <string name="banner_updating_repositories">Թարմացնում եմ շտեմարանները</string> <string name="repos_unchanged">Բոլոր շտեմարանները արդի են</string> <string name="repo_details">Շտեմարան</string> <string name="repo_not_yet_updated">Այս շտեմարանը դեռևս չի օգտագործվել։ diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 139025863..3ef4c9f67 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -102,7 +102,7 @@ <string name="status_download_unknown_size">Mengunduh \n%2$s dari \n%1$s</string> - <string name="update_notification_title">Memperbarui repositori</string> + <string name="banner_updating_repositories">Memperbarui repositori</string> <string name="status_processing_xml_percent">Memproses %2$s / %3$s (%4$d%%) dari %1$s</string> <string name="status_connecting_to_repo">Menghubungkan ke \n%1$s</string> diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index 47a6e1025..9ead97937 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -99,7 +99,7 @@ <string name="status_download_unknown_size">Sæki \n%2$s frá \n%1$s</string> - <string name="update_notification_title">Uppfæri hugbúnaðarsöfn</string> + <string name="banner_updating_repositories">Uppfæri hugbúnaðarsöfn</string> <string name="status_processing_xml_percent">Meðhöndla %2$s / %3$s (%4$d%%) frá %1$s</string> <string name="status_connecting_to_repo">Tengist við \n%1$s</string> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a90d761e3..c481f41b4 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -208,7 +208,7 @@ <string name="menu_changelog">Cronologia</string> <string name="menu_litecoin">Litecoin</string> <string name="menu_flattr">Flattr</string> - <string name="update_notification_title">Aggiornamento dei repository</string> + <string name="banner_updating_repositories">Aggiornamento dei repository</string> <string name="status_processing_xml_percent">Elaborazione %2$s/%3$s (%4$d%%) di %1$s</string> <string name="status_inserting_apps">Salvataggio dettagli applicazione</string> <string name="repo_details">Repository</string> diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 61ecef13f..682f3af8f 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -141,7 +141,7 @@ <string name="bad_fingerprint">フィンガープリントが間違っています</string> <string name="invalid_url">有効なURLではありません。</string> <string name="menu_changelog">変更履歴</string> - <string name="update_notification_title">リポジトリを更新中</string> + <string name="banner_updating_repositories">リポジトリを更新中</string> <string name="status_processing_xml_percent">%1$sから%2$s/%3$s(%4$d%%)処理中</string> <string name="pref_language">言語</string> <string name="pref_language_default">システムの既定</string> diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index 4d871df8c..c69791996 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -210,7 +210,7 @@ \n%2$s si \n%1$s</string> <string name="download_404">Afaylu i tettnadiḍ ulac-it.</string> - <string name="update_notification_title">Aleqqem n ikufiyen</string> + <string name="banner_updating_repositories">Aleqqem n ikufiyen</string> <string name="status_connecting_to_repo">Tuqna γer \n%1$s</string> <string name="global_error_updating_repos">Tuccḍa di uleqqem: %s</string> diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml index 1ae885d96..2603db4d1 100644 --- a/app/src/main/res/values-kn/strings.xml +++ b/app/src/main/res/values-kn/strings.xml @@ -459,7 +459,7 @@ <string name="status_inserting_x_apps">ಅಪ್ಲಿಕೇಶನ್ ವಿವರಗಳನ್ನು (%1$d /%2$d) %3$s ನಿಂದ ಉಳಿಸಲಾಗುತ್ತಿದೆ</string> <string name="status_connecting_to_repo">ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ \n%1$s</string> - <string name="update_notification_title">ರೆಪೊಸಿಟರಿಗಳನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ</string> + <string name="banner_updating_repositories">ರೆಪೊಸಿಟರಿಗಳನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ</string> <string name="download_404">ವಿನಂತಿಸಿದ ಫೈಲ್ ಕಂಡುಬಂದಿಲ್ಲ.</string> <string name="status_download_unknown_size">ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ \n%2$s ನಿಂದ diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index c7191cf51..c9e50a29a 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -161,7 +161,7 @@ <string name="status_download_unknown_size">%1$s에서 \n%2$s \n다운로드 중</string> - <string name="update_notification_title">저장소 업데이트 중</string> + <string name="banner_updating_repositories">저장소 업데이트 중</string> <string name="status_processing_xml_percent">%1$s에서 %2$s / %3$s (%4$d%%) 처리 중</string> <string name="status_inserting_apps">앱 자세한 사항 저장 중</string> <string name="permissions">권한</string> diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 084a2a953..8deea5e1f 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -157,7 +157,7 @@ <string name="hide_on_long_search_press_title">Paslėpti su paieškos mygtuku</string> <string name="hide_on_long_search_press_summary">Ilgai palaikus paieškos mygtuka programa bus paslėpta</string> <string name="download_404">Užklaustas failas nebuvo rastas.</string> - <string name="update_notification_title">Atnaujinamos saugyklos</string> + <string name="banner_updating_repositories">Atnaujinamos saugyklos</string> <string name="status_inserting_x_apps">Saugojama programos informacija (%1$d/%2$d) nuo %3$s</string> <string name="all_other_repos_fine">Visos kitos saugyklos nesukūrė klaidų.</string> <string name="no_permissions">Nėra leidimų</string> diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 8b95f2ddf..860cecf49 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -46,7 +46,7 @@ <string name="status_inserting_x_apps">Зачувување детали за апликацијата (%1$d/%2$d) од %3$s</string> <string name="status_connecting_to_repo">Поврзување со \n%1$s</string> - <string name="update_notification_title">Ажурирање на складиштата</string> + <string name="banner_updating_repositories">Ажурирање на складиштата</string> <string name="download_404">Бараната датотека не е пронајдена.</string> <string name="hide_on_long_search_press_summary">Долго притискање на копчето за пребарување ќе ја скрие апликацијата</string> <string name="hide_on_long_search_press_title">Сокриј со копчето за пребарување</string> diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 75ad0bd9d..24d571823 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -195,7 +195,7 @@ \n %2$s നെ \n %1$s ല് നിന്ന്</string> <string name="download_404">അഭ്യർത്ഥിച്ച ഫയൽ കണ്ടെത്തിയില്ല.</string> - <string name="update_notification_title">ആപ്പ് ശേഖരണം പുതുക്കുന്നു</string> + <string name="banner_updating_repositories">ആപ്പ് ശേഖരണം പുതുക്കുന്നു</string> <string name="status_connecting_to_repo">ബന്ധിപ്പിക്കുന്നു \n %1$s ലേക്ക്</string> <string name="repos_unchanged">എല്ലാ സംഭരണികളും കാലികമാണ്</string> diff --git a/app/src/main/res/values-mn/strings.xml b/app/src/main/res/values-mn/strings.xml index 4d78c27c9..71660ab1e 100644 --- a/app/src/main/res/values-mn/strings.xml +++ b/app/src/main/res/values-mn/strings.xml @@ -220,7 +220,7 @@ <string name="status_inserting_x_apps">Аппын дэлгэрэнгүйг (%1$d /%2$d) %3$s-с хадгалах</string> <string name="status_connecting_to_repo">Холбогдож байна \n%1$s</string> - <string name="update_notification_title">Агуулахуудыг шинэчилж байна</string> + <string name="banner_updating_repositories">Агуулахуудыг шинэчилж байна</string> <string name="download_404">Хүссэн файл олдсонгүй.</string> <string name="status_download_unknown_size">Татаж байна \n%2$s-аас diff --git a/app/src/main/res/values-mr/strings.xml b/app/src/main/res/values-mr/strings.xml index 25036a86a..b5c116762 100644 --- a/app/src/main/res/values-mr/strings.xml +++ b/app/src/main/res/values-mr/strings.xml @@ -305,7 +305,7 @@ <string name="status_inserting_x_apps">%3$s मधून \n (%1$d/%2$d) अँप विवरण नोंद करून घेतले जात आहे</string> <string name="status_connecting_to_repo">%1$s शी जोडले जात</string> - <string name="update_notification_title">भांडाराला अद्ययावत केले जात</string> + <string name="banner_updating_repositories">भांडाराला अद्ययावत केले जात</string> <string name="download_404">अपेक्षित फाईल मिळाली नाही.</string> <string name="status_download_unknown_size">%1$s मधून %2$s डाऊनलोड केले जात आहे</string> <string name="status_download">%1$s मधून %2$s / %3$s (%4$d%%) diff --git a/app/src/main/res/values-my/strings.xml b/app/src/main/res/values-my/strings.xml index 383d64701..f4deb1957 100644 --- a/app/src/main/res/values-my/strings.xml +++ b/app/src/main/res/values-my/strings.xml @@ -112,7 +112,7 @@ %2$s ကို ေဒါင္းလုတ္ဆြဲေနပါသည္ </string> - <string name="update_notification_title">repositories ကိုအသစ္မြမ္းမံေနသည္</string> + <string name="banner_updating_repositories">repositories ကိုအသစ္မြမ္းမံေနသည္</string> <string name="status_processing_xml_percent">%1$s မွ %2$s / %3$s (%4$d%%) ကိုရယူေနသည္</string> <string name="status_connecting_to_repo">%1$s သို႔ခ်ိတ္ဆက္ေနသည္ diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index fff436562..b800697ba 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -152,7 +152,7 @@ <string name="menu_bitcoin">Bitcoin</string> <string name="menu_litecoin">Litecoin</string> <string name="menu_flattr">Flattr</string> - <string name="update_notification_title">Oppdaterer pakkebrønner</string> + <string name="banner_updating_repositories">Oppdaterer pakkebrønner</string> <string name="status_processing_xml_percent">Behandler %2$s / %3$s (%4$d%%) fra %1$s</string> <string name="repo_details">Pakkebrønn</string> <string name="repo_url">Adresse</string> diff --git a/app/src/main/res/values-nl-rBE/strings.xml b/app/src/main/res/values-nl-rBE/strings.xml index fe8703b62..5f7d91577 100644 --- a/app/src/main/res/values-nl-rBE/strings.xml +++ b/app/src/main/res/values-nl-rBE/strings.xml @@ -245,7 +245,7 @@ \nvan %1$s gedownload</string> <string name="status_download_unknown_size">%2$s wordt gedownload van %1$s</string> <string name="download_404">Het gevraagde bestand is niet gevonden.</string> - <string name="update_notification_title">Applicatiebronnen worden bijgewerkt</string> + <string name="banner_updating_repositories">Applicatiebronnen worden bijgewerkt</string> <string name="status_connecting_to_repo">Verbinding met \n%1$s aan het maken</string> <string name="status_inserting_x_apps">Appgegevens van %3$s worden opgeslagen (%1$d/%2$d)</string> diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 6ed200184..b82e34d56 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -142,7 +142,7 @@ <string name="bad_fingerprint">Slechte vingerafdruk</string> <string name="invalid_url">Dit is geen geldige URL.</string> <string name="menu_changelog">Lijst van veranderingen</string> - <string name="update_notification_title">Applicatiebronnen worden bijgewerkt</string> + <string name="banner_updating_repositories">Applicatiebronnen worden bijgewerkt</string> <string name="status_processing_xml_percent">%2$s / %3$s (%4$d%%) van %1$s worden verwerkt</string> <string name="pref_language">Taal</string> <string name="pref_language_default">Systeemstandaard</string> diff --git a/app/src/main/res/values-nn/strings.xml b/app/src/main/res/values-nn/strings.xml index e2c13d49c..f05638281 100644 --- a/app/src/main/res/values-nn/strings.xml +++ b/app/src/main/res/values-nn/strings.xml @@ -282,7 +282,7 @@ \n%2$s frå \n%1$s</string> <string name="download_404">Fann ikkje førespurd fil.</string> - <string name="update_notification_title">Oppdaterer pakkebrønnar</string> + <string name="banner_updating_repositories">Oppdaterer pakkebrønnar</string> <string name="status_connecting_to_repo">Koplar til \n%1$s</string> <string name="status_inserting_x_apps">Lagrar appdetaljar (%1$d/%2$d) frå %3$s</string> diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 869490c89..87b6683fc 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -132,7 +132,7 @@ <string name="antitracklist">Ta aplikacja śledzi i raportuje Twoją aktywność</string> <string name="show_incompat_versions_on">Pokazuj aplikacje, które są niekompatybilne z tym urządzeniem</string> <string name="status_download">Pobieranie\n%2$s / %3$s (%4$d%%) z\n%1$s</string> - <string name="update_notification_title">Aktualizowanie repozytoriów</string> + <string name="banner_updating_repositories">Aktualizowanie repozytoriów</string> <string name="status_processing_xml_percent">Przetwarzanie %2$s / %3$s (%4$d%%) z %1$s</string> <string name="no_permissions">Brak uprawnień</string> <string name="unsigned">Brak podpisu</string> diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 75f0889be..432e6569e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -152,7 +152,7 @@ <string name="bad_fingerprint">Falha na fingerprint</string> <string name="invalid_url">Esta não é uma URL válida.</string> <string name="menu_changelog">Changelog</string> - <string name="update_notification_title">Atualizando repositórios</string> + <string name="banner_updating_repositories">Atualizando repositórios</string> <string name="status_processing_xml_percent">Processando %2$s / %3$s (%4$d%%) de %1$s</string> <string name="pref_language">Idioma</string> <string name="pref_language_default">Padrão do sistema</string> diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index f00719674..22d572653 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -104,7 +104,7 @@ <string name="status_download_unknown_size">A descarregar \n%2$s de \n%1$s</string> - <string name="update_notification_title">A atualizar repositórios</string> + <string name="banner_updating_repositories">A atualizar repositórios</string> <string name="status_processing_xml_percent">A processar %2$s/%3$s (%4$d%%) de %1$s</string> <string name="status_connecting_to_repo">Estabelecendo ligação \na %1$s</string> diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 36d5bad23..3898d56d2 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -282,7 +282,7 @@ \n%2$s de \n%1$s</string> <string name="download_404">O ficheiro solicitado não foi encontrado.</string> - <string name="update_notification_title">A atualizar repositórios</string> + <string name="banner_updating_repositories">A atualizar repositórios</string> <string name="status_connecting_to_repo">Estabelecendo ligação \na %1$s</string> <string name="status_inserting_x_apps">A guardar detalhes da aplicação (%1$d/%2$d) de %3$s</string> diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 10750af47..4e99e503c 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -148,7 +148,7 @@ <string name="status_download">Descărcare \n%2$s / %3$s (%4$d%%) din \n%1$s</string> - <string name="update_notification_title">Actualizare depozit</string> + <string name="banner_updating_repositories">Actualizare depozit</string> <string name="status_connecting_to_repo">Conectare la\n%1$s</string> <string name="global_error_updating_repos">Eroare la actualizare: %s</string> <string name="permissions">Permisiuni</string> diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 85afa8a29..42a5c0d9c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -151,7 +151,7 @@ <string name="category_Sports_Health">Спорт и здоровье</string> <string name="category_Time">Время</string> <string name="app_name">F-Droid</string> - <string name="update_notification_title">Обновление репозиториев</string> + <string name="banner_updating_repositories">Обновление репозиториев</string> <string name="status_processing_xml_percent">Обработка %2$s / %3$s (%4$d%%) из %1$s</string> <string name="install_error_unknown">Не удалось установить из-за неизвестной ошибки</string> <string name="uninstall_error_unknown">Не удалось удалить из-за неизвестной ошибки</string> diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index 006c24ff7..fb7fa7a6a 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -153,7 +153,7 @@ <string name="back">In dae segus</string> <string name="invalid_url">Custu no est unu ligàmene vàlidu.</string> <string name="menu_changelog">Lista modìficas</string> - <string name="update_notification_title">Agiornende sos depòsitos</string> + <string name="banner_updating_repositories">Agiornende sos depòsitos</string> <string name="status_processing_xml_percent">Protzessende %2$s / %3$s (%4$d%%) dae %1$s</string> <string name="pref_language">Limba</string> <string name="pref_language_default">Predefinida de sistema</string> diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index ee5e8b480..b420f9590 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -159,7 +159,7 @@ <string name="bad_fingerprint">Zlý otlačok</string> <string name="invalid_url">Nie je validná URL.</string> <string name="menu_changelog">Changelog</string> - <string name="update_notification_title">Aktualizujem repozitáre</string> + <string name="banner_updating_repositories">Aktualizujem repozitáre</string> <string name="status_processing_xml_percent">Spracúvam %2$s / %3$s (%4$d%%) z %1$s</string> <string name="pref_language">Jazyk</string> <string name="pref_language_default">Prednastavené systémom</string> diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 72c457cfc..0b012cbc1 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -229,7 +229,7 @@ <string name="hide_on_long_search_press_title">Skrij iskalni gumb</string> <string name="hide_on_long_search_press_summary">Dolg pritisk na gumb iskanje bo skril aplikacije</string> <string name="download_404">Zahtevana datoteka ni bila najdena.</string> - <string name="update_notification_title">Posodabljanje skladišča aplikacij</string> + <string name="banner_updating_repositories">Posodabljanje skladišča aplikacij</string> <string name="repos_unchanged">Vsa skladišča aplikacij so posodobljena</string> <string name="global_error_updating_repos">Med posodobitvijo aplikacije %s je prišlo do napake</string> <string name="no_permissions">Ni dovoljenj</string> diff --git a/app/src/main/res/values-sn/strings.xml b/app/src/main/res/values-sn/strings.xml index 2b8cadba7..74e314381 100644 --- a/app/src/main/res/values-sn/strings.xml +++ b/app/src/main/res/values-sn/strings.xml @@ -153,7 +153,7 @@ %2$s kubva %1$s </string> - <string name="update_notification_title">Kunatsa pfimbi</string> + <string name="banner_updating_repositories">Kunatsa pfimbi</string> <string name="status_processing_xml_percent">Kushisha %2$s / %3$s (%4$d%%) kubva %1$s</string> <string name="status_connecting_to_repo">Kuhakira ku %1$s diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index e79a52e19..7f0dbac97 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -237,7 +237,7 @@ <string name="hide_on_long_search_press_title">Fshihe me butonin e kërkimit</string> <string name="hide_on_long_search_press_summary">Prekja e zgjatur e butonit të kërkimit do të fshehë aplikacionin</string> <string name="download_404">Kartela e domosdoshme s’u gjet.</string> - <string name="update_notification_title">Përditësim deposh</string> + <string name="banner_updating_repositories">Përditësim deposh</string> <string name="repo_num_apps">Numër aplikacionesh</string> <string name="repo_official_mirrors">Pasqyra zyrtare</string> <string name="repo_user_mirrors">Pasqyra përdoruesi</string> diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index fb76869c4..592bab7ba 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -143,7 +143,7 @@ <string name="bad_fingerprint">Лош отисак</string> <string name="invalid_url">Ово није исправна адреса.</string> <string name="menu_changelog">Дневник измена</string> - <string name="update_notification_title">Освежавам ризнице</string> + <string name="banner_updating_repositories">Освежавам ризнице</string> <string name="status_processing_xml_percent">Обрађујем %2$s / %3$s (%4$d%%) од %1$s</string> <string name="pref_language">Језик</string> <string name="pref_language_default">Системски подразумеван</string> diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 8b977b7ce..9b2baa01c 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -154,7 +154,7 @@ <string name="status_download_unknown_size">Hämtar \n%2$s från \n%1$s</string> - <string name="update_notification_title">Uppdaterar filförråd</string> + <string name="banner_updating_repositories">Uppdaterar filförråd</string> <string name="permissions">Behörigheter</string> <string name="repo_details">Förråd</string> <string name="repo_url">Adress</string> diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index 6eff9c78a..2b85e3555 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -192,7 +192,7 @@ <string name="hide_on_long_search_press_title">శోధన బటన్తో దాచు</string> <string name="hide_on_long_search_press_summary">చాలాసేపు శోధన బటన్ను నొక్కినప్పుడు అనువర్తనం దాచబడుతుంది</string> <string name="download_404">అభ్యర్థించిన ఫైల్ కనుగొనబడలేదు.</string> - <string name="update_notification_title">రిపోజిటరీలను నవీకరిస్తోంది</string> + <string name="banner_updating_repositories">రిపోజిటరీలను నవీకరిస్తోంది</string> <string name="repos_unchanged">అన్ని రిపోజిటరీలు తాజావి</string> <string name="all_other_repos_fine">అన్ని ఇతర రేపోలు లోపాలు సృష్టించలేదు.</string> <string name="global_error_updating_repos">నవీకరణ సమయంలో లోపం: %s</string> diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 4dc9528da..9c897252d 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -208,7 +208,7 @@ <string name="proxy_port_summary">หมายเลขพอร์ตพร็อกซีของคุณ (เช่น 8118)</string> <string name="status_download">กำลังดาวน์โหลด\n%2$s / %3$s (%4$d%%) จาก\n%1$s</string> <string name="status_download_unknown_size">กำลังดาวน์โหลด\n%2$s จาก\n%1$s</string> - <string name="update_notification_title">กำลังอัพเดตข้อมูลจากแหล่งโปรแกรม</string> + <string name="banner_updating_repositories">กำลังอัพเดตข้อมูลจากแหล่งโปรแกรม</string> <string name="status_processing_xml_percent">กำลังประมวลผลข้อมูล %2$s / %3$s (%4$d%%) จาก %1$s</string> <string name="requires_features">ต้องใช้: %1$s</string> <string name="wifi">Wi-Fi</string> diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 58878316c..74a37381c 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -162,7 +162,7 @@ <string name="status_download_unknown_size">%1$s konumundan \n%2$s \nindiriliyor</string> - <string name="update_notification_title">Depolar güncelleniyor</string> + <string name="banner_updating_repositories">Depolar güncelleniyor</string> <string name="status_processing_xml_percent">İşleniyor %2$s / %3$s (%%%4$d) kaynak: %1$s</string> <string name="status_inserting_apps">Uygulama ayrıntıları kaydediliyor</string> <string name="permissions">İzinler</string> diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 426c4a373..519cf241f 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -90,7 +90,7 @@ <string name="proxy_port">Проксі порт</string> <string name="proxy_port_summary">Номер порту вашого проксі (наприклад 8118)</string> <string name="status_download">Завантаження\n%2$s / %3$s (%4$d%%) з\n%1$s</string> - <string name="update_notification_title">Оновлення репозиторіїв</string> + <string name="banner_updating_repositories">Оновлення репозиторіїв</string> <string name="status_processing_xml_percent">Обробка %2$s / %3$s (%4$d%%) з %1$s</string> <string name="status_connecting_to_repo">З\'єднання з \n%1$s</string> diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index ba4e0dac4..7fa4554e7 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -152,7 +152,7 @@ <string name="enable_proxy_summary">Thiết lập proxy HTTP cho tất cả các yêu cầu nối mạng</string> <string name="proxy_host">Máy chủ Proxy</string> <string name="proxy_host_summary">Tên máy chủ proxy của bạn (ví dụ 127.0.0.1)</string> - <string name="update_notification_title">Đang cập nhật các kho ứng dụng</string> + <string name="banner_updating_repositories">Đang cập nhật các kho ứng dụng</string> <string name="status_processing_xml_percent">Đang xử lí %2$s / %3$s (%4$d%%) từ %1$s</string> <string name="unsigned">Chưa được kí</string> <string name="unsigned_description">Điều này nghĩa là danh sách ứng dụng không được kiểm duyệt. Bạn hãy cẩn thận khi diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f0bcc8e3f..5214cd650 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -142,7 +142,7 @@ <string name="next">下一步</string> <string name="skip">跳过</string> <string name="status_download_unknown_size">下载中\n%2$s 来自\n%1$s</string> - <string name="update_notification_title">正在更新库</string> + <string name="banner_updating_repositories">正在更新库</string> <string name="status_processing_xml_percent">处理中 %2$s / %3$s (%4$d%%) 来自 %1$s</string> <string name="repos_unchanged">所有的存储库已是最新的</string> <string name="all_other_repos_fine">所有其他的存储库并没有产生错误。</string> diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index f13c0f16d..791fa90f2 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -119,7 +119,7 @@ <string name="back">返回</string> <string name="invalid_url">這不是有效的網址。</string> <string name="menu_changelog">更新日誌</string> - <string name="update_notification_title">正在更新軟件庫</string> + <string name="banner_updating_repositories">正在更新軟件庫</string> <string name="no_handler_app">您沒有任何應用程式可以開啟 %s。</string> <string name="repo_confirm_delete_body">刪除軟件庫後,庫中的應用程式將不會在 F-Droid 中出現。 \n diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5b259d0d8..cf3fb0188 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -116,7 +116,7 @@ <string name="deleting_repo">正在刪除目前的軟體庫…</string> <string name="adding_apks_format">正在加入 %s 到軟體庫…</string> <string name="copying_icons">正在複製應用程式圖示至軟體庫…</string> - <string name="update_notification_title">正在更新軟體庫</string> + <string name="banner_updating_repositories">正在更新軟體庫</string> <string name="repos_unchanged">所有軟體庫已更新至最新的版本</string> <string name="all_other_repos_fine">所有其它軟體庫都沒有出現錯誤。</string> <string name="global_error_updating_repos">更新時發生錯誤:%s</string> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index add32eb5f..189a2970b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -378,7 +378,7 @@ This often occurs with apps installed via Google Play or other sources, if they --> <string name="status_download_unknown_size">Downloading\n%2$s from\n%1$s</string> <string name="download_404">The requested file was not found.</string> - <string name="update_notification_title">Updating repositories</string> + <string name="banner_updating_repositories">Updating repositories</string> <string name="status_processing_xml_percent">Processing %2$s / %3$s (%4$d%%) from %1$s</string> <string name="status_connecting_to_repo">Connecting to\n%1$s</string> <string name="status_inserting_apps">Saving app details</string> From a505850110151d17ee9eea74fd808fbbda0a3434 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner <hans@eds.org> Date: Tue, 13 Apr 2021 14:40:09 +0200 Subject: [PATCH 4/7] "No internet" banner on main, categories, and updates screen An alternate implementation of @pserwylo's fdroidclient!724 closes #884 --- .../fdroid/views/BannerUpdatingRepos.java | 83 +++++++++++++------ app/src/main/res/values/strings.xml | 1 + 2 files changed, 59 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java b/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java index a93d89a79..b9ea3b3df 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java +++ b/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java @@ -4,21 +4,40 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.net.ConnectivityManager; import android.util.AttributeSet; import android.view.Gravity; import android.view.View; import org.fdroid.fdroid.R; import org.fdroid.fdroid.UpdateService; +import org.fdroid.fdroid.net.ConnectivityMonitorService; import androidx.localbroadcastmanager.content.LocalBroadcastManager; /** - * Widget which reflects whether or not a repo update is currently in progress or not. If so, shows - * some sort of feedback to the user. + * Banner widget which reflects current status related to repository updates. + * It will display whether repositories area actively being updated, or + * whether there is no Internet connection, so repositories cannot be updated + * from the Internet. + * <p> + * It shows a "No Internet" message when it identifies the device is not + * connected. Will only monitor the wifi state when attached to the window. + * Note that this does a pretty poor job of responding to network changes in + * real time. It only knows how to respond to the <em>enabling</em> of WiFi + * (not disabling of WiFi, nor enabling/disabling of mobile data). However it + * will always query the network state when it is shown to the user. This way + * if they change between tabs, hide and then open F-Droid, or do other things + * which require the view to attach to the window again then it will update the + * network state. In practice this works pretty well. + * + * @see <a href="https://gitlab.com/fdroid/fdroidclient/-/merge_requests/724">"No internet" banner on main, categories, and updates screen</a> */ public class BannerUpdatingRepos extends androidx.appcompat.widget.AppCompatTextView { + private int updateServiceStatus = UpdateService.STATUS_COMPLETE_WITH_CHANGES; + private int networkState = ConnectivityMonitorService.FLAG_NET_NO_LIMIT; + public BannerUpdatingRepos(Context context) { this(context, null); } @@ -33,51 +52,65 @@ public class BannerUpdatingRepos extends androidx.appcompat.widget.AppCompatText setPadding(padding, padding, padding, padding); setBackgroundColor(0xFF4A4A4A); setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); - setText(R.string.banner_updating_repositories); setTextColor(0xFFFFFFFF); } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); - monitorRepoUpdates(); + Context context = getContext(); + networkState = ConnectivityMonitorService.getNetworkState(context); + context.registerReceiver(onNetworkStateChanged, + new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); + + if (UpdateService.isUpdating()) { + updateServiceStatus = UpdateService.STATUS_INFO; + } + LocalBroadcastManager.getInstance(context).registerReceiver(onRepoFeedback, + new IntentFilter(UpdateService.LOCAL_ACTION_STATUS)); + + setBannerTextAndVisibility(); } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); - stopMonitoringRepoUpdates(); + Context context = getContext(); + LocalBroadcastManager.getInstance(context).unregisterReceiver(onRepoFeedback); + context.unregisterReceiver(onNetworkStateChanged); } - private void monitorRepoUpdates() { - if (isInEditMode()) { - return; - } - - LocalBroadcastManager.getInstance(getContext()).registerReceiver(onRepoFeedback, - new IntentFilter(UpdateService.LOCAL_ACTION_STATUS)); - setBannerIsVisible(UpdateService.isUpdating()); - } - - private void setBannerIsVisible(boolean isUpdating) { - if (isUpdating) { + private void setBannerTextAndVisibility() { + if (updateServiceStatus == UpdateService.STATUS_INFO) { + setText(R.string.banner_updating_repositories); + setVisibility(View.VISIBLE); + } else if (networkState == ConnectivityMonitorService.FLAG_NET_UNAVAILABLE + || networkState == ConnectivityMonitorService.FLAG_NET_DEVICE_AP_WITHOUT_INTERNET) { + setText(R.string.banner_no_internet); setVisibility(View.VISIBLE); } else { setVisibility(View.GONE); } } - private void stopMonitoringRepoUpdates() { - LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(onRepoFeedback); - } - + /** + * Anything other than a {@link UpdateService#STATUS_INFO} broadcast + * signifies that it was complete (and out banner should be removed). + */ private final BroadcastReceiver onRepoFeedback = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - // Anything other than a STATUS_INFO broadcast signifies that it was complete (and out - // banner should be removed). - boolean isInfo = intent.getIntExtra(UpdateService.EXTRA_STATUS_CODE, 0) == UpdateService.STATUS_INFO; - setBannerIsVisible(isInfo); + updateServiceStatus = intent.getIntExtra(UpdateService.EXTRA_STATUS_CODE, + UpdateService.STATUS_COMPLETE_WITH_CHANGES); + setBannerTextAndVisibility(); + } + }; + + private final BroadcastReceiver onNetworkStateChanged = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + networkState = ConnectivityMonitorService.getNetworkState(context); + setBannerTextAndVisibility(); } }; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 189a2970b..2dbe54327 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -379,6 +379,7 @@ This often occurs with apps installed via Google Play or other sources, if they <string name="status_download_unknown_size">Downloading\n%2$s from\n%1$s</string> <string name="download_404">The requested file was not found.</string> <string name="banner_updating_repositories">Updating repositories</string> + <string name="banner_no_internet">No Internet</string> <string name="status_processing_xml_percent">Processing %2$s / %3$s (%4$d%%) from %1$s</string> <string name="status_connecting_to_repo">Connecting to\n%1$s</string> <string name="status_inserting_apps">Saving app details</string> From 8773d6205ce990022c3084b2a8e97d75ab435d3c Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner <hans@eds.org> Date: Tue, 13 Apr 2021 14:42:11 +0200 Subject: [PATCH 5/7] rename BannerUpdatingRepos --> StatusBanner --- .../java/org/fdroid/fdroid/MainActivityEspressoTest.java | 4 ++-- app/src/full/res/layout/main_tab_categories.xml | 2 +- .../views/{BannerUpdatingRepos.java => StatusBanner.java} | 8 ++++---- app/src/main/res/layout/main_tab_latest.xml | 2 +- app/src/main/res/layout/main_tab_updates.xml | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) rename app/src/main/java/org/fdroid/fdroid/views/{BannerUpdatingRepos.java => StatusBanner.java} (93%) diff --git a/app/src/androidTest/java/org/fdroid/fdroid/MainActivityEspressoTest.java b/app/src/androidTest/java/org/fdroid/fdroid/MainActivityEspressoTest.java index 080c64ef8..9cc828da3 100644 --- a/app/src/androidTest/java/org/fdroid/fdroid/MainActivityEspressoTest.java +++ b/app/src/androidTest/java/org/fdroid/fdroid/MainActivityEspressoTest.java @@ -21,7 +21,7 @@ import androidx.test.uiautomator.UiObjectNotFoundException; import androidx.test.uiautomator.UiSelector; import android.util.Log; import android.view.View; -import org.fdroid.fdroid.views.BannerUpdatingRepos; +import org.fdroid.fdroid.views.StatusBanner; import org.fdroid.fdroid.views.main.MainActivity; import org.hamcrest.Matchers; import org.junit.After; @@ -267,7 +267,7 @@ public class MainActivityEspressoTest { if (!BuildConfig.FLAVOR.startsWith("full")) { return; } - onView(Matchers.<View>instanceOf(BannerUpdatingRepos.class)).check(matches(not(isDisplayed()))); + onView(Matchers.<View>instanceOf(StatusBanner.class)).check(matches(not(isDisplayed()))); onView(allOf(withText(R.string.menu_settings), isDisplayed())).perform(click()); onView(allOf(withText(R.string.main_menu__latest_apps), isDisplayed())).perform(click()); onView(allOf(withId(R.id.swipe_to_refresh), isDisplayed())) diff --git a/app/src/full/res/layout/main_tab_categories.xml b/app/src/full/res/layout/main_tab_categories.xml index af80ac01c..301570f7f 100644 --- a/app/src/full/res/layout/main_tab_categories.xml +++ b/app/src/full/res/layout/main_tab_categories.xml @@ -17,7 +17,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <org.fdroid.fdroid.views.BannerUpdatingRepos + <org.fdroid.fdroid.views.StatusBanner android:id="@+id/banner_updating_repos" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java b/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java similarity index 93% rename from app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java rename to app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java index b9ea3b3df..1e3bfafa8 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/BannerUpdatingRepos.java +++ b/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java @@ -33,20 +33,20 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager; * * @see <a href="https://gitlab.com/fdroid/fdroidclient/-/merge_requests/724">"No internet" banner on main, categories, and updates screen</a> */ -public class BannerUpdatingRepos extends androidx.appcompat.widget.AppCompatTextView { +public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { private int updateServiceStatus = UpdateService.STATUS_COMPLETE_WITH_CHANGES; private int networkState = ConnectivityMonitorService.FLAG_NET_NO_LIMIT; - public BannerUpdatingRepos(Context context) { + public StatusBanner(Context context) { this(context, null); } - public BannerUpdatingRepos(Context context, AttributeSet attrs) { + public StatusBanner(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.textViewStyle); } - public BannerUpdatingRepos(Context context, AttributeSet attrs, int defStyleAttr) { + public StatusBanner(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); int padding = (int) getResources().getDimension(R.dimen.banner__padding); setPadding(padding, padding, padding, padding); diff --git a/app/src/main/res/layout/main_tab_latest.xml b/app/src/main/res/layout/main_tab_latest.xml index 31b4a1c4a..99d3e3452 100644 --- a/app/src/main/res/layout/main_tab_latest.xml +++ b/app/src/main/res/layout/main_tab_latest.xml @@ -16,7 +16,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - <org.fdroid.fdroid.views.BannerUpdatingRepos + <org.fdroid.fdroid.views.StatusBanner android:layout_width="match_parent" android:layout_height="wrap_content" /> diff --git a/app/src/main/res/layout/main_tab_updates.xml b/app/src/main/res/layout/main_tab_updates.xml index 2aea585f7..1db3a3375 100644 --- a/app/src/main/res/layout/main_tab_updates.xml +++ b/app/src/main/res/layout/main_tab_updates.xml @@ -18,7 +18,7 @@ android:layout_height="match_parent" android:background="?attr/mainTabSwapBackground"> - <org.fdroid.fdroid.views.BannerUpdatingRepos + <org.fdroid.fdroid.views.StatusBanner android:id="@+id/banner_updating_repos" android:layout_width="0dp" android:layout_height="wrap_content" From 908921e9789d12e9b247faeff03c3a75393606e9 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner <hans@eds.org> Date: Tue, 13 Apr 2021 16:25:10 +0200 Subject: [PATCH 6/7] show banner when Over Data/WiFi Settings disable updating from internet --- .../java/org/fdroid/fdroid/UpdateService.java | 45 +++++++++++++------ .../org/fdroid/fdroid/views/StatusBanner.java | 40 +++++++++++++++++ app/src/main/res/values/strings.xml | 4 ++ tools/check-string-maxlength.py | 9 ++-- 4 files changed, 82 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateService.java b/app/src/main/java/org/fdroid/fdroid/UpdateService.java index 0d06c3e0d..3487e9980 100644 --- a/app/src/main/java/org/fdroid/fdroid/UpdateService.java +++ b/app/src/main/java/org/fdroid/fdroid/UpdateService.java @@ -253,6 +253,37 @@ public class UpdateService extends JobIntentService { } } + /** + * Return a {@link List} of all {@link Repo}s that have either a local + * canonical URL or a local mirror URL. These are repos that can be + * updated and used without using the Internet. + */ + public static List<Repo> getLocalRepos(Context context) { + return getLocalRepos(RepoProvider.Helper.all(context)); + } + + /** + * Return the repos in the {@code repos} {@link List} that have either a + * local canonical URL or a local mirror URL. These are repos that can be + * updated and used without using the Internet. + */ + public static List<Repo> getLocalRepos(List<Repo> repos) { + ArrayList<Repo> localRepos = new ArrayList<>(); + for (Repo repo : repos) { + if (isLocalRepoAddress(repo.address)) { + localRepos.add(repo); + } else { + for (String mirrorAddress : repo.getMirrorList()) { + if (isLocalRepoAddress(mirrorAddress)) { + localRepos.add(repo); + break; + } + } + } + } + return localRepos; + } + @Override public void onCreate() { super.onCreate(); @@ -405,19 +436,7 @@ public class UpdateService extends JobIntentService { Utils.debugLog(TAG, "skipping internet check, this is local: " + address); } else if (netState == ConnectivityMonitorService.FLAG_NET_UNAVAILABLE) { // keep track of repos that have a local copy in case internet is not available - ArrayList<Repo> localRepos = new ArrayList<>(); - for (Repo repo : repos) { - if (isLocalRepoAddress(repo.address)) { - localRepos.add(repo); - } else { - for (String mirrorAddress : repo.getMirrorList()) { - if (isLocalRepoAddress(mirrorAddress)) { - localRepos.add(repo); - break; - } - } - } - } + List<Repo> localRepos = getLocalRepos(repos); if (localRepos.size() > 0) { repos = localRepos; } else { diff --git a/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java b/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java index 1e3bfafa8..3adf112ee 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java +++ b/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java @@ -4,16 +4,22 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.SharedPreferences; import android.net.ConnectivityManager; import android.util.AttributeSet; import android.view.Gravity; import android.view.View; +import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.R; import org.fdroid.fdroid.UpdateService; +import org.fdroid.fdroid.data.Repo; import org.fdroid.fdroid.net.ConnectivityMonitorService; +import java.util.List; + import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.preference.PreferenceManager; /** * Banner widget which reflects current status related to repository updates. @@ -37,6 +43,11 @@ public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { private int updateServiceStatus = UpdateService.STATUS_COMPLETE_WITH_CHANGES; private int networkState = ConnectivityMonitorService.FLAG_NET_NO_LIMIT; + private int overDataState; + private int overWiFiState; + private List<Repo> localRepos; + + private final SharedPreferences preferences; public StatusBanner(Context context) { this(context, null); @@ -53,6 +64,8 @@ public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { setBackgroundColor(0xFF4A4A4A); setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); setTextColor(0xFFFFFFFF); + + preferences = PreferenceManager.getDefaultSharedPreferences(context); } @Override @@ -69,6 +82,11 @@ public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { LocalBroadcastManager.getInstance(context).registerReceiver(onRepoFeedback, new IntentFilter(UpdateService.LOCAL_ACTION_STATUS)); + overDataState = Preferences.get().getOverData(); + overWiFiState = Preferences.get().getOverWifi(); + localRepos = UpdateService.getLocalRepos(context); + preferences.registerOnSharedPreferenceChangeListener(dataWifiChangeListener); + setBannerTextAndVisibility(); } @@ -78,6 +96,7 @@ public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { Context context = getContext(); LocalBroadcastManager.getInstance(context).unregisterReceiver(onRepoFeedback); context.unregisterReceiver(onNetworkStateChanged); + preferences.unregisterOnSharedPreferenceChangeListener(dataWifiChangeListener); } private void setBannerTextAndVisibility() { @@ -88,6 +107,15 @@ public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { || networkState == ConnectivityMonitorService.FLAG_NET_DEVICE_AP_WITHOUT_INTERNET) { setText(R.string.banner_no_internet); setVisibility(View.VISIBLE); + } else if (overDataState == Preferences.OVER_NETWORK_NEVER + && overWiFiState == Preferences.OVER_NETWORK_NEVER) { + localRepos = UpdateService.getLocalRepos(getContext()); + if (localRepos.size() == 0) { + setText(R.string.banner_no_data_or_wifi); + setVisibility(View.VISIBLE); + } else { + setVisibility(View.GONE); + } } else { setVisibility(View.GONE); } @@ -113,4 +141,16 @@ public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { setBannerTextAndVisibility(); } }; + + private final SharedPreferences.OnSharedPreferenceChangeListener dataWifiChangeListener = + new SharedPreferences.OnSharedPreferenceChangeListener() { + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + if (key == Preferences.PREF_OVER_DATA || key == Preferences.PREF_OVER_WIFI) { + overDataState = Preferences.get().getOverData(); + overWiFiState = Preferences.get().getOverWifi(); + setBannerTextAndVisibility(); + } + } + }; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2dbe54327..c860370f1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -378,8 +378,12 @@ This often occurs with apps installed via Google Play or other sources, if they --> <string name="status_download_unknown_size">Downloading\n%2$s from\n%1$s</string> <string name="download_404">The requested file was not found.</string> + <!-- This is a banner title, it should be maximum 30 characters --> <string name="banner_updating_repositories">Updating repositories</string> + <!-- This is a banner title, it should be maximum 30 characters --> <string name="banner_no_internet">No Internet</string> + <!-- This is a banner title, it should be maximum 30 characters --> + <string name="banner_no_data_or_wifi">No Data or WiFi enabled</string> <string name="status_processing_xml_percent">Processing %2$s / %3$s (%4$d%%) from %1$s</string> <string name="status_connecting_to_repo">Connecting to\n%1$s</string> <string name="status_inserting_apps">Saving app details</string> diff --git a/tools/check-string-maxlength.py b/tools/check-string-maxlength.py index 6356fc2f8..5ee839440 100755 --- a/tools/check-string-maxlength.py +++ b/tools/check-string-maxlength.py @@ -8,21 +8,24 @@ import sys from xml.etree import ElementTree maxlengths = { + "banner_no_data_or_wifi": 30, + "banner_no_internet": 30, + "banner_updating_repositories": 30, + "installing": 50, "menu_install": 15, "menu_uninstall": 15, - "installing": 50, - "uninstalling": 50, "nearby_splash__find_people_button": 30, "nearby_splash__request_permission": 30, "swap": 25, - "swap_nfc_title": 25, "swap_choose_apps": 25, "swap_confirm": 25, "swap_connecting": 25, "swap_nearby": 25, + "swap_nfc_title": 25, "swap_scan_qr": 18, "swap_send_fdroid": 18, "swap_success": 25, + "uninstalling": 50, "update_all": 20, "updates__hide_updateable_apps": 35, "updates__show_updateable_apps": 35, From 18a43ac47101072e0b2fa921fa22dafe02158ac6 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner <hans@eds.org> Date: Tue, 13 Apr 2021 21:58:19 +0200 Subject: [PATCH 7/7] ignore system partition repos when checking for local repos The system partition repos like shipped with CalyxOS are not really visible to the user, they are built-in. So they should not prevent the warning banner showing when the user has switched Over Data and Over WiFi to never. --- .../org/fdroid/fdroid/views/StatusBanner.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java b/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java index 3adf112ee..9659b3bef 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java +++ b/app/src/main/java/org/fdroid/fdroid/views/StatusBanner.java @@ -6,6 +6,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.net.ConnectivityManager; +import android.net.Uri; import android.util.AttributeSet; import android.view.Gravity; import android.view.View; @@ -16,6 +17,7 @@ import org.fdroid.fdroid.UpdateService; import org.fdroid.fdroid.data.Repo; import org.fdroid.fdroid.net.ConnectivityMonitorService; +import java.util.Arrays; import java.util.List; import androidx.localbroadcastmanager.content.LocalBroadcastManager; @@ -99,6 +101,16 @@ public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { preferences.unregisterOnSharedPreferenceChangeListener(dataWifiChangeListener); } + /** + * Display banner with specific text depending on updating status, network + * connectivity, and Data/WiFi Settings. This also takes into account + * whether there are local repos/mirrors available, e.g. if there is a + * mirror on a USB OTG thumb drive. Local repos on system partitions are + * not treated as local mirrors here, they are shipped as part of the + * device, and users are generally not aware of them. + * + * @see org.fdroid.fdroid.data.DBHelper#loadAdditionalRepos(String) + */ private void setBannerTextAndVisibility() { if (updateServiceStatus == UpdateService.STATUS_INFO) { setText(R.string.banner_updating_repositories); @@ -110,7 +122,17 @@ public class StatusBanner extends androidx.appcompat.widget.AppCompatTextView { } else if (overDataState == Preferences.OVER_NETWORK_NEVER && overWiFiState == Preferences.OVER_NETWORK_NEVER) { localRepos = UpdateService.getLocalRepos(getContext()); - if (localRepos.size() == 0) { + boolean hasLocalNonSystemRepos = true; + final List<String> systemPartitions = Arrays.asList("odm", "oem", "product", "system", "vendor"); + for (Repo repo : localRepos) { + for (String segment : Uri.parse(repo.address).getPathSegments()) { + if (systemPartitions.contains(segment)) { + hasLocalNonSystemRepos = false; + } + break; // only check the first segment NOPMD + } + } + if (localRepos.size() == 0 || !hasLocalNonSystemRepos) { setText(R.string.banner_no_data_or_wifi); setVisibility(View.VISIBLE); } else {