parent
a5c65f7b30
commit
92f8678b3d
@ -13,6 +13,8 @@
|
||||
<string name="cache_downloaded">App cache</string>
|
||||
<string name="cache_downloaded_on">Keep downloaded .apk files on device</string>
|
||||
<string name="updates">Updates</string>
|
||||
<string name="updates_summary">Get updates newer than suggested version</string>
|
||||
<string name="beta_updates">Beta updates</string>
|
||||
<string name="other">Other</string>
|
||||
<string name="last_update_check">Last repo scan: %s</string>
|
||||
<string name="never">never</string>
|
||||
|
@ -78,6 +78,11 @@
|
||||
<CheckBoxPreference android:title="@string/cache_downloaded"
|
||||
android:defaultValue="false"
|
||||
android:key="cacheDownloaded" />
|
||||
<CheckBoxPreference
|
||||
android:key="betaUpdates"
|
||||
android:title="@string/beta_updates"
|
||||
android:summary="@string/updates_summary"
|
||||
android:defaultValue="false" />
|
||||
<CheckBoxPreference android:title="@string/expert"
|
||||
android:defaultValue="false"
|
||||
android:key="expert" />
|
||||
|
@ -182,6 +182,14 @@ public class FDroidApp extends Application {
|
||||
}
|
||||
});
|
||||
|
||||
final Context context = this;
|
||||
Preferences.get().registerBetaUpdatesChangeListener(new Preferences.ChangeListener() {
|
||||
@Override
|
||||
public void onPreferenceChange() {
|
||||
AppProvider.Helper.calcDetailsFromIndex(context);
|
||||
}
|
||||
});
|
||||
|
||||
// Clear cached apk files. We used to just remove them after they'd
|
||||
// been installed, but this causes problems for proprietary gapps
|
||||
// users since the introduction of verification (on pre-4.2 Android),
|
||||
|
@ -47,6 +47,7 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
|
||||
public static final String PREF_COMPACT_LAYOUT = "compactlayout";
|
||||
public static final String PREF_IGN_TOUCH = "ignoreTouchscreen";
|
||||
public static final String PREF_CACHE_APK = "cacheDownloaded";
|
||||
public static final String PREF_BETA_UPDATES = "betaUpdates";
|
||||
public static final String PREF_EXPERT = "expert";
|
||||
public static final String PREF_UPD_LAST = "lastUpdateCheck";
|
||||
public static final String PREF_SYSTEM_INSTALLER = "systemInstaller";
|
||||
@ -68,6 +69,7 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
|
||||
private static final boolean DEFAULT_SYSTEM_INSTALLER = false;
|
||||
private static final boolean DEFAULT_LOCAL_REPO_BONJOUR = true;
|
||||
private static final boolean DEFAULT_CACHE_APK = false;
|
||||
private static final boolean DEFAULT_BETA_UPDATES = false;
|
||||
private static final boolean DEFAULT_LOCAL_REPO_HTTPS = false;
|
||||
private static final boolean DEFAULT_INCOMP_VER = false;
|
||||
private static final boolean DEFAULT_EXPERT = false;
|
||||
@ -90,6 +92,7 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
|
||||
private final List<ChangeListener> localRepoBonjourListeners = new ArrayList<>();
|
||||
private final List<ChangeListener> localRepoNameListeners = new ArrayList<>();
|
||||
private final List<ChangeListener> localRepoHttpsListeners = new ArrayList<>();
|
||||
private final List<ChangeListener> betaUpdatesListeners = new ArrayList<>();
|
||||
|
||||
private boolean isInitialized(String key) {
|
||||
return initialized.containsKey(key) && initialized.get(key);
|
||||
@ -135,6 +138,10 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
|
||||
return preferences.getBoolean(PREF_CACHE_APK, DEFAULT_CACHE_APK);
|
||||
}
|
||||
|
||||
public boolean getBetaUpdates() {
|
||||
return preferences.getBoolean(PREF_BETA_UPDATES, DEFAULT_BETA_UPDATES);
|
||||
}
|
||||
|
||||
public boolean showIncompatibleVersions() {
|
||||
return preferences.getBoolean(PREF_INCOMP_VER, DEFAULT_INCOMP_VER);
|
||||
}
|
||||
@ -241,6 +248,14 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
|
||||
filterAppsRequiringRootListeners.remove(listener);
|
||||
}
|
||||
|
||||
public void registerBetaUpdatesChangeListener(ChangeListener listener) {
|
||||
betaUpdatesListeners.add(listener);
|
||||
}
|
||||
|
||||
public void unregisterBetaUpdatesChangeListener(ChangeListener listener) {
|
||||
betaUpdatesListeners.remove(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
@ -278,6 +293,10 @@ public class Preferences implements SharedPreferences.OnSharedPreferenceChangeLi
|
||||
for (ChangeListener listener : localRepoHttpsListeners) {
|
||||
listener.onPreferenceChange();
|
||||
}
|
||||
case PREF_BETA_UPDATES:
|
||||
for (ChangeListener listener : betaUpdatesListeners) {
|
||||
listener.onPreferenceChange();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -833,6 +833,8 @@ public class AppProvider extends FDroidProvider {
|
||||
final String apk = DBHelper.TABLE_APK;
|
||||
final String app = DBHelper.TABLE_APP;
|
||||
|
||||
final boolean betaUpdates = Preferences.get().getBetaUpdates();
|
||||
String restrictToStable = betaUpdates ? "" : ( apk + ".vercode <= " + app + ".upstreamVercode AND " );
|
||||
String updateSql =
|
||||
"UPDATE " + app +
|
||||
" SET suggestedVercode = ( " +
|
||||
@ -840,7 +842,7 @@ public class AppProvider extends FDroidProvider {
|
||||
" FROM " + apk +
|
||||
" WHERE " +
|
||||
app + ".id = " + apk + ".id AND " +
|
||||
apk + ".vercode <= " + app + ".upstreamVercode AND " +
|
||||
restrictToStable +
|
||||
" ( " + app + ".compatible = 0 OR " + apk + ".compatible = 1 ) ) " +
|
||||
" WHERE upstreamVercode > 0 ";
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user