Live updates
This commit is contained in:
parent
54eaa273b6
commit
da856786ba
@ -0,0 +1,77 @@
|
||||
package org.fdroid.fdroid.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v7.preference.PreferenceViewHolder;
|
||||
import android.support.v7.preference.SeekBarPreference;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.SeekBar;
|
||||
import org.fdroid.fdroid.R;
|
||||
|
||||
public class LiveSeekBarPreference extends SeekBarPreference {
|
||||
private Runnable progressChangedListener;
|
||||
private boolean trackingTouch;
|
||||
private int value = -1;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public LiveSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public LiveSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public LiveSeekBarPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public LiveSeekBarPreference(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(PreferenceViewHolder holder) {
|
||||
super.onBindViewHolder(holder);
|
||||
|
||||
SeekBar seekbar = holder.itemView.findViewById(R.id.seekbar);
|
||||
seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
||||
@Override
|
||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
value = progress;
|
||||
if (progressChangedListener != null) {
|
||||
progressChangedListener.run();
|
||||
}
|
||||
value = progress;
|
||||
if (fromUser && !trackingTouch) {
|
||||
persistInt(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
trackingTouch = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
trackingTouch = false;
|
||||
persistInt(value);
|
||||
}
|
||||
});
|
||||
seekbar.setProgress(value);
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
if (value == -1) {
|
||||
value = super.getValue();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setProgressChangedListener(Runnable listener) {
|
||||
progressChangedListener = listener;
|
||||
}
|
||||
}
|
@ -53,6 +53,7 @@ import org.fdroid.fdroid.Utils;
|
||||
import org.fdroid.fdroid.data.RepoProvider;
|
||||
import org.fdroid.fdroid.installer.InstallHistoryService;
|
||||
import org.fdroid.fdroid.installer.PrivilegedInstaller;
|
||||
import org.fdroid.fdroid.views.LiveSeekBarPreference;
|
||||
|
||||
public class PreferencesFragment extends PreferenceFragment
|
||||
implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
@ -90,9 +91,9 @@ public class PreferencesFragment extends PreferenceFragment
|
||||
|
||||
private static final int REQUEST_INSTALL_ORBOT = 0x1234;
|
||||
|
||||
private SeekBarPreference overWifiSeekBar;
|
||||
private SeekBarPreference overDataSeekBar;
|
||||
private SeekBarPreference updateIntervalSeekBar;
|
||||
private LiveSeekBarPreference overWifiSeekBar;
|
||||
private LiveSeekBarPreference overDataSeekBar;
|
||||
private LiveSeekBarPreference updateIntervalSeekBar;
|
||||
private SwitchPreference enableProxyCheckPref;
|
||||
private SwitchPreference useTorCheckPref;
|
||||
private Preference updateAutoDownloadPref;
|
||||
@ -113,12 +114,30 @@ public class PreferencesFragment extends PreferenceFragment
|
||||
updateAutoDownloadPref = findPreference(Preferences.PREF_AUTO_DOWNLOAD_INSTALL_UPDATES);
|
||||
updatePrivilegedExtensionPref = findPreference(Preferences.PREF_UNINSTALL_PRIVILEGED_APP);
|
||||
|
||||
overWifiSeekBar = (SeekBarPreference) findPreference(Preferences.PREF_OVER_WIFI);
|
||||
overWifiSeekBar = (LiveSeekBarPreference) findPreference(Preferences.PREF_OVER_WIFI);
|
||||
overWifiPrevious = overWifiSeekBar.getValue();
|
||||
overDataSeekBar = (SeekBarPreference) findPreference(Preferences.PREF_OVER_DATA);
|
||||
overWifiSeekBar.setProgressChangedListener(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateSummary(overWifiSeekBar.getKey(), false);
|
||||
}
|
||||
});
|
||||
overDataSeekBar = (LiveSeekBarPreference) findPreference(Preferences.PREF_OVER_DATA);
|
||||
overDataPrevious = overDataSeekBar.getValue();
|
||||
updateIntervalSeekBar = (SeekBarPreference) findPreference(Preferences.PREF_UPDATE_INTERVAL);
|
||||
overDataSeekBar.setProgressChangedListener(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateSummary(overDataSeekBar.getKey(), false);
|
||||
}
|
||||
});
|
||||
updateIntervalSeekBar = (LiveSeekBarPreference) findPreference(Preferences.PREF_UPDATE_INTERVAL);
|
||||
updateIntervalPrevious = updateIntervalSeekBar.getValue();
|
||||
updateIntervalSeekBar.setProgressChangedListener(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateSummary(updateIntervalSeekBar.getKey(), false);
|
||||
}
|
||||
});
|
||||
|
||||
ListPreference languagePref = (ListPreference) findPreference(Preferences.PREF_LANGUAGE);
|
||||
if (Build.VERSION.SDK_INT >= 24) {
|
||||
|
@ -27,11 +27,11 @@
|
||||
</android.support.v7.preference.PreferenceCategory>
|
||||
|
||||
<android.support.v7.preference.PreferenceCategory android:title="@string/updates">
|
||||
<android.support.v7.preference.SeekBarPreference
|
||||
<org.fdroid.fdroid.views.LiveSeekBarPreference
|
||||
android:key="overWifi"
|
||||
android:title="@string/over_wifi"
|
||||
android:layout="@layout/preference_seekbar"/>
|
||||
<android.support.v7.preference.SeekBarPreference
|
||||
<org.fdroid.fdroid.views.LiveSeekBarPreference
|
||||
android:key="overData"
|
||||
android:title="@string/over_data"
|
||||
android:layout="@layout/preference_seekbar"/>
|
||||
@ -40,7 +40,7 @@
|
||||
android:summary="@string/update_auto_download_summary"
|
||||
android:defaultValue="false"
|
||||
android:key="updateAutoDownload"/>
|
||||
<android.support.v7.preference.SeekBarPreference
|
||||
<org.fdroid.fdroid.views.LiveSeekBarPreference
|
||||
android:key="updateIntervalSeekBarPosition"
|
||||
android:title="@string/update_interval"
|
||||
android:layout="@layout/preference_seekbar"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user