diff --git a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java index 031f6d588..0467b2980 100644 --- a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java +++ b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java @@ -285,6 +285,15 @@ public class FDroidApp extends Application { curTheme = Preferences.get().getTheme(); Preferences.get().configureProxy(); + // bug specific to exactly 5.0 makes it only work with the old index + // which includes an ugly, hacky workaround + // https://gitlab.com/fdroid/fdroidclient/issues/1014 + if (Build.VERSION.SDK_INT == 21) { + Preferences p = Preferences.get(); + p.setExpertMode(true); + p.setForceOldIndex(true); + } + InstalledAppProviderService.compareToPackageManager(this); AppUpdateStatusService.scanDownloadedApks(this); diff --git a/app/src/main/java/org/fdroid/fdroid/Preferences.java b/app/src/main/java/org/fdroid/fdroid/Preferences.java index 60d6f7964..3d6b614e1 100644 --- a/app/src/main/java/org/fdroid/fdroid/Preferences.java +++ b/app/src/main/java/org/fdroid/fdroid/Preferences.java @@ -120,6 +120,10 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh return preferences.getBoolean(PREF_FORCE_OLD_INDEX, DEFAULT_FORCE_OLD_INDEX); } + public void setForceOldIndex(boolean flag) { + preferences.edit().putBoolean(PREF_FORCE_OLD_INDEX, flag).apply(); + } + /** * Whether to use the Privileged Installer, based on if it is installed. Only the disabled * state is stored as a preference since the enabled state is based entirely on the presence @@ -225,6 +229,10 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh return preferences.getBoolean(PREF_EXPERT, DEFAULT_EXPERT); } + public void setExpertMode(boolean flag) { + preferences.edit().putBoolean(PREF_EXPERT, flag).apply(); + } + public Theme getTheme() { return Theme.valueOf(preferences.getString(Preferences.PREF_THEME, Preferences.DEFAULT_THEME)); }