summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/arrays.xml14
-rw-r--r--res/xml/profile_config.xml4
-rw-r--r--src/com/android/settings/profiles/ProfileConfig.java73
-rw-r--r--src/com/android/settings/profiles/ProfileSilentModePreference.java (renamed from src/com/android/settings/profiles/VibratorPreference.java)94
4 files changed, 76 insertions, 109 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 6d93e12..2935cbf 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -873,20 +873,6 @@
<item>1</item>
</string-array>
- <!-- Profile mode options. -->
- <string-array name="profile_vibrator_entries" translatable="false">
- <item>@string/vibrator_state_disabled</item>
- <item>@string/vibrator_state_silent</item>
- <item>@string/vibrator_state_enabled</item>
- </string-array>
-
- <!-- Values for profile vibrator. Do not translate. -->
- <string-array name="profile_vibrator_values" translatable="false">
- <item>0</item>
- <item>1</item>
- <item>2</item>
- </string-array>
-
<!-- Profile lock mode options. Do not translate. -->
<string-array name="profile_lockmode_entries" translatable="false">
<item>@string/profile_lockmode_default</item>
diff --git a/res/xml/profile_config.xml b/res/xml/profile_config.xml
index 2008bde..fda61a4 100644
--- a/res/xml/profile_config.xml
+++ b/res/xml/profile_config.xml
@@ -32,10 +32,6 @@
android:title="@string/profile_volumeoverrides_title" />
<PreferenceCategory
- android:key="profile_vibratoroverrides"
- android:title="@string/profile_vibratoroverrides_title" />
-
- <PreferenceCategory
android:key="profile_appgroups"
android:title="@string/profile_appgroups_title" />
diff --git a/src/com/android/settings/profiles/ProfileConfig.java b/src/com/android/settings/profiles/ProfileConfig.java
index 33c083b..c1b5655 100644
--- a/src/com/android/settings/profiles/ProfileConfig.java
+++ b/src/com/android/settings/profiles/ProfileConfig.java
@@ -24,8 +24,8 @@ import android.app.ConnectionSettings;
import android.app.Profile;
import android.app.ProfileGroup;
import android.app.ProfileManager;
+import android.app.SilentModeSettings;
import android.app.StreamSettings;
-import android.app.VibratorSettings;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -75,7 +75,7 @@ public class ProfileConfig extends SettingsPreferenceFragment
private ArrayList<ConnectionItem> mConnections;
- private VibratorItem[] mVibrators;
+ private SilentModeItem mSilentMode;
@Override
public void onCreate(Bundle icicle) {
@@ -99,11 +99,6 @@ public class ProfileConfig extends SettingsPreferenceFragment
mConnections.add(new ConnectionItem(ConnectionSettings.PROFILE_CONNECTION_WIMAX, getString(R.string.toggleWimax)));
}
- mVibrators = new VibratorItem[] {
- new VibratorItem(AudioManager.VIBRATE_TYPE_RINGER, getString(R.string.vibrator_type_ringer)),
- new VibratorItem(AudioManager.VIBRATE_TYPE_NOTIFICATION, getString(R.string.vibrator_type_notification)),
- };
-
addPreferencesFromResource(R.xml.profile_config);
mProfileManager = (ProfileManager) getActivity().getSystemService(PROFILE_SERVICE);
@@ -190,6 +185,24 @@ public class ProfileConfig extends SettingsPreferenceFragment
PreferenceGroup systemPrefs = (PreferenceGroup) prefSet.findPreference("profile_system_settings");
if (systemPrefs != null) {
systemPrefs.removeAll();
+ // Silent mode preference
+ if (mSilentMode == null) {
+ mSilentMode = new SilentModeItem();
+ }
+ SilentModeSettings settings = mProfile.getSilentMode();
+ if (settings == null) {
+ settings = new SilentModeSettings();
+ mProfile.setSilentMode(settings);
+ }
+ mSilentMode.mSettings = settings;
+ ProfileSilentModePreference pref = new ProfileSilentModePreference(getActivity());
+ pref.setSilentModeItem(mSilentMode);
+ pref.setTitle(R.string.silent_mode_title);
+ pref.setPersistent(false);
+ pref.setSummary(getActivity());
+ pref.setOnPreferenceChangeListener(this);
+ mSilentMode.mCheckbox = pref;
+ systemPrefs.addPreference(pref);
// Lockscreen mode preference
mScreenLockModePreference = new ListPreference(getActivity());
@@ -240,38 +253,6 @@ public class ProfileConfig extends SettingsPreferenceFragment
}
}
- // Populate the vibrator list
- PreferenceGroup vibratorList = (PreferenceGroup) prefSet.findPreference("profile_vibratoroverrides");
- if (vibratorList != null) {
- vibratorList.removeAll();
- for (VibratorItem vibrator : mVibrators) {
- VibratorSettings settings = mProfile.getSettingsForVibrator(vibrator.mVibratorId);
- if (settings == null) {
- settings = new VibratorSettings(vibrator.mVibratorId);
- mProfile.setVibratorSettings(settings);
- }
- vibrator.mSettings = settings;
- VibratorPreference pref = new VibratorPreference(getActivity());
- pref.setKey("vibrator_" + vibrator.mVibratorId);
- pref.setTitle(vibrator.mLabel);
- switch (settings.getValue()) {
- case VibratorSettings.OFF:
- pref.setSummary(getString(R.string.vibrator_state_disabled));
- break;
- case VibratorSettings.SILENT:
- pref.setSummary(getString(R.string.vibrator_state_silent));
- break;
- default:
- pref.setSummary(getString(R.string.vibrator_state_enabled));
- break;
- }
- pref.setPersistent(false);
- pref.setVibratorItem(vibrator);
- vibrator.mCheckbox = pref;
- vibratorList.addPreference(pref);
- }
- }
-
// Populate Connections list
PreferenceGroup connectionList = (PreferenceGroup) prefSet.findPreference("profile_connectionoverrides");
if (connectionList != null) {
@@ -326,6 +307,8 @@ public class ProfileConfig extends SettingsPreferenceFragment
connection.mSettings.setOverride((Boolean) newValue);
}
}
+ } else if (preference == mSilentMode.mCheckbox) {
+ mSilentMode.mSettings.setOverride((Boolean) newValue);
} else if (preference == mNamePreference) {
String name = mNamePreference.getName().toString();
if (!name.equals(mProfile.getName())) {
@@ -425,15 +408,13 @@ public class ProfileConfig extends SettingsPreferenceFragment
}
}
- static class VibratorItem {
- int mVibratorId;
+ static class SilentModeItem {
String mLabel;
- VibratorSettings mSettings;
- VibratorPreference mCheckbox;
+ SilentModeSettings mSettings;
+ ProfileSilentModePreference mCheckbox;
- public VibratorItem(int vibratorId, String label) {
- mVibratorId = vibratorId;
- mLabel = label;
+ public SilentModeItem() {
+ // nothing to do
}
}
}
diff --git a/src/com/android/settings/profiles/VibratorPreference.java b/src/com/android/settings/profiles/ProfileSilentModePreference.java
index 8a82a6f..200bfdb 100644
--- a/src/com/android/settings/profiles/VibratorPreference.java
+++ b/src/com/android/settings/profiles/ProfileSilentModePreference.java
@@ -18,7 +18,6 @@ package com.android.settings.profiles;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.VibratorSettings;
import android.content.Context;
import android.content.DialogInterface;
import android.preference.Preference;
@@ -31,16 +30,16 @@ import android.widget.LinearLayout;
import com.android.settings.R;
-public class VibratorPreference extends Preference implements
+public class ProfileSilentModePreference extends Preference implements
CompoundButton.OnCheckedChangeListener, View.OnClickListener {
private boolean mProtectFromCheckedChange = false;
private CheckBox mCheckBox;
- final static String TAG = "VibratorPreference";
+ final static String TAG = "ProfileSilentModePreference";
- private ProfileConfig.VibratorItem mVibratorItem;
+ private ProfileConfig.SilentModeItem mSilentModeItem;
final static int defaultChoice = -1;
@@ -51,7 +50,7 @@ public class VibratorPreference extends Preference implements
* @param attrs
* @param defStyle
*/
- public VibratorPreference(Context context, AttributeSet attrs, int defStyle) {
+ public ProfileSilentModePreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
@@ -60,7 +59,7 @@ public class VibratorPreference extends Preference implements
* @param context
* @param attrs
*/
- public VibratorPreference(Context context, AttributeSet attrs) {
+ public ProfileSilentModePreference(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
@@ -68,7 +67,7 @@ public class VibratorPreference extends Preference implements
/**
* @param context
*/
- public VibratorPreference(Context context) {
+ public ProfileSilentModePreference(Context context) {
super(context);
init();
}
@@ -100,14 +99,14 @@ public class VibratorPreference extends Preference implements
}
public boolean isChecked() {
- return mVibratorItem != null && mVibratorItem.mSettings.isOverride();
+ return mSilentModeItem != null && mSilentModeItem.mSettings.isOverride();
}
- public void setVibratorItem(ProfileConfig.VibratorItem vibratorItem) {
- mVibratorItem = vibratorItem;
+ public void setSilentModeItem(ProfileConfig.SilentModeItem silentModeItem) {
+ mSilentModeItem = silentModeItem;
if (mCheckBox != null) {
- mCheckBox.setChecked(mVibratorItem.mSettings.isOverride());
+ mCheckBox.setChecked(mSilentModeItem.mSettings.isOverride());
}
}
@@ -116,63 +115,68 @@ public class VibratorPreference extends Preference implements
return;
}
- mVibratorItem.mSettings.setOverride(isChecked);
+ mSilentModeItem.mSettings.setOverride(isChecked);
callChangeListener(isChecked);
}
- protected Dialog createVibratorDialog() {
+ protected Dialog createSilentModeDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
- final String[] VibratorValues = getContext().getResources().getStringArray(R.array.profile_vibrator_values);
-
- currentChoice = mVibratorItem.mSettings.getValue();
-
- builder.setTitle(mVibratorItem.mLabel);
- builder.setSingleChoiceItems(R.array.profile_vibrator_entries, currentChoice,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int item) {
- currentChoice = item;
- }
- });
+ final String[] silentModeValues = getContext().getResources().getStringArray(R.array.silent_mode_values);
+ String currentValue = mSilentModeItem.mSettings.getValue();
+ if (currentValue != null) {
+ for (int i = 0; i < silentModeValues.length; i++) {
+ if (currentValue.equals(silentModeValues[i])) {
+ currentChoice = i;
+ break;
+ }
+ }
+ }
- builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ builder.setTitle(R.string.silent_mode_title);
+ builder.setSingleChoiceItems(R.array.silent_mode_entries, currentChoice, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
- if (currentChoice != defaultChoice) {
- int value = Integer.parseInt(VibratorValues[currentChoice]);
- mVibratorItem.mSettings.setValue(value);
- switch (value) {
- case VibratorSettings.OFF:
- setSummary(getContext().getString(R.string.vibrator_state_disabled));
- break;
- case VibratorSettings.SILENT:
- setSummary(getContext().getString(R.string.vibrator_state_silent));
- break;
- default:
- setSummary(getContext().getString(R.string.vibrator_state_enabled));
- break;
- }
- }
+ currentChoice = item;
}
});
- builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
+ if (currentChoice != defaultChoice) {
+ String value = silentModeValues[currentChoice];
+ mSilentModeItem.mSettings.setValue(value);
+ setSummary(getContext().getResources().getStringArray(R.array.silent_mode_entries)[currentChoice]);
+ }
}
});
+
+ builder.setNegativeButton(android.R.string.cancel, null);
return builder.create();
}
- public ProfileConfig.VibratorItem getVibratorItem() {
- return mVibratorItem;
+ public ProfileConfig.SilentModeItem getSilentModeItem() {
+ return mSilentModeItem;
}
@Override
public void onClick(android.view.View v) {
if ((v != null) && (R.id.text_layout == v.getId())) {
- createVibratorDialog().show();
+ createSilentModeDialog().show();
+ }
+ }
+
+ public void setSummary(Context context) {
+ String[] entries = context.getResources().getStringArray(R.array.silent_mode_entries);
+ String[] values = context.getResources().getStringArray(R.array.silent_mode_values);
+ int l = entries.length;
+ String value = mSilentModeItem.mSettings.getValue();
+ for (int i = 0; i < l; i++) {
+ if (value.equals(values[i])) {
+ setSummary(entries[i]);
+ break;
+ }
}
}
}