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.data.RepoProvider;
|
||||||
import org.fdroid.fdroid.installer.InstallHistoryService;
|
import org.fdroid.fdroid.installer.InstallHistoryService;
|
||||||
import org.fdroid.fdroid.installer.PrivilegedInstaller;
|
import org.fdroid.fdroid.installer.PrivilegedInstaller;
|
||||||
|
import org.fdroid.fdroid.views.LiveSeekBarPreference;
|
||||||
|
|
||||||
public class PreferencesFragment extends PreferenceFragment
|
public class PreferencesFragment extends PreferenceFragment
|
||||||
implements SharedPreferences.OnSharedPreferenceChangeListener {
|
implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
@ -90,9 +91,9 @@ public class PreferencesFragment extends PreferenceFragment
|
|||||||
|
|
||||||
private static final int REQUEST_INSTALL_ORBOT = 0x1234;
|
private static final int REQUEST_INSTALL_ORBOT = 0x1234;
|
||||||
|
|
||||||
private SeekBarPreference overWifiSeekBar;
|
private LiveSeekBarPreference overWifiSeekBar;
|
||||||
private SeekBarPreference overDataSeekBar;
|
private LiveSeekBarPreference overDataSeekBar;
|
||||||
private SeekBarPreference updateIntervalSeekBar;
|
private LiveSeekBarPreference updateIntervalSeekBar;
|
||||||
private SwitchPreference enableProxyCheckPref;
|
private SwitchPreference enableProxyCheckPref;
|
||||||
private SwitchPreference useTorCheckPref;
|
private SwitchPreference useTorCheckPref;
|
||||||
private Preference updateAutoDownloadPref;
|
private Preference updateAutoDownloadPref;
|
||||||
@ -113,12 +114,30 @@ public class PreferencesFragment extends PreferenceFragment
|
|||||||
updateAutoDownloadPref = findPreference(Preferences.PREF_AUTO_DOWNLOAD_INSTALL_UPDATES);
|
updateAutoDownloadPref = findPreference(Preferences.PREF_AUTO_DOWNLOAD_INSTALL_UPDATES);
|
||||||
updatePrivilegedExtensionPref = findPreference(Preferences.PREF_UNINSTALL_PRIVILEGED_APP);
|
updatePrivilegedExtensionPref = findPreference(Preferences.PREF_UNINSTALL_PRIVILEGED_APP);
|
||||||
|
|
||||||
overWifiSeekBar = (SeekBarPreference) findPreference(Preferences.PREF_OVER_WIFI);
|
overWifiSeekBar = (LiveSeekBarPreference) findPreference(Preferences.PREF_OVER_WIFI);
|
||||||
overWifiPrevious = overWifiSeekBar.getValue();
|
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();
|
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();
|
updateIntervalPrevious = updateIntervalSeekBar.getValue();
|
||||||
|
updateIntervalSeekBar.setProgressChangedListener(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
updateSummary(updateIntervalSeekBar.getKey(), false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
ListPreference languagePref = (ListPreference) findPreference(Preferences.PREF_LANGUAGE);
|
ListPreference languagePref = (ListPreference) findPreference(Preferences.PREF_LANGUAGE);
|
||||||
if (Build.VERSION.SDK_INT >= 24) {
|
if (Build.VERSION.SDK_INT >= 24) {
|
||||||
|
@ -27,11 +27,11 @@
|
|||||||
</android.support.v7.preference.PreferenceCategory>
|
</android.support.v7.preference.PreferenceCategory>
|
||||||
|
|
||||||
<android.support.v7.preference.PreferenceCategory android:title="@string/updates">
|
<android.support.v7.preference.PreferenceCategory android:title="@string/updates">
|
||||||
<android.support.v7.preference.SeekBarPreference
|
<org.fdroid.fdroid.views.LiveSeekBarPreference
|
||||||
android:key="overWifi"
|
android:key="overWifi"
|
||||||
android:title="@string/over_wifi"
|
android:title="@string/over_wifi"
|
||||||
android:layout="@layout/preference_seekbar"/>
|
android:layout="@layout/preference_seekbar"/>
|
||||||
<android.support.v7.preference.SeekBarPreference
|
<org.fdroid.fdroid.views.LiveSeekBarPreference
|
||||||
android:key="overData"
|
android:key="overData"
|
||||||
android:title="@string/over_data"
|
android:title="@string/over_data"
|
||||||
android:layout="@layout/preference_seekbar"/>
|
android:layout="@layout/preference_seekbar"/>
|
||||||
@ -40,7 +40,7 @@
|
|||||||
android:summary="@string/update_auto_download_summary"
|
android:summary="@string/update_auto_download_summary"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="updateAutoDownload"/>
|
android:key="updateAutoDownload"/>
|
||||||
<android.support.v7.preference.SeekBarPreference
|
<org.fdroid.fdroid.views.LiveSeekBarPreference
|
||||||
android:key="updateIntervalSeekBarPosition"
|
android:key="updateIntervalSeekBarPosition"
|
||||||
android:title="@string/update_interval"
|
android:title="@string/update_interval"
|
||||||
android:layout="@layout/preference_seekbar"/>
|
android:layout="@layout/preference_seekbar"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user