diff --git a/app/src/main/java/org/fdroid/fdroid/Preferences.java b/app/src/main/java/org/fdroid/fdroid/Preferences.java
index aa4f1f6d6..68def793a 100644
--- a/app/src/main/java/org/fdroid/fdroid/Preferences.java
+++ b/app/src/main/java/org/fdroid/fdroid/Preferences.java
@@ -142,8 +142,9 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
lightWithDarkActionBar, // Obsolete
}
+ public static final long UPDATE_INTERVAL_DISABLED = Long.MAX_VALUE;
public static final long[] UPDATE_INTERVAL_VALUES = {
- Long.MAX_VALUE, // never
+ UPDATE_INTERVAL_DISABLED,
DateUtils.WEEK_IN_MILLIS * 2,
DateUtils.WEEK_IN_MILLIS,
DateUtils.DAY_IN_MILLIS,
@@ -211,12 +212,8 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
* Get the update interval in milliseconds.
*/
public long getUpdateInterval() {
- if (getOverData() == OVER_NETWORK_NEVER && getOverWifi() == OVER_NETWORK_NEVER) {
- return UPDATE_INTERVAL_VALUES[0];
- } else {
- int position = preferences.getInt(PREF_UPDATE_INTERVAL, IGNORED_I);
- return UPDATE_INTERVAL_VALUES[position];
- }
+ int position = preferences.getInt(PREF_UPDATE_INTERVAL, IGNORED_I);
+ return UPDATE_INTERVAL_VALUES[position];
}
/**
diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateJobService.java b/app/src/main/java/org/fdroid/fdroid/UpdateJobService.java
index 6911584b4..88ed0b674 100644
--- a/app/src/main/java/org/fdroid/fdroid/UpdateJobService.java
+++ b/app/src/main/java/org/fdroid/fdroid/UpdateJobService.java
@@ -20,7 +20,7 @@ public class UpdateJobService extends JobService {
@Override
public boolean onStopJob(JobParameters params) {
- // TODO this should gracefully stop UpdateService
+ UpdateService.stopNow(this);
return true;
}
}
diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateService.java b/app/src/main/java/org/fdroid/fdroid/UpdateService.java
index 3598aa186..e87b7e725 100644
--- a/app/src/main/java/org/fdroid/fdroid/UpdateService.java
+++ b/app/src/main/java/org/fdroid/fdroid/UpdateService.java
@@ -93,8 +93,6 @@ public class UpdateService extends JobIntentService {
private NotificationCompat.Builder notificationBuilder;
private AppUpdateStatusManager appUpdateStatusManager;
- private static boolean updating;
-
public static void updateNow(Context context) {
updateRepoNow(context, null);
}
@@ -140,6 +138,12 @@ public class UpdateService extends JobIntentService {
public static void schedule(Context context) {
Preferences prefs = Preferences.get();
long interval = prefs.getUpdateInterval();
+ int data = prefs.getOverData();
+ int wifi = prefs.getOverWifi();
+ boolean scheduleNewJob =
+ interval != Preferences.UPDATE_INTERVAL_DISABLED
+ && data != Preferences.OVER_NETWORK_NEVER
+ && wifi != Preferences.OVER_NETWORK_NEVER;
if (Build.VERSION.SDK_INT < 21) {
Intent intent = new Intent(context, UpdateService.class);
@@ -147,7 +151,7 @@ public class UpdateService extends JobIntentService {
AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pending);
- if (interval > 0) {
+ if (scheduleNewJob) {
alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME,
SystemClock.elapsedRealtime() + 5000, interval, pending);
Utils.debugLog(TAG, "Update scheduler alarm set");
@@ -165,17 +169,19 @@ public class UpdateService extends JobIntentService {
builder.setRequiresBatteryNotLow(true)
.setRequiresStorageNotLow(true);
}
- int wifi = prefs.getOverWifi();
- if (prefs.getOverData() == Preferences.OVER_NETWORK_ALWAYS) {
- if (Build.VERSION.SDK_INT < 26 || wifi == Preferences.OVER_NETWORK_ALWAYS) {
- builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
- } else {
- builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_METERED);
- }
- } else if (wifi == Preferences.OVER_NETWORK_ALWAYS) {
+ if (data == Preferences.OVER_NETWORK_ALWAYS && wifi == Preferences.OVER_NETWORK_ALWAYS) {
+ builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
+ } else {
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
}
- jobScheduler.schedule(builder.build());
+
+ jobScheduler.cancel(JOB_ID);
+ if (scheduleNewJob) {
+ jobScheduler.schedule(builder.build());
+ Utils.debugLog(TAG, "Update scheduler alarm set");
+ } else {
+ Utils.debugLog(TAG, "Update scheduler alarm not set");
+ }
}
}
@@ -184,7 +190,7 @@ public class UpdateService extends JobIntentService {
* the app to users, so they know something is happening.
*/
public static boolean isUpdating() {
- return updating;
+ return updateService != null;
}
private static volatile boolean isScheduleIfStillOnWifiRunning;
@@ -230,11 +236,22 @@ public class UpdateService extends JobIntentService {
isScheduleIfStillOnWifiRunning = false;
return null;
}
+
+ }
+
+ private static UpdateService updateService;
+
+ public static void stopNow(Context context) {
+ if (updateService != null) {
+ updateService.stopSelf(JOB_ID);
+ updateService = null;
+ }
}
@Override
public void onCreate() {
super.onCreate();
+ updateService = this;
notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
@@ -263,6 +280,7 @@ public class UpdateService extends JobIntentService {
super.onDestroy();
notificationManager.cancel(NOTIFY_ID_UPDATING);
LocalBroadcastManager.getInstance(this).unregisterReceiver(updateStatusReceiver);
+ updateService = null;
}
public static void sendStatus(Context context, int statusCode) {
@@ -402,14 +420,13 @@ public class UpdateService extends JobIntentService {
sendNoInternetToast();
}
return;
- } else if (manualUpdate || forcedUpdate) {
+ } else if ((manualUpdate || forcedUpdate) && fdroidPrefs.isOnDemandDownloadAllowed()) {
Utils.debugLog(TAG, "manually requested or forced update");
- } else if (!fdroidPrefs.isBackgroundDownloadAllowed()) {
+ } else if (!fdroidPrefs.isBackgroundDownloadAllowed() && !fdroidPrefs.isOnDemandDownloadAllowed()) {
Utils.debugLog(TAG, "don't run update");
return;
}
- updating = true;
setNotification();
LocalBroadcastManager.getInstance(this).registerReceiver(updateStatusReceiver,
new IntentFilter(LOCAL_ACTION_STATUS));
@@ -498,8 +515,6 @@ public class UpdateService extends JobIntentService {
} catch (Exception e) {
Log.e(TAG, "Exception during update processing", e);
sendStatus(this, STATUS_ERROR_GLOBAL, e.getMessage());
- } finally {
- updating = false;
}
long time = System.currentTimeMillis() - startTime;
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 2a406ee29..7204634da 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -63,8 +63,8 @@
Nincs elérhető alkalmazás, ami képes ezt kezelni: %s.
Téma
Ezt a tárolót még nem használta. Engedélyeznie kell, hogy megtekinthesse az általa kínált alkalmazásokat.
- Egy tároló törlése azt jelenti, hogy a belőle származó alkalmazások többé nem lesznek elérhetőek az F-Droidban.
-\n
+ Egy tároló törlése azt jelenti, hogy a belőle származó alkalmazások többé nem lesznek elérhetőek.
+\n
\nMegjegyzés: Minden korábban telepített alkalmazás az eszközön marad.
%1$s letiltva.
\n
@@ -77,7 +77,7 @@
Instabil frissítések
Frissítések ajánlása instabil verziókra
Kiváltságos kiterjesztés
- Az F-Droid kiváltságos kiterjesztésének használata a csomagok telepítéséhez, frissítéséhez és eltávolításához
+ Kiváltságos kiterjesztés használata a csomagok telepítéséhez, frissítéséhez és eltávolításához
Helyi tároló neve
A helyi tárolója közzétett címe: %s
Titkosított HTTPS:// kapcsolat használata a helyi tárolóhoz
@@ -139,7 +139,8 @@
Név
Ismeretlen
Törli a tárolót?
- F-Droid tároló keresése itt:\n%1$s
+ Csomagtároló keresése itt:
+\n%1$s
Nyelv
Rendszer-alapértelmezés
@@ -276,9 +277,7 @@
Örökké
Telepítési előzmények megtartása
- Napló tárolása az F-Droidban végzett telepítésekről és
- eltávolításokról
-
+ Az összes telepítés és eltávolítás naplójának tárolása egy privát tárolóban
Frissítések automatikus telepítése
Alkalmazásfrissítések letöltése és telepítése a háttérben
Kiváltságos kiterjesztés frissítése/törlése
@@ -354,7 +353,7 @@
APK fájlok tárolóhoz csatolása…
A kért fájl nem található.
Ez azt jelenti, hogy az alkalmazások listája nem ellenőrizhető. Óvatosnak kell lennie a hitelesítetlen indexekből letöltött alkalmazásokkal.
- A(z) %1$s F-Droid tároló mentve.
+ A(z) %1$s csomagtároló mentve.
%s-ig
%1$s-től %2$s-ig
Készítette: %s
@@ -525,4 +524,17 @@
A Wi-Fi Hotspot nem engedélyezhető!
A kamerának úgy tűnik nincs autofókusza. Így nehézkes lehet a kód leolvasása.
+ Kérdezzen az összeomlási jelentések küldésekor
+ Adatok begyűjtése az összeomlásokról, és annak megkérdezése, hogy elküldje azokat a fejlesztőnek
+ Minden értesítés elrejtése
+ Az összes művelet megakadályozása az állapotsávban és az értesítési oldalsávban való megjelenítésben.
+ Telepítési előzmények
+ Az összes telepítés és eltávolítás privát naplójának megtekintése
+ Verzió és UUID küldése a kiszolgálóknak
+ Az alkalmazás verziójának és egy véletlenszerű, egyedi azonosítónak a felvétele letöltéskor az alkalmazás következő újraindításakor lép hatályba.
+ Engedélyezés a tárolóknak alkalmazások telepítését vagy eltávolítását
+ A tároló metaadatai tartalmazhatnak küldési kéréseket alkalmazások telepítéséhez vagy eltávolításához
+ A forráskód többé nem érhető el, a frissítések nem lehetségesek.
+
+ Tároló megosztása
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index f4e2d954a..c965faf35 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -117,7 +117,7 @@
不稳定更新
建议更新至不稳定的版本
- 使用F-Droid特权扩展安装、更新和卸载应用
+ 使用特权扩展安装、更新和卸载应用
更新或卸载特权扩展
打开详情以更新或卸载特权扩展
本地软件源的名称
@@ -168,9 +168,9 @@
权限
软件源
地址
- 已保存 F-Droid 软件源 %1$s。
- 正在 %1$s
-\n里查找 F-Droid 软件源
+ 已保存软件源 %1$s。
+ 正在 %1$s
+\n里查找软件源
语言
系统默认
@@ -262,13 +262,13 @@
由 %1$s 提供。
下载中…
- 从不
- 每小时
- 每 4 小时
- 每 12 小时
- 每天
- 每周
- 每两周
+ 不自动更新应用
+ 每小时检查一次更新
+ 每 4 小时检查一次更新
+ 每 12 小时检查一次更新
+ 每天检查一次更新
+ 每周检查一次更新
+ 每两周检查一次更新
明亮
夜间
@@ -494,7 +494,7 @@
当此连接可用时,总是使用它
仅当我点击下载时才使用此连接
从不使用此连接下载任何内容
- 这个应用程序的安全签章较弱
+ 这个应用程序的安全签名较弱
这个应用程序包含已知的安全漏洞
%1$s已经设立,此举将会加入新的钥匙信息。
@@ -505,4 +505,11 @@
Wi-Fi 热点已启用
无法启用 Wi-Fi 热点!
+ 提示发送崩溃报告
+ 收集有关崩溃的数据并询问是否发送给开发人员
+ 隐藏所有通知
+ 安装历史
+ 发送版本和 UUID 到服务器
+ 源代码不再可用,无法更新。
+