diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 0f6dae3a655..a89db90d02c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -249,16 +249,28 @@ - + + + + + + + + + + - diff --git a/res/drawable-hdpi/ic_settings_display.png b/res/drawable-hdpi/ic_settings_display.png index 20568d22772..8efbe760c2c 100644 Binary files a/res/drawable-hdpi/ic_settings_display.png and b/res/drawable-hdpi/ic_settings_display.png differ diff --git a/res/drawable-hdpi/ic_settings_sound_display.png b/res/drawable-hdpi/ic_settings_sound.png similarity index 100% rename from res/drawable-hdpi/ic_settings_sound_display.png rename to res/drawable-hdpi/ic_settings_sound.png diff --git a/res/drawable-mdpi/ic_settings_display.png b/res/drawable-mdpi/ic_settings_display.png index b676b85f83e..1e5628cbfab 100644 Binary files a/res/drawable-mdpi/ic_settings_display.png and b/res/drawable-mdpi/ic_settings_display.png differ diff --git a/res/drawable-mdpi/ic_settings_sound_display.png b/res/drawable-mdpi/ic_settings_sound.png similarity index 100% rename from res/drawable-mdpi/ic_settings_sound_display.png rename to res/drawable-mdpi/ic_settings_sound.png diff --git a/res/layout/preference_dialog_ringervolume.xml b/res/layout/preference_dialog_ringervolume.xml index a23e3131b2b..e8dc7044410 100644 --- a/res/layout/preference_dialog_ringervolume.xml +++ b/res/layout/preference_dialog_ringervolume.xml @@ -34,7 +34,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/incoming_call_volume_title" - android:paddingTop="20dip" + android:paddingTop="10dip" android:paddingLeft="20dip" android:paddingRight="20dip" /> @@ -46,6 +46,36 @@ android:paddingLeft="20dip" android:paddingRight="20dip" /> + + + + + + + + "Odpojování..." "Odpojeno" "Připojení se nezdařilo." - "Obraz a zvuk" - "Nastavení obrazu a zvuku" "Nastavení zvuku" - "Umožňuje nastavit vyzváněcí tón, oznámení a jas obrazovky" "Tichý režim" "Ztiší všechny zvuky kromě médií a budíků" "Všechny zvuky kromě médií jsou ztišeny." diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 9822439b1db..0b5abc259a7 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -382,10 +382,7 @@ "Afbryder ..." "Afbrudt" "Mislykkedes" - "Lyd og visning" - "Indstillinger for lyd og visning" "Indstillinger for lyd" - "Angiv ringetoner, meddelelser, skærmlysstyrke" "Lydløs" "Alle lyde undtagen medier og alarmer er slået fra" "Al lyd undtagen medier er slået fra" diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 722655d18d1..dd25ee6e17b 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -382,10 +382,7 @@ "Verbindung wird getrennt..." "Nicht verbunden" "Fehlgeschlagen" - "Sound und Display" - "Einstellungen für Sound & Display" "Toneinstellungen" - "Klingeltöne, Benachrichtigungen und Helligkeit festlegen" "Lautlosmodus" "Alle Töne außer für Medien und Warnungen sind stummgeschaltet" "Alle Sounds außer Medien sind stumm geschaltet" diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index d90247ea46a..18a8df544fe 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -382,10 +382,7 @@ "Αποσύνδεση..." "Αποσυνδέθηκε" "Ανεπιτυχής" - "Ήχος και εικόνα" - "Ρυθμίσεις ήχου & προβολής" "Ρυθμίσεις ήχου" - "Ρύθμιση ήχων κλήσης, ειδοποιήσεων, φωτεινότητας οθόνης" "Λειτουργία σίγασης" "Όλοι οι ήχοι εκτός των πολυμέσων & ξυπνητηριών έχουν σιγασθεί" "Όλοι οι ήχοι εκτός από τους ήχους πολυμέσων έχουν σιγασθεί" diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 47bb242c0f0..c8cb4231a97 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -382,10 +382,7 @@ "Desconectando…" "Desconectado" "Incorrecto" - "Sonido y visualización" - "Configuración de sonido y visualización" "Configuración de sonido" - "Establecer tonos de llamada, notificaciones, brillo de pantalla" "Modo silencioso" "Todos los sonidos excepto los medios y las alarmas están en silencio" "Todos los sonidos excepto los medios están en silencio" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index add50e8d733..b311835b317 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -382,10 +382,7 @@ "Desconectando..." "Desconectada" "Con error" - "Sonido y pantalla" - "Configuración de sonido y de pantalla" "Configuración de sonido" - "Establecer tonos, notificaciones, brillo de la pantalla" "Modo silencio" "Silencio de todos los sonidos (excepto los multimedia y las alarmas)" "Todos los sonidos excepto los multimedia están silenciados." diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index ddc54901afa..98c0290b1fe 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -382,10 +382,7 @@ "Déconnexion…" "Déconnecté" "Échec" - "Sons et affichage" - "Paramètres des sons et affichages" "Paramètres sonores" - "Configurer les sonneries, les notifications et la luminosité" "Mode silencieux" "Aucun son sauf pour le multimédia et le réveil" "Toutes les sonneries seront définies sur Silencieux, sauf les fichiers multimédia." diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 31f26c4814e..c2a0ee77e2b 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -382,10 +382,7 @@ "Disconnessione..." "Disconnesso" "Non riuscita" - "Audio e display" - "Impostazioni audio e display" "Impostazioni audio" - "Imposta suonerie, notifiche e luminosità dello schermo" "Modalità silenziosa" "Tutti i suoni eccetto quelli multimediali verranno disattivati" "Tutti i suoni eccetto quelli multimediali verranno disattivati" diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 058eaee4239..ae51b3225aa 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -382,10 +382,7 @@ "切断中..." "切断" "失敗" - "サウンド & 画面設定" - "音と表示の設定" "音の設定" - "着信音、操作音、画面の明るさなど" "マナーモード" "音楽、動画メディア、アラーム以外は消音" "音楽と動画メディア以外は消音" diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index abca2cb3141..fc7e11e044d 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -382,10 +382,7 @@ "연결을 끊는 중..." "연결 끊김" "실패" - "소리 및 디스플레이" - "소리 및 디스플레이 설정" "소리 설정" - "벨소리, 알림, 화면 밝기 설정" "무음 모드" "미디어 및 알람을 제외하고 모두 무음 모드로 전환" "미디어를 제외하고 모두 무음 모드로 전환됩니다." diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 30b7e8677c7..55b7d1953df 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -382,10 +382,7 @@ "Kobler fra…" "Frakoblet" "Mislykket" - "Lyd og skjerm" - "Lyd og bilde" "Lydinnstillinger" - "Ringetoner, varsling, lysstyrke" "Stillemodus" "Slå av alle lyder unntatt media og alarmer" "Alle lyder unntatt media og alarmer er slått av" diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 3710ef49ce6..edf3d7e83f5 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -382,10 +382,7 @@ "Verbinding verbreken..." "Verbinding verbroken" "Mislukt" - "Geluid en weergave" - "Geluid- en weergaveinstellingen" "Geluidsinstellingen" - "Beltonen, meldingen, schermhelderheid instellen" "Stille modus" "Alle geluiden worden uitgeschakeld, behalve media- en alarmtonen" "Alle geluiden, behalve media, worden uitgeschakeld" diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 29c3d227218..05b9595abed 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -382,10 +382,7 @@ "Rozłączanie..." "Rozłączona" "Niepowodzenie" - "Dźwięk i wyświetlacz" - "Ustawienia dźwięku i wyświetlania" "Ustawienia dźwięku" - "Ustaw dzwonki, powiadomienia, jasność ekranu" "Tryb cichy" "Wszystkie dźwięki oprócz multimediów i alarmów są wyciszone" "Wszystkie dźwięki za wyjątkiem multimediów są wyciszone" diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 24aef17422e..c2e2660e6a3 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -387,10 +387,7 @@ "A desligar..." "Desligado" "Sem sucesso" - "Som e visualização" - "Definições de som e visualização" "Definições de som" - "Definir toques, notificações, brilho do ecrã" "Modo silencioso" "Todos os sons são silenciados, excepto multimédia e alarmes" "Todos os sons estão silenciados, excepto multimédia" diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 827c3243964..9c548b086f6 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -387,10 +387,7 @@ "Desconectando…" "Desconectado" "Falha" - "Som e tela" - "Configurações de som e tela" "Configurações de som" - "Definir toques, notificações, brilho da tela" "Modo silencioso" "Todos os sons, exceto de mídia e alarmes, são silenciados." "Todos os sons, exceto de mídia, estão silenciados" diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 88e183c1ef9..47667ca513d 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -382,10 +382,7 @@ "Отключение..." "Отключено" "Сбой" - "Звук и изображение" - "Звук и изображение" "Настройки звука" - "Настройка мелодий, уведомлений, яркости экрана" "Бесшумный режим" "Все звуки, кроме мультимедиа и будильника, отключены" "Все звуки, кроме аудио и видео, отключены" diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index b707a68e1df..8e550d9baee 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -382,10 +382,7 @@ "Kopplar ifrån…" "Frånkopplad" "Misslyckades" - "Ljud och skärm" - "Inställningar för ljud och skärm" "Ljudinställningar" - "Ställ in ringsignaler, aviseringar, skärmens ljusstryka" "Tyst läge" "Alla ljud utom media och larm tystas" "Alla ljud utom media tystas" diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index d9b347f146a..37b35710d35 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -382,10 +382,7 @@ "Bağlantı kesiliyor…" "Bağlantı kesildi" "Başarısız" - "Ses ve görüntü" - "Ses ve görüntü ayarları" "Ses ayarları" - "Zil seslerini, bildirimleri, ekran parlaklığını ayarla" "Sessiz mod" "Medya ve alarmlar dışında tüm sesleri susturulur" "Medya dışında tüm sesler susturulur" diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index aa9b803788c..651b0ac47fa 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -382,10 +382,7 @@ "正在断开连接..." "已断开连接" "失败" - "声音和显示" - "声音和显示设置" "声音设置" - "设置铃声、通知和屏幕亮度" "静音模式" "除媒体和闹钟之外,所有声音均设为静音" "对所有非多媒体声音进行静音处理" diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 170681c541c..d8127ccb42a 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -382,10 +382,7 @@ "連線中斷..." "已中斷連線" "失敗" - "音效與顯示" - "音效與顯示設定" "音效設定" - "設定鈴聲、通知與螢幕亮度" "靜音模式" "將媒體和鬧鐘以外的所有音效靜音" "將所有非媒體音效設為靜音" diff --git a/res/values/strings.xml b/res/values/strings.xml index 86cd087e14c..a70e7df0944 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -713,15 +713,15 @@ IP address Signal strength - + Turning on\u2026 - + Turning off\u2026 Error In airplane mode - + Unable to start Wi-Fi Unable to stop Wi-Fi @@ -952,28 +952,28 @@ Unsuccessful - - Sound & display - - Sound & display settings + + Sound + + Display Sound settings - - Set ringtones, notifications, screen brightness Silent mode - All sounds except media & alarms are silenced + Silence all sounds except media & alarms All sounds except media are silenced Phone ringtone - Set your default incoming call ringtone + "" + + Volume Ringer volume - Set volume for incoming calls and notifications + "" Phone vibrate @@ -981,7 +981,7 @@ Notification ringtone - Set your default notification ringtone + "" Pulse notification light @@ -999,6 +999,8 @@ Media volume Set volume for music and videos + + Alarm volume Audio settings for the attached dock @@ -1069,7 +1071,7 @@ Show animation when opening & closing windows - Orientation + Auto-rotate screen Switch orientation automatically when rotating phone @@ -1133,7 +1135,7 @@ System updates - Check for system updates + "" Firmware version @@ -1570,6 +1572,10 @@ Sort by size Manage space + + Filter + + Select filter options All @@ -1656,9 +1662,9 @@ found in the list of installed applications. Text settings - Select locale + Select language - Select language and region + "" Auto-replace @@ -1691,7 +1697,7 @@ found in the list of installed applications. User dictionary - Add & remove words from user dictionary + "" Add @@ -2336,7 +2342,7 @@ found in the list of installed applications. Remove Select device administrator - + Untitled diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml new file mode 100644 index 00000000000..5b7392483ef --- /dev/null +++ b/res/xml/display_settings.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + diff --git a/res/xml/settings.xml b/res/xml/settings.xml index 22f252345bd..00e4205d892 100644 --- a/res/xml/settings.xml +++ b/res/xml/settings.xml @@ -39,15 +39,26 @@ android:targetClass="com.android.phone.CallFeaturesSetting" /> - + + settings:icon="@drawable/ic_settings_sound" + android:title="@string/sound_settings_title"> + android:targetClass="com.android.settings.SoundSettings" /> + + + + + + diff --git a/res/xml/sound_and_display_settings.xml b/res/xml/sound_settings.xml similarity index 67% rename from res/xml/sound_and_display_settings.xml rename to res/xml/sound_settings.xml index 9ac3692e33a..c8a8d9765ac 100644 --- a/res/xml/sound_and_display_settings.xml +++ b/res/xml/sound_settings.xml @@ -15,11 +15,10 @@ --> - - - - - - - - - - - - - - - - - + android:key="emergency_tone" + android:title="@string/emergency_tone_title" + android:summary="@string/emergency_tone_summary" + android:entries="@array/emergency_tone_entries" + android:entryValues="@array/emergency_tone_values" /> diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java new file mode 100644 index 00000000000..28a5829f2f1 --- /dev/null +++ b/src/com/android/settings/DisplaySettings.java @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2010 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; + +import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; + +import com.android.settings.bluetooth.DockEventReceiver; + +import android.content.BroadcastReceiver; +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.media.AudioManager; +import android.os.Bundle; +import android.os.IMountService; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.preference.CheckBoxPreference; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceGroup; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.provider.Settings.SettingNotFoundException; +import android.telephony.TelephonyManager; +import android.util.Log; +import android.view.IWindowManager; + +public class DisplaySettings extends PreferenceActivity implements + Preference.OnPreferenceChangeListener { + private static final String TAG = "DisplaySettings"; + + /** If there is no setting in the provider, use this. */ + private static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000; + + private static final String KEY_SCREEN_TIMEOUT = "screen_timeout"; + private static final String KEY_ANIMATIONS = "animations"; + private static final String KEY_ACCELEROMETER = "accelerometer"; + + private ListPreference mAnimations; + private CheckBoxPreference mAccelerometer; + private float[] mAnimationScales; + + private IWindowManager mWindowManager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + ContentResolver resolver = getContentResolver(); + mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window")); + + addPreferencesFromResource(R.xml.display_settings); + + mAnimations = (ListPreference) findPreference(KEY_ANIMATIONS); + mAnimations.setOnPreferenceChangeListener(this); + mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER); + mAccelerometer.setPersistent(false); + + ListPreference screenTimeoutPreference = + (ListPreference) findPreference(KEY_SCREEN_TIMEOUT); + screenTimeoutPreference.setValue(String.valueOf(Settings.System.getInt( + resolver, SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE))); + screenTimeoutPreference.setOnPreferenceChangeListener(this); + + } + + @Override + protected void onResume() { + super.onResume(); + + updateState(true); + } + + private void updateState(boolean force) { + int animations = 0; + try { + mAnimationScales = mWindowManager.getAnimationScales(); + } catch (RemoteException e) { + } + if (mAnimationScales != null) { + if (mAnimationScales.length >= 1) { + animations = ((int)(mAnimationScales[0]+.5f)) % 10; + } + if (mAnimationScales.length >= 2) { + animations += (((int)(mAnimationScales[1]+.5f)) & 0x7) * 10; + } + } + int idx = 0; + int best = 0; + CharSequence[] aents = mAnimations.getEntryValues(); + for (int i=0; i best) { + best = val; + idx = i; + } + } + mAnimations.setValueIndex(idx); + updateAnimationsSummary(mAnimations.getValue()); + mAccelerometer.setChecked(Settings.System.getInt( + getContentResolver(), + Settings.System.ACCELEROMETER_ROTATION, 0) != 0); + } + + private void updateAnimationsSummary(Object value) { + CharSequence[] summaries = getResources().getTextArray(R.array.animations_summaries); + CharSequence[] values = mAnimations.getEntryValues(); + for (int i=0; i= 1) { + mAnimationScales[0] = value%10; + } + if (mAnimationScales.length >= 2) { + mAnimationScales[1] = (value/10)%10; + } + try { + mWindowManager.setAnimationScales(mAnimationScales); + } catch (RemoteException e) { + } + updateAnimationsSummary(objValue); + } catch (NumberFormatException e) { + Log.e(TAG, "could not persist animation setting", e); + } + + } + if (KEY_SCREEN_TIMEOUT.equals(key)) { + int value = Integer.parseInt((String) objValue); + try { + Settings.System.putInt(getContentResolver(), + SCREEN_OFF_TIMEOUT, value); + } catch (NumberFormatException e) { + Log.e(TAG, "could not persist screen timeout setting", e); + } + } + + return true; + } +} diff --git a/src/com/android/settings/RingerVolumePreference.java b/src/com/android/settings/RingerVolumePreference.java index 0d01965732f..a546818c0ea 100644 --- a/src/com/android/settings/RingerVolumePreference.java +++ b/src/com/android/settings/RingerVolumePreference.java @@ -39,16 +39,28 @@ public class RingerVolumePreference extends VolumePreference implements private static final String TAG = "RingerVolumePreference"; private CheckBox mNotificationsUseRingVolumeCheckbox; - private SeekBarVolumizer mNotificationSeekBarVolumizer; + private SeekBarVolumizer [] mSeekBarVolumizer; + private static final int[] SEEKBAR_ID = new int[] { + R.id.notification_volume_seekbar, + R.id.media_volume_seekbar, + R.id.alarm_volume_seekbar + }; + private static final int[] SEEKBAR_TYPE = new int[] { + AudioManager.STREAM_NOTIFICATION, + AudioManager.STREAM_MUSIC, + AudioManager.STREAM_ALARM + }; + //private SeekBarVolumizer mNotificationSeekBarVolumizer; private TextView mNotificationVolumeTitle; - + public RingerVolumePreference(Context context, AttributeSet attrs) { super(context, attrs); // The always visible seekbar is for ring volume setStreamType(AudioManager.STREAM_RING); - + setDialogLayoutResource(R.layout.preference_dialog_ringervolume); + mSeekBarVolumizer = new SeekBarVolumizer[SEEKBAR_ID.length]; } @Override @@ -61,13 +73,14 @@ public class RingerVolumePreference extends VolumePreference implements mNotificationsUseRingVolumeCheckbox.setChecked(Settings.System.getInt( getContext().getContentResolver(), Settings.System.NOTIFICATIONS_USE_RING_VOLUME, 1) == 1); - - final SeekBar seekBar = (SeekBar) view.findViewById(R.id.notification_volume_seekbar); - mNotificationSeekBarVolumizer = new SeekBarVolumizer(getContext(), seekBar, - AudioManager.STREAM_NOTIFICATION); - + + for (int i = 0; i < SEEKBAR_ID.length; i++) { + SeekBar seekBar = (SeekBar) view.findViewById(SEEKBAR_ID[i]); + mSeekBarVolumizer[i] = new SeekBarVolumizer(getContext(), seekBar, + SEEKBAR_TYPE[i]); + } + mNotificationVolumeTitle = (TextView) view.findViewById(R.id.notification_volume_title); - setNotificationVolumeVisibility(!mNotificationsUseRingVolumeCheckbox.isChecked()); } @@ -75,10 +88,11 @@ public class RingerVolumePreference extends VolumePreference implements protected void onDialogClosed(boolean positiveResult) { super.onDialogClosed(positiveResult); - if (!positiveResult && mNotificationSeekBarVolumizer != null) { - mNotificationSeekBarVolumizer.revertVolume(); - } - + if (!positiveResult) { + for (SeekBarVolumizer vol : mSeekBarVolumizer) { + if (vol != null) vol.revertVolume(); + } + } cleanup(); } @@ -107,29 +121,28 @@ public class RingerVolumePreference extends VolumePreference implements @Override protected void onSampleStarting(SeekBarVolumizer volumizer) { super.onSampleStarting(volumizer); - - if (mNotificationSeekBarVolumizer != null && volumizer != mNotificationSeekBarVolumizer) { - mNotificationSeekBarVolumizer.stopSample(); + for (SeekBarVolumizer vol : mSeekBarVolumizer) { + if (vol != volumizer) vol.stopSample(); } } private void setNotificationVolumeVisibility(boolean visible) { - if (mNotificationSeekBarVolumizer != null) { - mNotificationSeekBarVolumizer.getSeekBar().setVisibility( - visible ? View.VISIBLE : View.GONE); - mNotificationVolumeTitle.setVisibility(visible ? View.VISIBLE : View.GONE); - } + mSeekBarVolumizer[0].getSeekBar().setVisibility( + visible ? View.VISIBLE : View.GONE); + mNotificationVolumeTitle.setVisibility(visible ? View.VISIBLE : View.GONE); } - + private void cleanup() { - if (mNotificationSeekBarVolumizer != null) { - Dialog dialog = getDialog(); - if (dialog != null && dialog.isShowing()) { - // Stopped while dialog was showing, revert changes - mNotificationSeekBarVolumizer.revertVolume(); + for (int i = 0; i < SEEKBAR_ID.length; i++) { + if (mSeekBarVolumizer[i] != null) { + Dialog dialog = getDialog(); + if (dialog != null && dialog.isShowing()) { + // Stopped while dialog was showing, revert changes + mSeekBarVolumizer[i].revertVolume(); + } + mSeekBarVolumizer[i].stop(); + mSeekBarVolumizer[i] = null; } - mNotificationSeekBarVolumizer.stop(); - mNotificationSeekBarVolumizer = null; } } @@ -142,8 +155,12 @@ public class RingerVolumePreference extends VolumePreference implements } final SavedState myState = new SavedState(superState); - if (mNotificationSeekBarVolumizer != null) { - mNotificationSeekBarVolumizer.onSaveInstanceState(myState.getVolumeStore()); + VolumeStore[] volumeStore = myState.getVolumeStore(SEEKBAR_ID.length); + for (int i = 0; i < SEEKBAR_ID.length; i++) { + SeekBarVolumizer vol = mSeekBarVolumizer[i]; + if (vol != null) { + vol.onSaveInstanceState(volumeStore[i]); + } } return myState; } @@ -158,28 +175,44 @@ public class RingerVolumePreference extends VolumePreference implements SavedState myState = (SavedState) state; super.onRestoreInstanceState(myState.getSuperState()); - if (mNotificationSeekBarVolumizer != null) { - mNotificationSeekBarVolumizer.onRestoreInstanceState(myState.getVolumeStore()); + VolumeStore[] volumeStore = myState.getVolumeStore(SEEKBAR_ID.length); + for (int i = 0; i < SEEKBAR_ID.length; i++) { + SeekBarVolumizer vol = mSeekBarVolumizer[i]; + if (vol != null) { + vol.onRestoreInstanceState(volumeStore[i]); + } } } private static class SavedState extends BaseSavedState { - VolumeStore mVolumeStore = new VolumeStore(); + VolumeStore [] mVolumeStore; public SavedState(Parcel source) { super(source); - mVolumeStore.volume = source.readInt(); - mVolumeStore.originalVolume = source.readInt(); + mVolumeStore = new VolumeStore[SEEKBAR_ID.length]; + for (int i = 0; i < SEEKBAR_ID.length; i++) { + mVolumeStore[i] = new VolumeStore(); + mVolumeStore[i].volume = source.readInt(); + mVolumeStore[i].originalVolume = source.readInt(); + } } @Override public void writeToParcel(Parcel dest, int flags) { super.writeToParcel(dest, flags); - dest.writeInt(mVolumeStore.volume); - dest.writeInt(mVolumeStore.originalVolume); + for (int i = 0; i < SEEKBAR_ID.length; i++) { + dest.writeInt(mVolumeStore[i].volume); + dest.writeInt(mVolumeStore[i].originalVolume); + } } - VolumeStore getVolumeStore() { + VolumeStore[] getVolumeStore(int count) { + if (mVolumeStore == null || mVolumeStore.length != count) { + mVolumeStore = new VolumeStore[count]; + for (int i = 0; i < count; i++) { + mVolumeStore[i] = new VolumeStore(); + } + } return mVolumeStore; } diff --git a/src/com/android/settings/SoundAndDisplaySettings.java b/src/com/android/settings/SoundSettings.java similarity index 72% rename from src/com/android/settings/SoundAndDisplaySettings.java rename to src/com/android/settings/SoundSettings.java index 29eb8783b41..9ac2fe1f12a 100644 --- a/src/com/android/settings/SoundAndDisplaySettings.java +++ b/src/com/android/settings/SoundSettings.java @@ -40,7 +40,7 @@ import android.telephony.TelephonyManager; import android.util.Log; import android.view.IWindowManager; -public class SoundAndDisplaySettings extends PreferenceActivity implements +public class SoundSettings extends PreferenceActivity implements Preference.OnPreferenceChangeListener { private static final String TAG = "SoundAndDisplaysSettings"; @@ -50,12 +50,9 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements private static final String KEY_SILENT = "silent"; private static final String KEY_VIBRATE = "vibrate"; - private static final String KEY_SCREEN_TIMEOUT = "screen_timeout"; private static final String KEY_DTMF_TONE = "dtmf_tone"; private static final String KEY_SOUND_EFFECTS = "sound_effects"; private static final String KEY_HAPTIC_FEEDBACK = "haptic_feedback"; - private static final String KEY_ANIMATIONS = "animations"; - private static final String KEY_ACCELEROMETER = "accelerometer"; private static final String KEY_PLAY_MEDIA_NOTIFICATION_SOUNDS = "play_media_notification_sounds"; private static final String KEY_EMERGENCY_TONE = "emergency_tone"; @@ -79,15 +76,10 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements private CheckBoxPreference mDtmfTone; private CheckBoxPreference mSoundEffects; private CheckBoxPreference mHapticFeedback; - private ListPreference mAnimations; - private CheckBoxPreference mAccelerometer; private CheckBoxPreference mNotificationPulse; - private float[] mAnimationScales; private AudioManager mAudioManager; - private IWindowManager mWindowManager; - private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -106,11 +98,10 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements int activePhoneType = TelephonyManager.getDefault().getPhoneType(); mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); - mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window")); mMountService = IMountService.Stub.asInterface(ServiceManager.getService("mount")); - addPreferencesFromResource(R.xml.sound_and_display_settings); + addPreferencesFromResource(R.xml.sound_settings); if (TelephonyManager.PHONE_TYPE_CDMA != activePhoneType) { // device is not CDMA, do not display CDMA emergency_tone @@ -133,16 +124,6 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements mHapticFeedback.setPersistent(false); mHapticFeedback.setChecked(Settings.System.getInt(resolver, Settings.System.HAPTIC_FEEDBACK_ENABLED, 0) != 0); - mAnimations = (ListPreference) findPreference(KEY_ANIMATIONS); - mAnimations.setOnPreferenceChangeListener(this); - mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER); - mAccelerometer.setPersistent(false); - - ListPreference screenTimeoutPreference = - (ListPreference) findPreference(KEY_SCREEN_TIMEOUT); - screenTimeoutPreference.setValue(String.valueOf(Settings.System.getInt( - resolver, SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE))); - screenTimeoutPreference.setOnPreferenceChangeListener(this); if (TelephonyManager.PHONE_TYPE_CDMA == activePhoneType) { ListPreference emergencyTonePreference = @@ -219,47 +200,6 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements R.string.silent_mode_incl_alarm_summary : R.string.silent_mode_summary); - int animations = 0; - try { - mAnimationScales = mWindowManager.getAnimationScales(); - } catch (RemoteException e) { - } - if (mAnimationScales != null) { - if (mAnimationScales.length >= 1) { - animations = ((int)(mAnimationScales[0]+.5f)) % 10; - } - if (mAnimationScales.length >= 2) { - animations += (((int)(mAnimationScales[1]+.5f)) & 0x7) * 10; - } - } - int idx = 0; - int best = 0; - CharSequence[] aents = mAnimations.getEntryValues(); - for (int i=0; i best) { - best = val; - idx = i; - } - } - mAnimations.setValueIndex(idx); - updateAnimationsSummary(mAnimations.getValue()); - mAccelerometer.setChecked(Settings.System.getInt( - getContentResolver(), - Settings.System.ACCELEROMETER_ROTATION, 0) != 0); - } - - private void updateAnimationsSummary(Object value) { - CharSequence[] summaries = getResources().getTextArray(R.array.animations_summaries); - CharSequence[] values = mAnimations.getEntryValues(); - for (int i=0; i= 1) { - mAnimationScales[0] = value%10; - } - if (mAnimationScales.length >= 2) { - mAnimationScales[1] = (value/10)%10; - } - try { - mWindowManager.setAnimationScales(mAnimationScales); - } catch (RemoteException e) { - } - updateAnimationsSummary(objValue); - } catch (NumberFormatException e) { - Log.e(TAG, "could not persist animation setting", e); - } - - } - if (KEY_SCREEN_TIMEOUT.equals(key)) { - int value = Integer.parseInt((String) objValue); - try { - Settings.System.putInt(getContentResolver(), - SCREEN_OFF_TIMEOUT, value); - } catch (NumberFormatException e) { - Log.e(TAG, "could not persist screen timeout setting", e); - } - } else if (KEY_EMERGENCY_TONE.equals(key)) { + if (KEY_EMERGENCY_TONE.equals(key)) { int value = Integer.parseInt((String) objValue); try { Settings.System.putInt(getContentResolver(), diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java index 0c44c40b7c6..a98bfed6761 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java @@ -271,7 +271,7 @@ public class PowerUsageDetail extends Activity implements Button.OnClickListener } break; case SCREEN: - addControl(R.string.sound_and_display_settings, + addControl(R.string.display_settings, R.string.battery_sugg_display, ACTION_DISPLAY_SETTINGS); removeHeader = false;