diff options
-rw-r--r-- | res/values/arrays.xml | 14 | ||||
-rw-r--r-- | res/xml/profile_config.xml | 4 | ||||
-rw-r--r-- | src/com/android/settings/profiles/ProfileConfig.java | 73 | ||||
-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; + } } } } |