diff options
18 files changed, 139 insertions, 239 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b84075a..2794d9d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -987,21 +987,6 @@ android:resource="@id/accessibility_settings" /> </activity> - <activity android:name="Settings$AccessibilityContrastSettingsActivity" - android:label="@string/accessibility_display_contrast_preference_title" - android:taskAffinity="com.android.settings" - android:parentActivityName="Settings$AccessibilitySettingsActivity"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <action android:name="com.android.settings.ACCESSIBILITY_CONTRAST_SETTINGS" /> - <category android:name="android.intent.category.DEFAULT" /> - </intent-filter> - <meta-data android:name="com.android.settings.FRAGMENT_CLASS" - android:value="com.android.settings.accessibility.ToggleContrastPreferenceFragment" /> - <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID" - android:resource="@id/accessibility_settings" /> - </activity> - <activity android:name="Settings$AccessibilityDaltonizerSettingsActivity" android:label="@string/accessibility_display_daltonizer_preference_title" android:taskAffinity="com.android.settings" diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 6d0cd76..5d1a9b6 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1171,20 +1171,6 @@ <item>critical</item> </string-array> - <!-- Display color inversion modes for accessibility --> - <string-array name="inversion_type_entries"> - <item>Standard</item> - <item>Hue only</item> - <item>Value only</item> - </string-array> - - <!-- Values for display color inversion modes --> - <string-array name="inversion_type_values" translatable="false"> - <item>0</item> - <item>1</item> - <item>2</item> - </string-array> - <!-- Display color space adjustment modes for accessibility --> <string-array name="daltonizer_type_entries" translatable="false"> <item>@string/daltonizer_mode_deuteranomaly</item> diff --git a/res/values/colors.xml b/res/values/colors.xml index ce60cf3..b996e1e 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -60,5 +60,6 @@ <color name="quantum_orange_A200">#ffffab40</color> <color name="quantum_orange_A400">#ffff9100</color> + <color name="actionbar_background_color">#ff263238</color> <color name="dashboard_background_color">#ffe1e1e0</color> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index bebc51b..fd3922c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3362,8 +3362,6 @@ <string name="accessibility_toggle_speak_password_preference_title">Speak passwords</string> <!-- Title for accessibility preference to choose long-press delay i.e. timeout before it is detected. [CHAR LIMIT=35] --> <string name="accessibility_long_press_timeout_preference_title">Touch & hold delay</string> - <!-- Title for the accessibility preference to configure display contrast enhancement. [CHAR LIMIT=NONE] --> - <string name="accessibility_display_contrast_preference_title">Contrast enhancement</string> <!-- Title for the accessibility preference to configure display color inversion. [CHAR LIMIT=NONE] --> <string name="accessibility_display_inversion_preference_title">Color inversion</string> <!-- Title for the accessibility preference to configure display color space correction. [CHAR LIMIT=NONE] --> @@ -3371,12 +3369,6 @@ <!-- Title for the preference to show a tile for a particular feature in the Quick Settings pane. [CHAR LIMIT=NONE] --> <string name="enable_quick_setting">Show in Quick Settings</string> - <!-- Title for the preference to configure contrast enhancement's brightness level. [CHAR LIMIT=NONE] --> - <string name="contrast_brightness">Brightness</string> - <!-- Title for the preference to configure contrast enhancement's contrast level. [CHAR LIMIT=NONE] --> - <string name="contrast_contrast">Contrast</string> - <!-- Title for the preference to configure the type of color inversion to apply. [CHAR LIMIT=NONE] --> - <string name="inversion_type">Inversion mode</string> <!-- Title for the preference to configure the type of color space correction to apply. [CHAR LIMIT=NONE] --> <string name="daltonizer_type">Correction mode</string> <!-- Summary shown for color space correction preference when its value is overridden by another preference [CHAR LIMIT=35] --> @@ -4844,8 +4836,10 @@ <string name="user_settings_title">Users</string> <!-- User settings header for list of users and profiles [CHAR LIMIT=40] --> <string name="user_list_title">Users & profiles</string> + <!-- User settings add user or restricted profile menu [CHAR LIMIT=35] --> + <string name="user_add_user_or_profile_menu">Add user or profile</string> <!-- User settings add user menu [CHAR LIMIT=35] --> - <string name="user_add_user_menu">Add user or profile</string> + <string name="user_add_user_menu">Add user</string> <!-- User settings summary for a restricted profile [CHAR LIMIT=50] --> <string name="user_summary_restricted_profile">Restricted profile</string> <!-- User settings summary for a managed profile [CHAR LIMIT=50] --> diff --git a/res/values/themes.xml b/res/values/themes.xml index ca99d6b..97dc0d4 100644 --- a/res/values/themes.xml +++ b/res/values/themes.xml @@ -71,9 +71,23 @@ <item name="ic_wps">@drawable/ic_wps_dark</item> <item name="wifi_signal">@drawable/wifi_signal_dark</item> + <item name="android:actionBarTheme">@style/Theme.Settings.ActionBar.Quantum</item> + + <item name="android:colorPrimary">@color/actionbar_background_color</item> <item name="android:colorPrimaryLight">@color/quantum_blue_grey_100</item> - <item name="android:colorPrimary">@color/quantum_blue_grey_500</item> <item name="android:colorPrimaryDark">@color/quantum_blue_grey_700</item> <item name="android:colorAccent">@color/quantum_orange_A200</item> </style> + + <style name="Theme.Settings.ActionBar.Quantum" parent="@android:style/Theme.Quantum"> + <!--Set the background color--> + <item name="android:colorPrimary">@color/actionbar_background_color</item> + <!--Set the activated state color for the on/off switches--> + <item name="android:colorControlActivated">?android:attr/colorControlNormal</item> + <!--Other colors--> + <item name="android:colorPrimaryLight">@color/quantum_blue_grey_100</item> + <item name="android:colorPrimaryDark">@color/quantum_blue_grey_700</item> + <item name="android:colorAccent">@color/quantum_orange_A200</item> + </style> + </resources> diff --git a/res/xml/accessibility_contrast_settings.xml b/res/xml/accessibility_contrast_settings.xml deleted file mode 100644 index 6d08932..0000000 --- a/res/xml/accessibility_contrast_settings.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2013 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" - android:title="@string/accessibility_display_contrast_preference_title" > - - <CheckBoxPreference - android:key="enable_quick_setting" - android:persistent="false" - android:title="@string/enable_quick_setting" /> - - <SeekBarPreference - android:key="contrast" - android:persistent="false" - android:title="@string/contrast_contrast" /> - <SeekBarPreference - android:key="brightness" - android:persistent="false" - android:title="@string/contrast_brightness" /> - -</PreferenceScreen> diff --git a/res/xml/accessibility_inversion_settings.xml b/res/xml/accessibility_inversion_settings.xml index a20c4db..6aa3869 100644 --- a/res/xml/accessibility_inversion_settings.xml +++ b/res/xml/accessibility_inversion_settings.xml @@ -22,12 +22,4 @@ android:persistent="false" android:title="@string/enable_quick_setting" /> - <ListPreference - android:entries="@array/inversion_type_entries" - android:entryValues="@array/inversion_type_values" - android:key="type" - android:persistent="false" - android:summary="%s" - android:title="@string/inversion_type" /> - </PreferenceScreen> diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml index 9bbb670..3ce5f1b 100644 --- a/res/xml/accessibility_settings.xml +++ b/res/xml/accessibility_settings.xml @@ -78,10 +78,6 @@ android:key="display_category" android:title="@string/accessibility_display_title" > <PreferenceScreen - android:fragment="com.android.settings.accessibility.ToggleContrastPreferenceFragment" - android:key="contrast_preference_screen" - android:title="@string/accessibility_display_contrast_preference_title" /> - <PreferenceScreen android:fragment="com.android.settings.accessibility.ToggleInversionPreferenceFragment" android:key="inversion_preference_screen" android:title="@string/accessibility_display_inversion_preference_title" /> diff --git a/res/xml/user_settings.xml b/res/xml/user_settings.xml index 3a0ab74..6bbeffa 100644 --- a/res/xml/user_settings.xml +++ b/res/xml/user_settings.xml @@ -25,7 +25,7 @@ <Preference android:key="user_add" - android:title="@string/user_add_user_menu" + android:title="@string/user_add_user_or_profile_menu" android:icon="@drawable/ic_menu_add_dark" /> </PreferenceScreen> diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 3c865a9..2b580e4 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -256,7 +256,6 @@ public class SettingsActivity extends Activity AccessibilitySettings.class.getName(), CaptionPropertiesFragment.class.getName(), com.android.settings.accessibility.ToggleInversionPreferenceFragment.class.getName(), - com.android.settings.accessibility.ToggleContrastPreferenceFragment.class.getName(), com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.class.getName(), TextToSpeechSettings.class.getName(), Memory.class.getName(), @@ -411,6 +410,10 @@ public class SettingsActivity extends Activity return false; } + if (mSearchResultsFragment != null) { + mSearchResultsFragment.setSearchView(mSearchView); + } + mSearchMenuItem.setOnActionExpandListener(this); mSearchView.setOnQueryTextListener(this); mSearchView.setOnCloseListener(this); diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java index 9aa822e..b116290 100644 --- a/src/com/android/settings/accessibility/AccessibilitySettings.java +++ b/src/com/android/settings/accessibility/AccessibilitySettings.java @@ -525,8 +525,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements mDisplayMagnificationPreferenceScreen); updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, mDisplayInversionPreferenceScreen); - updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST_ENABLED, - mDisplayContrastPreferenceScreen); updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, mDisplayDaltonizerPreferenceScreen); diff --git a/src/com/android/settings/accessibility/ListDialogPreference.java b/src/com/android/settings/accessibility/ListDialogPreference.java index a252454..2140d91 100644 --- a/src/com/android/settings/accessibility/ListDialogPreference.java +++ b/src/com/android/settings/accessibility/ListDialogPreference.java @@ -82,6 +82,10 @@ public abstract class ListDialogPreference extends DialogPreference { */ public void setValues(int[] values) { mEntryValues = values; + + if (mValueSet && mValueIndex == AbsListView.INVALID_POSITION) { + mValueIndex = getIndexForValue(mValue); + } } /** @@ -172,10 +176,12 @@ public abstract class ListDialogPreference extends DialogPreference { */ protected int getIndexForValue(int value) { final int[] values = mEntryValues; - final int count = values.length; - for (int i = 0; i < count; i++) { - if (values[i] == value) { - return i; + if (values != null) { + final int count = values.length; + for (int i = 0; i < count; i++) { + if (values[i] == value) { + return i; + } } } diff --git a/src/com/android/settings/accessibility/ToggleContrastPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleContrastPreferenceFragment.java deleted file mode 100644 index d1e30f8..0000000 --- a/src/com/android/settings/accessibility/ToggleContrastPreferenceFragment.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.accessibility; - -import android.os.Bundle; -import android.preference.CheckBoxPreference; -import android.preference.Preference; -import android.preference.PreferenceScreen; -import android.preference.SeekBarPreference; -import android.provider.Settings; -import android.view.View; -import android.widget.CompoundButton; -import android.widget.CompoundButton.OnCheckedChangeListener; - -import com.android.settings.R; -import com.android.settings.accessibility.ToggleSwitch.OnBeforeCheckedChangeListener; - -public class ToggleContrastPreferenceFragment extends ToggleFeaturePreferenceFragment - implements Preference.OnPreferenceChangeListener { - private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST_ENABLED; - private static final String QUICK_SETTING_ENABLED = - Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST_QUICK_SETTING_ENABLED; - - private CheckBoxPreference mEnableQuickSetting; - private SeekBarPreference mBrightness; - private SeekBarPreference mContrast; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - addPreferencesFromResource(R.xml.accessibility_contrast_settings); - - mEnableQuickSetting = (CheckBoxPreference) findPreference("enable_quick_setting"); - mBrightness = (SeekBarPreference) findPreference("brightness"); - mBrightness.setMax(1000); - mContrast = (SeekBarPreference) findPreference("contrast"); - mContrast.setMax(1000); - - initPreferences(); - } - - @Override - protected void onPreferenceToggled(String preferenceKey, boolean enabled) { - Settings.Secure.putInt(getContentResolver(), ENABLED, enabled ? 1 : 0); - } - - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - if (preference == mEnableQuickSetting) { - Settings.Secure.putInt( - getContentResolver(), QUICK_SETTING_ENABLED, ((Boolean) newValue) ? 1 : 0); - } else if (preference == mBrightness) { - final int progress = (Integer) newValue; - final float value = progress / 1000f - 0.5f; - Settings.Secure.putFloat( - getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_BRIGHTNESS, value); - } else if (preference == mContrast) { - final int progress = (Integer) newValue; - final float value = progress / 1000f * 10f + 1f; - Settings.Secure.putFloat( - getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST, value); - } - - return true; - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - - setTitle(getString(R.string.accessibility_display_contrast_preference_title)); - } - - @Override - protected void onInstallActionBarToggleSwitch() { - super.onInstallActionBarToggleSwitch(); - - mToggleSwitch.setCheckedInternal( - Settings.Secure.getInt(getContentResolver(), ENABLED, 0) == 1); - mToggleSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton button, boolean checked) { - onPreferenceToggled(mPreferenceKey, checked); - } - }); - } - - private void initPreferences() { - mEnableQuickSetting.setChecked( - Settings.Secure.getInt(getContentResolver(), QUICK_SETTING_ENABLED, 0) == 1); - mEnableQuickSetting.setOnPreferenceChangeListener(this); - - final float brightness = Settings.Secure.getFloat( - getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_BRIGHTNESS, 0); - final float contrast = Settings.Secure.getFloat( - getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST, 2); - - // Available brightness range is -0.5 to 0.5. - mBrightness.setProgress((int) (1000 * (brightness + 0.5f))); - mBrightness.setOnPreferenceChangeListener(this); - - // Available contrast range is 1 to 10. - mContrast.setProgress((int) (1000 * (contrast - 1f) / 10f)); - mContrast.setOnPreferenceChangeListener(this); - } -} diff --git a/src/com/android/settings/accessibility/ToggleInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleInversionPreferenceFragment.java index bfb2500..92a778e 100644 --- a/src/com/android/settings/accessibility/ToggleInversionPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleInversionPreferenceFragment.java @@ -35,13 +35,10 @@ import com.android.settings.accessibility.ToggleSwitch.OnBeforeCheckedChangeList public class ToggleInversionPreferenceFragment extends ToggleFeaturePreferenceFragment implements Preference.OnPreferenceChangeListener { private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED; - private static final String TYPE = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION; private static final String QUICK_SETTING_ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_QUICK_SETTING_ENABLED; - private static final int DEFAULT_TYPE = AccessibilityManager.INVERSION_STANDARD; private CheckBoxPreference mEnableQuickSetting; - private ListPreference mType; @Override public void onCreate(Bundle savedInstanceState) { @@ -50,7 +47,6 @@ public class ToggleInversionPreferenceFragment extends ToggleFeaturePreferenceFr addPreferencesFromResource(R.xml.accessibility_inversion_settings); mEnableQuickSetting = (CheckBoxPreference) findPreference("enable_quick_setting"); - mType = (ListPreference) findPreference("type"); initPreferences(); } @@ -65,8 +61,6 @@ public class ToggleInversionPreferenceFragment extends ToggleFeaturePreferenceFr if (preference == mEnableQuickSetting) { Settings.Secure.putInt( getContentResolver(), QUICK_SETTING_ENABLED, ((Boolean) newValue) ? 1 : 0); - } else if (preference == mType) { - Settings.Secure.putInt(getContentResolver(), TYPE, Integer.parseInt((String) newValue)); } return true; @@ -97,9 +91,5 @@ public class ToggleInversionPreferenceFragment extends ToggleFeaturePreferenceFr mEnableQuickSetting.setChecked( Settings.Secure.getInt(getContentResolver(), QUICK_SETTING_ENABLED, 0) == 1); mEnableQuickSetting.setOnPreferenceChangeListener(this); - - mType.setValue( - Integer.toString(Settings.Secure.getInt(getContentResolver(), TYPE, DEFAULT_TYPE))); - mType.setOnPreferenceChangeListener(this); } } diff --git a/src/com/android/settings/dashboard/SearchResultsSummary.java b/src/com/android/settings/dashboard/SearchResultsSummary.java index e8544ae..6a6431d 100644 --- a/src/com/android/settings/dashboard/SearchResultsSummary.java +++ b/src/com/android/settings/dashboard/SearchResultsSummary.java @@ -51,6 +51,8 @@ public class SearchResultsSummary extends Fragment { private static final String EMPTY_QUERY = ""; private static char ELLIPSIS = '\u2026'; + private static final String SAVE_KEY_SHOW_ONLY_RESULTS = ":settings:show_only_results"; + private SearchView mSearchView; private ListView mResultsListView; @@ -66,6 +68,8 @@ public class SearchResultsSummary extends Fragment { private String mQuery; + private boolean mShowOnlyResults; + /** * A basic AsyncTask for updating the query results cursor */ @@ -110,6 +114,17 @@ public class SearchResultsSummary extends Fragment { mResultsAdapter = new SearchResultsAdapter(getActivity()); mSuggestionsAdapter = new SuggestionsAdapter(getActivity()); + + if (savedInstanceState != null) { + mShowOnlyResults = savedInstanceState.getBoolean(SAVE_KEY_SHOW_ONLY_RESULTS); + } + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + outState.putBoolean(SAVE_KEY_SHOW_ONLY_RESULTS, mShowOnlyResults); } @Override @@ -197,6 +212,7 @@ public class SearchResultsSummary extends Fragment { mQuery = cursor.getString(0); mSearchView.setQuery(mQuery, false); setSuggestionsVisibility(false); + mShowOnlyResults = true; } }); @@ -207,7 +223,9 @@ public class SearchResultsSummary extends Fragment { public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - showSomeSuggestions(); + if (!mShowOnlyResults) { + showSomeSuggestions(); + } } public void setSearchView(SearchView searchView) { @@ -232,13 +250,30 @@ public class SearchResultsSummary extends Fragment { public boolean onQueryTextSubmit(String query) { mQuery = getFilteredQueryString(query); + setSuggestionsVisibility(!mShowOnlyResults); updateSearchResults(); return true; } public boolean onQueryTextChange(String query) { - mQuery = getFilteredQueryString(query); - updateSuggestions(); + final String newQuery = getFilteredQueryString(query); + + boolean isNewQuery; + if (!TextUtils.isEmpty(mQuery)) { + isNewQuery = !mQuery.equals(query); + } else { + isNewQuery = !TextUtils.isEmpty(query); + } + + mQuery = newQuery; + + if (isNewQuery) { + mShowOnlyResults = false; + } + if (!mShowOnlyResults) { + updateSuggestions(); + } + updateSearchResults(); return true; } diff --git a/src/com/android/settings/notification/NotificationStation.java b/src/com/android/settings/notification/NotificationStation.java index d8a3efb..69a7a89 100644 --- a/src/com/android/settings/notification/NotificationStation.java +++ b/src/com/android/settings/notification/NotificationStation.java @@ -36,6 +36,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.service.notification.INotificationListener; +import android.service.notification.NotificationOrderUpdate; import android.service.notification.StatusBarNotification; import android.util.Log; import android.view.LayoutInflater; @@ -74,11 +75,12 @@ public class NotificationStation extends SettingsPreferenceFragment { private INotificationListener.Stub mListener = new INotificationListener.Stub() { @Override - public void onListenerConnected(String[] notificationKeys) throws RemoteException { + public void onListenerConnected(NotificationOrderUpdate update) throws RemoteException { // noop } @Override - public void onNotificationPosted(StatusBarNotification notification) throws RemoteException { + public void onNotificationPosted(StatusBarNotification notification, + NotificationOrderUpdate update) throws RemoteException { Log.v(TAG, "onNotificationPosted: " + notification); final Handler h = getListView().getHandler(); h.removeCallbacks(mRefreshListRunnable); @@ -86,11 +88,17 @@ public class NotificationStation extends SettingsPreferenceFragment { } @Override - public void onNotificationRemoved(StatusBarNotification notification) throws RemoteException { + public void onNotificationRemoved(StatusBarNotification notification, + NotificationOrderUpdate update) throws RemoteException { final Handler h = getListView().getHandler(); h.removeCallbacks(mRefreshListRunnable); h.postDelayed(mRefreshListRunnable, 100); } + + @Override + public void onNotificationOrderUpdate(NotificationOrderUpdate update) + throws RemoteException { + } }; private NotificationHistoryAdapter mAdapter; diff --git a/src/com/android/settings/tts/TtsEngineSettingsFragment.java b/src/com/android/settings/tts/TtsEngineSettingsFragment.java index ada6085..47493fb 100644 --- a/src/com/android/settings/tts/TtsEngineSettingsFragment.java +++ b/src/com/android/settings/tts/TtsEngineSettingsFragment.java @@ -52,6 +52,10 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem private static final String KEY_ENGINE_SETTINGS = "tts_engine_settings"; private static final String KEY_INSTALL_DATA = "tts_install_data"; + private static final String STATE_KEY_LOCALE_ENTRIES = "locale_entries"; + private static final String STATE_KEY_LOCALE_ENTRY_VALUES= "locale_entry_values"; + private static final String STATE_KEY_LOCALE_VALUE = "locale_value"; + private static final int VOICE_DATA_INTEGRITY_CHECK = 1977; private TtsEngines mEnginesHelper; @@ -119,10 +123,26 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem mEngineSettingsPreference.setEnabled(false); } mInstallVoicesPreference.setEnabled(false); - mLocalePreference.setEnabled(false); - mLocalePreference.setEntries(new CharSequence[0]); - mLocalePreference.setEntryValues(new CharSequence[0]); + if (savedInstanceState == null) { + mLocalePreference.setEnabled(false); + mLocalePreference.setEntries(new CharSequence[0]); + mLocalePreference.setEntryValues(new CharSequence[0]); + } else { + // Repopulate mLocalePreference with saved state. Will be updated later with + // up-to-date values when checkTtsData() calls back with results. + final CharSequence[] entries = + savedInstanceState.getCharSequenceArray(STATE_KEY_LOCALE_ENTRIES); + final CharSequence[] entryValues = + savedInstanceState.getCharSequenceArray(STATE_KEY_LOCALE_ENTRY_VALUES); + final CharSequence value = + savedInstanceState.getCharSequence(STATE_KEY_LOCALE_VALUE); + + mLocalePreference.setEntries(entries); + mLocalePreference.setEntryValues(entryValues); + mLocalePreference.setValue(value.toString()); + mLocalePreference.setEnabled(entries.length > 0); + } mVoiceDataDetails = getArguments().getParcelable(TtsEnginePreference.FRAGMENT_ARGS_VOICES); @@ -143,6 +163,19 @@ public class TtsEngineSettingsFragment extends SettingsPreferenceFragment implem super.onDestroy(); } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + // Save the mLocalePreference values, so we can repopulate it with entries. + outState.putCharSequenceArray(STATE_KEY_LOCALE_ENTRIES, + mLocalePreference.getEntries()); + outState.putCharSequenceArray(STATE_KEY_LOCALE_ENTRY_VALUES, + mLocalePreference.getEntryValues()); + outState.putCharSequence(STATE_KEY_LOCALE_VALUE, + mLocalePreference.getValue()); + } + private final void checkTtsData() { Intent intent = new Intent(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); intent.setPackage(getEngineName()); diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index b218bc7..a05aaa9 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -129,6 +129,7 @@ public class UserSettings extends RestrictedSettingsFragment private boolean mAddingUser; private boolean mProfileExists; private boolean mEnabled = true; + private boolean mCanAddRestrictedProfile = true; private final Object mUserLock = new Object(); private UserManager mUserManager; @@ -183,15 +184,16 @@ public class UserSettings extends RestrictedSettingsFragment mRemovingUserId = icicle.getInt(SAVE_REMOVING_USER); } } - - mUserManager = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); + final Context context = getActivity(); + mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); if (!mUserManager.supportsMultipleUsers() || Utils.isMonkeyRunning()) { mEnabled = false; return; } + addPreferencesFromResource(R.xml.user_settings); mUserListCategory = (PreferenceGroup) findPreference(KEY_USER_LIST); - mMePreference = new UserPreference(getActivity(), null, UserHandle.myUserId(), + mMePreference = new UserPreference(context, null, UserHandle.myUserId(), mUserManager.isLinkedUser() ? null : this, null); mMePreference.setKey(KEY_USER_ME); mMePreference.setOnPreferenceClickListener(this); @@ -199,9 +201,16 @@ public class UserSettings extends RestrictedSettingsFragment mMePreference.setSummary(R.string.user_owner); } mAddUser = findPreference(KEY_ADD_USER); - mAddUser.setOnPreferenceClickListener(this); if (!mIsOwner || UserManager.getMaxSupportedUsers() < 2) { removePreference(KEY_ADD_USER); + } else { + mAddUser.setOnPreferenceClickListener(this); + DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService( + Context.DEVICE_POLICY_SERVICE); + if (dpm.getDeviceOwner() != null) { + mCanAddRestrictedProfile = false; + mAddUser.setTitle(R.string.user_add_user_menu); + } } loadProfile(); setHasOptionsMenu(true); @@ -771,7 +780,13 @@ public class UserSettings extends RestrictedSettingsFragment } } } else if (pref == mAddUser) { - showDialog(DIALOG_CHOOSE_USER_TYPE); + // If we allow both types, show a picker, otherwise directly go to + // flow for full user. + if (mCanAddRestrictedProfile) { + showDialog(DIALOG_CHOOSE_USER_TYPE); + } else { + onAddUserClicked(USER_TYPE_USER); + } } return false; } |