diff --git a/app/src/main/java/org/fdroid/fdroid/Preferences.java b/app/src/main/java/org/fdroid/fdroid/Preferences.java
index 85260fdc5..660a391f7 100644
--- a/app/src/main/java/org/fdroid/fdroid/Preferences.java
+++ b/app/src/main/java/org/fdroid/fdroid/Preferences.java
@@ -351,7 +351,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
}
}
- private long getLastUpdateCheck() {
+ public long getLastUpdateCheck() {
return preferences.getLong(PREF_LAST_UPDATE_CHECK, DEFAULT_LAST_UPDATE_CHECK);
}
diff --git a/app/src/main/java/org/fdroid/fdroid/UpdateService.java b/app/src/main/java/org/fdroid/fdroid/UpdateService.java
index d7331603b..afde25a3d 100644
--- a/app/src/main/java/org/fdroid/fdroid/UpdateService.java
+++ b/app/src/main/java/org/fdroid/fdroid/UpdateService.java
@@ -187,6 +187,7 @@ public class UpdateService extends JobIntentService {
ComponentName componentName = new ComponentName(context, UpdateJobService.class);
JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, componentName)
.setRequiresDeviceIdle(true)
+ .setPersisted(true)
.setPeriodic(interval);
if (Build.VERSION.SDK_INT >= 26) {
builder.setRequiresBatteryNotLow(true)
diff --git a/app/src/main/java/org/fdroid/fdroid/receiver/StartupReceiver.java b/app/src/main/java/org/fdroid/fdroid/receiver/StartupReceiver.java
index 362c85dc5..e91b1025a 100644
--- a/app/src/main/java/org/fdroid/fdroid/receiver/StartupReceiver.java
+++ b/app/src/main/java/org/fdroid/fdroid/receiver/StartupReceiver.java
@@ -21,6 +21,7 @@ package org.fdroid.fdroid.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.util.Log;
import org.fdroid.fdroid.UpdateService;
import org.fdroid.fdroid.Utils;
@@ -31,6 +32,7 @@ public class StartupReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
+ Log.e(TAG, "Received ACTION_BOOT_COMPLETED intent, scheduling update!!!");
UpdateService.schedule(ctx);
} else {
Utils.debugLog(TAG, "received unsupported Intent " + intent);
diff --git a/app/src/main/java/org/fdroid/fdroid/views/repos/ManageReposActivity.java b/app/src/main/java/org/fdroid/fdroid/views/repos/ManageReposActivity.java
index 6349c0bb0..8d0ffe420 100644
--- a/app/src/main/java/org/fdroid/fdroid/views/repos/ManageReposActivity.java
+++ b/app/src/main/java/org/fdroid/fdroid/views/repos/ManageReposActivity.java
@@ -24,6 +24,7 @@ import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.UserManager;
+import android.text.format.DateUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
@@ -45,6 +46,7 @@ import com.google.android.material.snackbar.Snackbar;
import org.fdroid.database.Repository;
import org.fdroid.fdroid.AppUpdateStatusManager;
import org.fdroid.fdroid.FDroidApp;
+import org.fdroid.fdroid.Preferences;
import org.fdroid.fdroid.R;
import org.fdroid.fdroid.UpdateService;
import org.fdroid.fdroid.Utils;
@@ -126,6 +128,12 @@ public class ManageReposActivity extends AppCompatActivity implements RepoAdapte
MaterialToolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ long lastUpdate = Preferences.get().getLastUpdateCheck();
+ CharSequence lastUpdateStr = lastUpdate < 0 ?
+ getString(R.string.repositories_last_update_never) :
+ DateUtils.getRelativeTimeSpanString(lastUpdate, System.currentTimeMillis(),
+ DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_ALL);
+ getSupportActionBar().setSubtitle(getString(R.string.repositories_last_update, lastUpdateStr));
findViewById(R.id.fab).setOnClickListener(view -> {
Intent i = new Intent(this, AddRepoActivity.class);
startActivity(i);
diff --git a/app/src/main/res/layout/repo_list_activity.xml b/app/src/main/res/layout/repo_list_activity.xml
index 336228110..07097c934 100644
--- a/app/src/main/res/layout/repo_list_activity.xml
+++ b/app/src/main/res/layout/repo_list_activity.xml
@@ -16,8 +16,11 @@
android:id="@+id/toolbar"
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface"
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- app:title="@string/menu_manage" />
+ android:layout_height="wrap_content"
+ android:minHeight="?attr/actionBarSize"
+ app:title="@string/menu_manage"
+ app:subtitleTextAppearance="@style/TextAppearance.AppCompat.Small"
+ tools:subtitle="@string/repo_last_update" />
diff --git a/app/src/main/res/menu/repo_list.xml b/app/src/main/res/menu/repo_list.xml
index 4c2b7b62e..4a51a5e11 100644
--- a/app/src/main/res/menu/repo_list.xml
+++ b/app/src/main/res/menu/repo_list.xml
@@ -6,7 +6,7 @@
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 85fb2e42a..d998ef4d6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -232,6 +232,8 @@ This often occurs with apps installed via Google Play or other sources, if they
Unknown sources can\'t be added by this user, that includes new repos
Repositories
+ Last Update: %s
+ never
Add additional sources of apps
Settings