OSDN Git Service

Hide LCD density preference from secondary users
authorLuK1337 <priv.luk@gmail.com>
Sat, 19 Sep 2015 17:00:52 +0000 (19:00 +0200)
committerDanesh M <daneshm90@gmail.com>
Thu, 26 Nov 2015 01:00:50 +0000 (17:00 -0800)
Change-Id: I44bcb804962748a254719cd6b7e0403a16fbc796

src/com/android/settings/DisplaySettings.java

index 48a991b..9758848 100644 (file)
@@ -175,37 +175,41 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
 
         mLcdDensityPreference = (ListPreference) findPreference(KEY_LCD_DENSITY);
         if (mLcdDensityPreference != null) {
-            int defaultDensity = getDefaultDensity();
-            int currentDensity = getCurrentDensity();
-            if (currentDensity < 10 || currentDensity >= 1000) {
-                // Unsupported value, force default
-                currentDensity = defaultDensity;
-            }
+            if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
+                getPreferenceScreen().removePreference(mLcdDensityPreference);
+            } else {
+                int defaultDensity = getDefaultDensity();
+                int currentDensity = getCurrentDensity();
+                if (currentDensity < 10 || currentDensity >= 1000) {
+                    // Unsupported value, force default
+                    currentDensity = defaultDensity;
+                }
 
-            int factor = defaultDensity >= 480 ? 40 : 20;
-            int minimumDensity = defaultDensity - 4 * factor;
-            int currentIndex = -1;
-            String[] densityEntries = new String[7];
-            String[] densityValues = new String[7];
-            for (int idx = 0; idx < 7; ++idx) {
-                int val = minimumDensity + factor * idx;
-                int valueFormatResId = val == defaultDensity
-                        ? R.string.lcd_density_default_value_format
-                        : R.string.lcd_density_value_format;
-
-                densityEntries[idx] = getString(valueFormatResId, val);
-                densityValues[idx] = Integer.toString(val);
-                if (currentDensity == val) {
-                    currentIndex = idx;
+                int factor = defaultDensity >= 480 ? 40 : 20;
+                int minimumDensity = defaultDensity - 4 * factor;
+                int currentIndex = -1;
+                String[] densityEntries = new String[7];
+                String[] densityValues = new String[7];
+                for (int idx = 0; idx < 7; ++idx) {
+                    int val = minimumDensity + factor * idx;
+                    int valueFormatResId = val == defaultDensity
+                            ? R.string.lcd_density_default_value_format
+                            : R.string.lcd_density_value_format;
+
+                    densityEntries[idx] = getString(valueFormatResId, val);
+                    densityValues[idx] = Integer.toString(val);
+                    if (currentDensity == val) {
+                        currentIndex = idx;
+                    }
                 }
+                mLcdDensityPreference.setEntries(densityEntries);
+                mLcdDensityPreference.setEntryValues(densityValues);
+                if (currentIndex != -1) {
+                    mLcdDensityPreference.setValueIndex(currentIndex);
+                }
+                mLcdDensityPreference.setOnPreferenceChangeListener(this);
+                updateLcdDensityPreferenceDescription(currentDensity);
             }
-            mLcdDensityPreference.setEntries(densityEntries);
-            mLcdDensityPreference.setEntryValues(densityValues);
-            if (currentIndex != -1) {
-                mLcdDensityPreference.setValueIndex(currentIndex);
-            }
-            mLcdDensityPreference.setOnPreferenceChangeListener(this);
-            updateLcdDensityPreferenceDescription(currentDensity);
         }
 
         mFontSizePref = (FontDialogPreference) findPreference(KEY_FONT_SIZE);