Fix date and time and apn editing

Bug: 27219773
Bug: 25822074
Change-Id: Iec5d56846bf5d3a875180e8907529518949a0d7e
This commit is contained in:
Jason Monk
2016-02-17 17:27:23 -05:00
parent a563c75537
commit d2e75e0528
4 changed files with 30 additions and 35 deletions

View File

@@ -101,6 +101,10 @@
<item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item> <item name="android:widgetLayout">@layout/preference_widget_sync_toggle</item>
</style> </style>
<style name="EditTextPreference" parent="@*android:style/Preference.Material.DialogPreference.EditTextPreference">
<item name="android:dialogLayout">@layout/preference_dialog_edittext</item>
</style>
<style name="PreferenceHeaderPanelSinglePane"> <style name="PreferenceHeaderPanelSinglePane">
<item name="android:layout_marginStart">0dp</item> <item name="android:layout_marginStart">0dp</item>
<item name="android:layout_marginEnd">0dp</item> <item name="android:layout_marginEnd">0dp</item>

View File

@@ -102,6 +102,7 @@
<style name="PreferenceTheme" parent="@android:style/Theme.DeviceDefault.Settings"> <style name="PreferenceTheme" parent="@android:style/Theme.DeviceDefault.Settings">
<item name="@android:preferenceStyle">@style/Preference</item> <item name="@android:preferenceStyle">@style/Preference</item>
<item name="@android:editTextPreferenceStyle">@style/EditTextPreference</item>
<item name="@dropdownPreferenceStyle">@style/Preference.DropDown.Material</item> <item name="@dropdownPreferenceStyle">@style/Preference.DropDown.Material</item>
<item name="@android:preferenceFragmentStyle">@style/PreferenceFragmentStyle</item> <item name="@android:preferenceFragmentStyle">@style/PreferenceFragmentStyle</item>
<item name="apnPreferenceStyle">@style/ApnPreference</item> <item name="apnPreferenceStyle">@style/ApnPreference</item>

View File

@@ -21,7 +21,6 @@ import android.app.Dialog;
import android.content.ContentUris; import android.content.ContentUris;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
@@ -40,15 +39,13 @@ import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
public class ApnEditor extends InstrumentedPreferenceActivity public class ApnEditor extends InstrumentedPreferenceActivity
implements SharedPreferences.OnSharedPreferenceChangeListener, implements Preference.OnPreferenceChangeListener {
Preference.OnPreferenceChangeListener {
private final static String TAG = ApnEditor.class.getSimpleName(); private final static String TAG = ApnEditor.class.getSimpleName();
@@ -250,6 +247,10 @@ public class ApnEditor extends InstrumentedPreferenceActivity
mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
for (int i = 0; i < getPreferenceScreen().getPreferenceCount(); i++) {
getPreferenceScreen().getPreference(i).setOnPreferenceChangeListener(this);
}
fillUi(); fillUi();
} }
@@ -261,14 +262,10 @@ public class ApnEditor extends InstrumentedPreferenceActivity
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
} }
@Override @Override
public void onPause() { public void onPause() {
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
super.onPause(); super.onPause();
} }
@@ -487,7 +484,7 @@ public class ApnEditor extends InstrumentedPreferenceActivity
int index = Integer.parseInt((String) newValue); int index = Integer.parseInt((String) newValue);
mAuthType.setValueIndex(index); mAuthType.setValueIndex(index);
String []values = mRes.getStringArray(R.array.apn_auth_entries); String[] values = mRes.getStringArray(R.array.apn_auth_entries);
mAuthType.setSummary(values[index]); mAuthType.setSummary(values[index]);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
return false; return false;
@@ -521,6 +518,13 @@ public class ApnEditor extends InstrumentedPreferenceActivity
mMvnoType.setValue((String) newValue); mMvnoType.setValue((String) newValue);
mMvnoType.setSummary(mvno); mMvnoType.setSummary(mvno);
} }
if (preference.equals(mPassword)) {
preference.setSummary(starify(newValue != null ? String.valueOf(newValue) : ""));
} else if (preference.equals(mCarrierEnabled) || preference.equals(mBearerMulti)) {
// do nothing
} else {
preference.setSummary(checkNull(newValue != null ? String.valueOf(newValue) : null));
}
return true; return true;
} }
@@ -765,16 +769,4 @@ public class ApnEditor extends InstrumentedPreferenceActivity
} }
} }
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Preference pref = findPreference(key);
if (pref != null) {
if (pref.equals(mPassword)){
pref.setSummary(starify(sharedPreferences.getString(key, "")));
} else if (pref.equals(mCarrierEnabled) || pref.equals(mBearerMulti)) {
// do nothing
} else {
pref.setSummary(checkNull(sharedPreferences.getString(key, "")));
}
}
}
} }

View File

@@ -19,9 +19,10 @@ package com.android.settings;
import android.app.Activity; import android.app.Activity;
import android.app.AlarmManager; import android.app.AlarmManager;
import android.app.DatePickerDialog; import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog; import android.app.Dialog;
import android.app.TimePickerDialog; import android.app.TimePickerDialog;
import android.app.admin.DevicePolicyManager; import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -33,10 +34,10 @@ import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException; import android.provider.Settings.SettingNotFoundException;
import android.support.v14.preference.SwitchPreference; import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import android.widget.DatePicker; import android.widget.DatePicker;
import android.widget.TimePicker; import android.widget.TimePicker;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.dashboard.SummaryLoader; import com.android.settings.dashboard.SummaryLoader;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
@@ -49,8 +50,7 @@ import java.util.Date;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
public class DateTimeSettings extends SettingsPreferenceFragment public class DateTimeSettings extends SettingsPreferenceFragment
implements OnSharedPreferenceChangeListener, implements OnTimeSetListener, OnDateSetListener, OnPreferenceChangeListener {
TimePickerDialog.OnTimeSetListener, DatePickerDialog.OnDateSetListener {
private static final String HOURS_12 = "12"; private static final String HOURS_12 = "12";
private static final String HOURS_24 = "24"; private static final String HOURS_24 = "24";
@@ -94,6 +94,7 @@ public class DateTimeSettings extends SettingsPreferenceFragment
boolean autoTimeZoneEnabled = getAutoState(Settings.Global.AUTO_TIME_ZONE); boolean autoTimeZoneEnabled = getAutoState(Settings.Global.AUTO_TIME_ZONE);
mAutoTimePref = (RestrictedSwitchPreference) findPreference(KEY_AUTO_TIME); mAutoTimePref = (RestrictedSwitchPreference) findPreference(KEY_AUTO_TIME);
mAutoTimePref.setOnPreferenceChangeListener(this);
EnforcedAdmin admin = RestrictedLockUtils.checkIfAutoTimeRequired(getActivity()); EnforcedAdmin admin = RestrictedLockUtils.checkIfAutoTimeRequired(getActivity());
mAutoTimePref.setDisabledByAdmin(admin); mAutoTimePref.setDisabledByAdmin(admin);
@@ -106,6 +107,7 @@ public class DateTimeSettings extends SettingsPreferenceFragment
// Settings.Global.AUTO_TIME to true. Note that this app listens to that change. // Settings.Global.AUTO_TIME to true. Note that this app listens to that change.
mAutoTimePref.setChecked(autoTimeEnabled); mAutoTimePref.setChecked(autoTimeEnabled);
mAutoTimeZonePref = (SwitchPreference) findPreference(KEY_AUTO_TIME_ZONE); mAutoTimeZonePref = (SwitchPreference) findPreference(KEY_AUTO_TIME_ZONE);
mAutoTimeZonePref.setOnPreferenceChangeListener(this);
// Override auto-timezone if it's a wifi-only device or if we're still in setup wizard. // Override auto-timezone if it's a wifi-only device or if we're still in setup wizard.
// TODO: Remove the wifiOnly test when auto-timezone is implemented based on wifi-location. // TODO: Remove the wifiOnly test when auto-timezone is implemented based on wifi-location.
if (Utils.isWifiOnly(getActivity()) || isFirstRun) { if (Utils.isWifiOnly(getActivity()) || isFirstRun) {
@@ -131,9 +133,6 @@ public class DateTimeSettings extends SettingsPreferenceFragment
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
((SwitchPreference)mTime24Pref).setChecked(is24Hour()); ((SwitchPreference)mTime24Pref).setChecked(is24Hour());
// Register for time ticks and other reasons for time change // Register for time ticks and other reasons for time change
@@ -150,8 +149,6 @@ public class DateTimeSettings extends SettingsPreferenceFragment
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
getActivity().unregisterReceiver(mIntentReceiver); getActivity().unregisterReceiver(mIntentReceiver);
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
} }
public void updateTimeAndDateDisplay(Context context) { public void updateTimeAndDateDisplay(Context context) {
@@ -190,19 +187,20 @@ public class DateTimeSettings extends SettingsPreferenceFragment
} }
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { public boolean onPreferenceChange(Preference preference, Object newValue) {
if (key.equals(KEY_AUTO_TIME)) { if (preference.getKey().equals(KEY_AUTO_TIME)) {
boolean autoEnabled = preferences.getBoolean(key, true); boolean autoEnabled = (Boolean) newValue;
Settings.Global.putInt(getContentResolver(), Settings.Global.AUTO_TIME, Settings.Global.putInt(getContentResolver(), Settings.Global.AUTO_TIME,
autoEnabled ? 1 : 0); autoEnabled ? 1 : 0);
mTimePref.setEnabled(!autoEnabled); mTimePref.setEnabled(!autoEnabled);
mDatePref.setEnabled(!autoEnabled); mDatePref.setEnabled(!autoEnabled);
} else if (key.equals(KEY_AUTO_TIME_ZONE)) { } else if (preference.getKey().equals(KEY_AUTO_TIME_ZONE)) {
boolean autoZoneEnabled = preferences.getBoolean(key, true); boolean autoZoneEnabled = (Boolean) newValue;
Settings.Global.putInt( Settings.Global.putInt(
getContentResolver(), Settings.Global.AUTO_TIME_ZONE, autoZoneEnabled ? 1 : 0); getContentResolver(), Settings.Global.AUTO_TIME_ZONE, autoZoneEnabled ? 1 : 0);
mTimeZone.setEnabled(!autoZoneEnabled); mTimeZone.setEnabled(!autoZoneEnabled);
} }
return true;
} }
@Override @Override