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