summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDvTonder <david.vantonder@gmail.com>2013-01-30 19:00:39 -0500
committerDvTonder <david.vantonder@gmail.com>2013-02-06 19:46:14 -0500
commit5dfca02b894866d3a71dd00ea3372ce3281ab2fe (patch)
treeb38fff3557af34c4a246f8d41b7a8e9b95645aff
parentb5dfbecbf627dfac19a3a84dedf23ac83edc2344 (diff)
downloadpackages_apps_Settings-5dfca02b894866d3a71dd00ea3372ce3281ab2fe.tar.gz
packages_apps_Settings-5dfca02b894866d3a71dd00ea3372ce3281ab2fe.tar.bz2
packages_apps_Settings-5dfca02b894866d3a71dd00ea3372ce3281ab2fe.zip
Settings: Allow non-primary user to access selected CM Settings
Specifically, Chronus and Notification light settings in System and Background in Lock screen settings Patch set 1 : Initial commit Patch set 2 : Enable Lock screen targets Patch set 3 : Enable Notification light settings Change-Id: Ie9d40649f60b7279c4a07e77543720cfee4a3002
-rw-r--r--src/com/android/settings/Settings.java4
-rw-r--r--src/com/android/settings/cyanogenmod/LockscreenInterface.java73
-rw-r--r--src/com/android/settings/cyanogenmod/SystemSettings.java105
3 files changed, 115 insertions, 67 deletions
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index b70d26e78..ad88aee9d 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -124,7 +124,9 @@ public class Settings extends PreferenceActivity
R.id.about_settings,
R.id.accessibility_settings,
R.id.interface_section,
- R.id.launcher_settings
+ R.id.launcher_settings,
+ R.id.lock_screen_settings,
+ R.id.system_settings
};
private SharedPreferences mDevelopmentPreferences;
diff --git a/src/com/android/settings/cyanogenmod/LockscreenInterface.java b/src/com/android/settings/cyanogenmod/LockscreenInterface.java
index d8e402c11..fc70dbfad 100644
--- a/src/com/android/settings/cyanogenmod/LockscreenInterface.java
+++ b/src/com/android/settings/cyanogenmod/LockscreenInterface.java
@@ -30,6 +30,7 @@ import android.graphics.Bitmap;
import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
+import android.os.UserHandle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
@@ -55,10 +56,11 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
private static final int LOCKSCREEN_BACKGROUND_CUSTOM_IMAGE = 1;
private static final int LOCKSCREEN_BACKGROUND_DEFAULT_WALLPAPER = 2;
- private static final String KEY_ALWAYS_BATTERY_PREF = "lockscreen_battery_status";
+ private static final String KEY_ALWAYS_BATTERY = "lockscreen_battery_status";
private static final String KEY_LOCKSCREEN_BUTTONS = "lockscreen_buttons";
private static final String KEY_LOCKSCREEN_MAXIMIZE_WIDGETS = "lockscreen_maximize_widgets";
- private static final String KEY_BACKGROUND_PREF = "lockscreen_background";
+ private static final String KEY_BACKGROUND = "lockscreen_background";
+ private static final String KEY_SCREEN_SECURITY = "screen_security";
private ListPreference mCustomBackground;
private ListPreference mBatteryStatus;
@@ -67,6 +69,8 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
private File mWallpaperImage;
private File mWallpaperTemporary;
+ private boolean mIsPrimary;
+
public boolean hasButtons() {
return !getResources().getBoolean(com.android.internal.R.bool.config_showNavigationBar);
}
@@ -77,25 +81,38 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
addPreferencesFromResource(R.xml.lockscreen_interface_settings);
- mBatteryStatus = (ListPreference) findPreference(KEY_ALWAYS_BATTERY_PREF);
- if (mBatteryStatus != null) {
- mBatteryStatus.setOnPreferenceChangeListener(this);
- }
+ // Determine which user is logged in
+ mIsPrimary = UserHandle.myUserId() == UserHandle.USER_OWNER;
+ if (mIsPrimary) {
+ // Its the primary user, show all the settings
+ mBatteryStatus = (ListPreference) findPreference(KEY_ALWAYS_BATTERY);
+ if (mBatteryStatus != null) {
+ mBatteryStatus.setOnPreferenceChangeListener(this);
+ }
- mMaximizeWidgets = (CheckBoxPreference)findPreference(KEY_LOCKSCREEN_MAXIMIZE_WIDGETS);
- if (!Utils.isPhone(getActivity())) {
- getPreferenceScreen().removePreference(mMaximizeWidgets);
- mMaximizeWidgets = null;
- } else {
- mMaximizeWidgets.setOnPreferenceChangeListener(this);
- }
+ mMaximizeWidgets = (CheckBoxPreference)findPreference(KEY_LOCKSCREEN_MAXIMIZE_WIDGETS);
+ if (!Utils.isPhone(getActivity())) {
+ getPreferenceScreen().removePreference(mMaximizeWidgets);
+ mMaximizeWidgets = null;
+ } else {
+ mMaximizeWidgets.setOnPreferenceChangeListener(this);
+ }
- PreferenceScreen lockscreenButtons = (PreferenceScreen) findPreference(KEY_LOCKSCREEN_BUTTONS);
- if (!hasButtons()) {
- getPreferenceScreen().removePreference(lockscreenButtons);
+ PreferenceScreen lockscreenButtons = (PreferenceScreen) findPreference(KEY_LOCKSCREEN_BUTTONS);
+ if (!hasButtons()) {
+ getPreferenceScreen().removePreference(lockscreenButtons);
+ }
+ } else {
+ // Secondary user is logged in, remove all primary user specific preferences
+ PreferenceScreen prefScreen = getPreferenceScreen();
+ prefScreen.removePreference(findPreference(KEY_SCREEN_SECURITY));
+ prefScreen.removePreference(findPreference(KEY_ALWAYS_BATTERY));
+ prefScreen.removePreference(findPreference(KEY_LOCKSCREEN_BUTTONS));
+ prefScreen.removePreference(findPreference(KEY_LOCKSCREEN_MAXIMIZE_WIDGETS));
}
- mCustomBackground = (ListPreference) findPreference(KEY_BACKGROUND_PREF);
+ // This applies to all users
+ mCustomBackground = (ListPreference) findPreference(KEY_BACKGROUND);
mCustomBackground.setOnPreferenceChangeListener(this);
updateCustomBackgroundSummary();
@@ -124,17 +141,19 @@ public class LockscreenInterface extends SettingsPreferenceFragment implements
public void onResume() {
super.onResume();
- ContentResolver cr = getActivity().getContentResolver();
- if (mBatteryStatus != null) {
- int batteryStatus = Settings.System.getInt(cr,
- Settings.System.LOCKSCREEN_ALWAYS_SHOW_BATTERY, 0);
- mBatteryStatus.setValueIndex(batteryStatus);
- mBatteryStatus.setSummary(mBatteryStatus.getEntries()[batteryStatus]);
- }
+ if (mIsPrimary) {
+ ContentResolver cr = getActivity().getContentResolver();
+ if (mBatteryStatus != null) {
+ int batteryStatus = Settings.System.getInt(cr,
+ Settings.System.LOCKSCREEN_ALWAYS_SHOW_BATTERY, 0);
+ mBatteryStatus.setValueIndex(batteryStatus);
+ mBatteryStatus.setSummary(mBatteryStatus.getEntries()[batteryStatus]);
+ }
- if (mMaximizeWidgets != null) {
- mMaximizeWidgets.setChecked(Settings.System.getInt(cr,
- Settings.System.LOCKSCREEN_MAXIMIZE_WIDGETS, 0) == 1);
+ if (mMaximizeWidgets != null) {
+ mMaximizeWidgets.setChecked(Settings.System.getInt(cr,
+ Settings.System.LOCKSCREEN_MAXIMIZE_WIDGETS, 0) == 1);
+ }
}
}
diff --git a/src/com/android/settings/cyanogenmod/SystemSettings.java b/src/com/android/settings/cyanogenmod/SystemSettings.java
index 5343fd1a3..d34b00dc3 100644
--- a/src/com/android/settings/cyanogenmod/SystemSettings.java
+++ b/src/com/android/settings/cyanogenmod/SystemSettings.java
@@ -21,6 +21,7 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.os.UserHandle;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.provider.Settings;
@@ -29,7 +30,6 @@ import android.view.IWindowManager;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.Utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -42,63 +42,84 @@ public class SystemSettings extends SettingsPreferenceFragment {
private static final String KEY_HARDWARE_KEYS = "hardware_keys";
private static final String KEY_NAVIGATION_BAR = "navigation_bar";
private static final String KEY_LOCK_CLOCK = "lock_clock";
+ private static final String KEY_STATUS_BAR = "status_bar";
+ private static final String KEY_QUICK_SETTINGS = "quick_settings_panel";
+ private static final String KEY_NOTIFICATION_DRAWER = "notification_drawer";
+ private static final String KEY_POWER_MENU = "power_menu";
private PreferenceScreen mNotificationPulse;
private PreferenceScreen mBatteryPulse;
+ private boolean mIsPrimary;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.system_settings);
+ PreferenceScreen prefScreen = getPreferenceScreen();
+
+ // Determine which user is logged in
+ mIsPrimary = UserHandle.myUserId() == UserHandle.USER_OWNER;
+ if (mIsPrimary) {
+ // Primary user only preferences
+ // Battery lights
+ mBatteryPulse = (PreferenceScreen) findPreference(KEY_BATTERY_LIGHT);
+ if (mBatteryPulse != null) {
+ if (getResources().getBoolean(
+ com.android.internal.R.bool.config_intrusiveBatteryLed) == false) {
+ prefScreen.removePreference(mBatteryPulse);
+ } else {
+ updateBatteryPulseDescription();
+ }
+ }
- // Dont display the lock clock preference if its not installed
- removePreferenceIfPackageNotInstalled(findPreference(KEY_LOCK_CLOCK));
+ // Only show the hardware keys config on a device that does not have a navbar
+ // and the navigation bar config on phones that has a navigation bar
+ boolean removeKeys = false;
+ boolean removeNavbar = false;
+ IWindowManager windowManager = IWindowManager.Stub.asInterface(
+ ServiceManager.getService(Context.WINDOW_SERVICE));
+ try {
+ if (windowManager.hasNavigationBar()) {
+ removeKeys = true;
+ } else {
+ removeNavbar = true;
+ }
+ } catch (RemoteException e) {
+ // Do nothing
+ }
+
+ // Act on the above
+ if (removeKeys) {
+ prefScreen.removePreference(findPreference(KEY_HARDWARE_KEYS));
+ }
+ if (removeNavbar) {
+ prefScreen.removePreference(findPreference(KEY_NAVIGATION_BAR));
+ }
+ } else {
+ // Secondary user is logged in, remove all primary user specific preferences
+ prefScreen.removePreference(findPreference(KEY_BATTERY_LIGHT));
+ prefScreen.removePreference(findPreference(KEY_HARDWARE_KEYS));
+ prefScreen.removePreference(findPreference(KEY_NAVIGATION_BAR));
+ prefScreen.removePreference(findPreference(KEY_STATUS_BAR));
+ prefScreen.removePreference(findPreference(KEY_QUICK_SETTINGS));
+ prefScreen.removePreference(findPreference(KEY_POWER_MENU));
+ prefScreen.removePreference(findPreference(KEY_NOTIFICATION_DRAWER));
+ }
+ // Preferences that applies to all users
// Notification lights
mNotificationPulse = (PreferenceScreen) findPreference(KEY_NOTIFICATION_PULSE);
if (mNotificationPulse != null) {
if (!getResources().getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed)) {
- getPreferenceScreen().removePreference(mNotificationPulse);
+ prefScreen.removePreference(mNotificationPulse);
} else {
updateLightPulseDescription();
}
}
- // Battery lights
- mBatteryPulse = (PreferenceScreen) findPreference(KEY_BATTERY_LIGHT);
- if (mBatteryPulse != null) {
- if (getResources().getBoolean(
- com.android.internal.R.bool.config_intrusiveBatteryLed) == false) {
- getPreferenceScreen().removePreference(mBatteryPulse);
- } else {
- updateBatteryPulseDescription();
- }
- }
-
- // Only show the hardware keys config on a device that does not have a navbar
- // Only show the navigation bar config on phones that has a navigation bar
- boolean removeKeys = false;
- boolean removeNavbar = false;
- IWindowManager windowManager = IWindowManager.Stub.asInterface(
- ServiceManager.getService(Context.WINDOW_SERVICE));
- try {
- if (windowManager.hasNavigationBar()) {
- removeKeys = true;
- } else {
- removeNavbar = true;
- }
- } catch (RemoteException e) {
- // Do nothing
- }
-
- // Act on the above
- if (removeKeys) {
- getPreferenceScreen().removePreference(findPreference(KEY_HARDWARE_KEYS));
- }
- if (removeNavbar) {
- getPreferenceScreen().removePreference(findPreference(KEY_NAVIGATION_BAR));
- }
+ // Don't display the lock clock preference if its not installed
+ removePreferenceIfPackageNotInstalled(findPreference(KEY_LOCK_CLOCK));
}
private void updateLightPulseDescription() {
@@ -122,8 +143,14 @@ public class SystemSettings extends SettingsPreferenceFragment {
@Override
public void onResume() {
super.onResume();
+
+ // All users
updateLightPulseDescription();
- updateBatteryPulseDescription();
+
+ // Primary user only
+ if (mIsPrimary) {
+ updateBatteryPulseDescription();
+ }
}
@Override