From cc0a036a746e6243b3c0b477769a2165f7f5f6ec Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 1 Aug 2024 16:22:21 -0300 Subject: [PATCH 1/2] [app] don't require device to be idle for RepoUpdateWorker to run Sometimes devices are not idle for a long time potentially causing many hours of delay. Some device have been reported to never be idle: https://gitlab.com/fdroid/fdroidclient/-/issues/1794 Closes #1794 --- app/src/main/java/org/fdroid/fdroid/work/RepoUpdateWorker.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/work/RepoUpdateWorker.kt b/app/src/main/java/org/fdroid/fdroid/work/RepoUpdateWorker.kt index dacf34211..39aaa0b1a 100644 --- a/app/src/main/java/org/fdroid/fdroid/work/RepoUpdateWorker.kt +++ b/app/src/main/java/org/fdroid/fdroid/work/RepoUpdateWorker.kt @@ -87,7 +87,6 @@ class RepoUpdateWorker( NetworkType.UNMETERED } val constraints = Constraints.Builder() - .setRequiresDeviceIdle(true) .setRequiresBatteryNotLow(true) .setRequiresStorageNotLow(true) .setRequiredNetworkType(networkType) From 263c61d8adb6ca47e45786d1dc513451dd377368 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 1 Aug 2024 16:25:34 -0300 Subject: [PATCH 2/2] [app] don't report negative update scheduling times in settings When the scheduling time is in the past, our job should have run already, but did not, because conditions we require weren't fulfilled. Times in the past are confusing for users, so we just report that the next run is waiting for conditions to be fulfilled. --- .../java/org/fdroid/fdroid/views/PreferencesFragment.java | 5 ++++- app/src/main/res/values/strings.xml | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/PreferencesFragment.java b/app/src/main/java/org/fdroid/fdroid/views/PreferencesFragment.java index 16b53ae2f..34dbcbf8a 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/PreferencesFragment.java +++ b/app/src/main/java/org/fdroid/fdroid/views/PreferencesFragment.java @@ -266,7 +266,10 @@ public class PreferencesFragment extends PreferenceFragmentCompat private String getUpdateIntervalSeekbarSummary(int position) { StringBuilder sb = new StringBuilder(); sb.append(getString(UPDATE_INTERVAL_NAMES[position])); - if (nextUpdateCheck < Long.MAX_VALUE) { + if (nextUpdateCheck < 0) { + sb.append("\n"); + sb.append(getString(R.string.auto_update_time_past)); + } else if (nextUpdateCheck < Long.MAX_VALUE) { sb.append("\n"); CharSequence nextUpdate = DateUtils.getRelativeTimeSpanString(nextUpdateCheck, System.currentTimeMillis(), DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7c3029c75..8606a1567 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -679,6 +679,7 @@ This often occurs with apps installed via Google Play or other sources, if they Check for updates every 2 weeks Earliest next update: %s + Next update when conditions are fulfilled 1 Hour 1 Day