Show more settings and add restrictions/dialogs for secondary users
Bug: 7213029 crash in About>Status
Bug: 7212495 hide System updates for second user
Bug: 7212230 nickname editor should select the text
Bug: 7160487 TTS settings
Bug: 7129411 Settings needs visibility changes for secondary users
Change-Id: Ia2d1229c08b392edfa6b671fce4a382410405b14
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index e7e1ea6..a698538 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -19,6 +19,7 @@
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
import android.app.ActivityManagerNative;
+import android.app.Dialog;
import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
@@ -35,9 +36,11 @@
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
+import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceScreen;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
+import android.util.AttributeSet;
import android.util.Log;
import com.android.internal.view.RotationPolicy;
@@ -46,7 +49,7 @@
import java.util.ArrayList;
public class DisplaySettings extends SettingsPreferenceFragment implements
- Preference.OnPreferenceChangeListener {
+ Preference.OnPreferenceChangeListener, OnPreferenceClickListener {
private static final String TAG = "DisplaySettings";
/** If there is no setting in the provider, use this. */
@@ -59,10 +62,12 @@
private static final String KEY_SCREEN_SAVER = "screensaver";
private static final String KEY_WIFI_DISPLAY = "wifi_display";
+ private static final int DLG_GLOBAL_CHANGE_WARNING = 1;
+
private DisplayManager mDisplayManager;
private CheckBoxPreference mAccelerometer;
- private ListPreference mFontSizePref;
+ private WarnedListPreference mFontSizePref;
private CheckBoxPreference mNotificationPulse;
private final Configuration mCurConfig = new Configuration();
@@ -111,8 +116,9 @@
disableUnusableTimeouts(mScreenTimeoutPreference);
updateTimeoutPreferenceDescription(currentTimeout);
- mFontSizePref = (ListPreference) findPreference(KEY_FONT_SIZE);
+ mFontSizePref = (WarnedListPreference) findPreference(KEY_FONT_SIZE);
mFontSizePref.setOnPreferenceChangeListener(this);
+ mFontSizePref.setOnPreferenceClickListener(this);
mNotificationPulse = (CheckBoxPreference) findPreference(KEY_NOTIFICATION_PULSE);
if (mNotificationPulse != null
&& getResources().getBoolean(
@@ -256,6 +262,20 @@
}
}
+ @Override
+ public Dialog onCreateDialog(int dialogId) {
+ if (dialogId == DLG_GLOBAL_CHANGE_WARNING) {
+ return Utils.buildGlobalChangeWarningDialog(getActivity(),
+ R.string.global_font_change_title,
+ new Runnable() {
+ public void run() {
+ mFontSizePref.click();
+ }
+ });
+ }
+ return null;
+ }
+
private void updateState() {
updateAccelerometerRotationCheckbox();
readFontSizePreference(mFontSizePref);
@@ -345,4 +365,17 @@
}
}
};
+
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ if (preference == mFontSizePref) {
+ if (Utils.hasMultipleUsers(getActivity())) {
+ showDialog(DLG_GLOBAL_CHANGE_WARNING);
+ return true;
+ } else {
+ mFontSizePref.click();
+ }
+ }
+ return false;
+ }
}