fix: PrefSwitch is reset to false when app exit

This commit is contained in:
hyb1996
2018-01-23 14:23:09 +08:00
parent af0dbcefb7
commit bb6d44e696
7 changed files with 243 additions and 5 deletions

View File

@@ -70,10 +70,12 @@ public class DrawerMenuItemViewHolder extends BindableViewHolder<DrawerMenuItem>
}
mSwitchCompat.setVisibility(VISIBLE);
int prefKey = item.getPrefKey();
if (prefKey != 0) {
if(prefKey == 0){
mSwitchCompat.setChecked(item.isChecked());
mSwitchCompat.setPrefKey(null);
}else {
mSwitchCompat.setPrefKey(itemView.getResources().getString(prefKey));
}
mSwitchCompat.setChecked(item.isChecked());
}
private void onClick() {

View File

@@ -69,6 +69,9 @@ public class PrefSwitch extends SwitchCompat implements SharedPreferences.OnShar
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext());
mSharedPreferences.registerOnSharedPreferenceChangeListener(this);
}
if(mPrefKey != null){
setChecked(mSharedPreferences.getBoolean(mPrefKey, mDefaultChecked), false);
}
}
@Override

View File

@@ -40,7 +40,7 @@ public class SwitchCompat extends android.support.v7.widget.SwitchCompat {
public void setChecked(boolean checked, boolean notify) {
mIgnoreCheckedChange = !notify;
setChecked(checked);
super.setChecked(checked);
mIgnoreCheckedChange = false;
}