diff --git a/app/src/main/java/org/fdroid/fdroid/views/updates/UpdatesAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/updates/UpdatesAdapter.java index 5b7d044b4..2e8cb55b9 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/updates/UpdatesAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/updates/UpdatesAdapter.java @@ -5,12 +5,14 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.SharedPreferences; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.RecyclerView; import com.hannesdorfmann.adapterdelegates4.AdapterDelegatesManager; @@ -74,19 +76,28 @@ public class UpdatesAdapter extends RecyclerView.Adapter items = new ArrayList<>(); private final List appsToShowStatus = new ArrayList<>(); private final List updateableApps = new ArrayList<>(); private final List knownVulnApps = new ArrayList<>(); - // This is lost on configuration changes e.g. rotating the screen. - private boolean showAllUpdateableApps = false; + private static final String PREF_SHOW_ALL_UPDATEABLE_APPS = "showAllUpdateableApps"; + private static final boolean DEFAULT_SHOW_ALL_UPDATEABLE_APPS = false; + + private boolean showAllUpdateableApps; + @Nullable private Disposable disposable; UpdatesAdapter(AppCompatActivity activity) { this.activity = activity; + this.preferences = PreferenceManager.getDefaultSharedPreferences(activity); + + showAllUpdateableApps = preferences.getBoolean( + PREF_SHOW_ALL_UPDATEABLE_APPS, + DEFAULT_SHOW_ALL_UPDATEABLE_APPS); delegatesManager.addDelegate(new AppStatus.Delegate(activity)) .addDelegate(new UpdateableApp.Delegate(activity)) @@ -111,6 +122,7 @@ public class UpdatesAdapter extends RecyclerView.Adapter