Merge commit 'korg/cupcake'

This commit is contained in:
The Android Open Source Project
2009-03-27 15:31:13 -07:00
56 changed files with 2490 additions and 1250 deletions

View File

@@ -145,6 +145,8 @@
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.settings.INPUT_METHOD_SETTINGS" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
@@ -157,16 +159,6 @@
</intent-filter>
</activity>
<activity android:name="InputMethodsSettings" android:icon="@drawable/app_settings"
android:label="@string/input_methods_settings_title"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.settings.INPUT_METHOD_SETTINGS" />
<category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter>
</activity>
<activity android:name="UserDictionarySettings" android:icon="@drawable/app_settings"
android:label="@string/user_dict_settings_titlebar">
<intent-filter>
@@ -381,7 +373,9 @@
</intent-filter>
</receiver>
<activity android:name="ActivityPicker" android:label="@string/activity_picker_label">
<activity android:name="ActivityPicker"
android:label="@string/activity_picker_label"
android:theme="@*android:style/Theme.Dialog.Alert">
<intent-filter>
<action android:name="android.intent.action.PICK_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
@@ -482,7 +476,9 @@
</receiver>
<!-- Standard picker for widgets -->
<activity android:name="AppWidgetPickActivity" android:label="@string/widget_picker_title">
<activity android:name="AppWidgetPickActivity"
android:label="@string/widget_picker_title"
android:theme="@*android:style/Theme.Dialog.Alert">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_PICK" />
<category android:name="android.intent.category.DEFAULT" />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical">
<RelativeLayout
android:id="@+android:id/text_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16sp"
android:layout_marginRight="6sp"
android:layout_marginTop="6sp"
android:layout_marginBottom="6sp"
android:layout_weight="1"
android:focusable="true"
android:background="@android:drawable/menuitem_background">
<TextView
android:id="@+android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@android:id/title"
android:layout_alignLeft="@android:id/title"
android:textAppearance="?android:attr/textAppearanceSmall"
android:maxLines="2" />
</RelativeLayout>
<RadioButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+android:id/apn_radiobutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"
android:layout_gravity="center_vertical"
android:clickable="true" />
</LinearLayout>

View File

@@ -68,22 +68,5 @@
<TextView android:id="@+id/uptime" style="@style/info_value" />
</LinearLayout>
<!-- Awaketime Battery -->
<LinearLayout style="@style/entry_layout">
<TextView android:text="@string/battery_info_awake_battery" style="@style/info_label" />
<TextView android:id="@+id/awakeBattery" style="@style/info_value" />
</LinearLayout>
<!-- Awaketime Plugged In -->
<LinearLayout style="@style/entry_layout">
<TextView android:text="@string/battery_info_awake_plugged" style="@style/info_label" />
<TextView android:id="@+id/awakePlugged" style="@style/info_value" />
</LinearLayout>
<!-- Screen On Time -->
<LinearLayout style="@style/entry_layout">
<TextView android:text="@string/battery_info_screen_on" style="@style/info_label" />
<TextView android:id="@+id/screenOn" style="@style/info_value" />
</LinearLayout>
</LinearLayout>

View File

@@ -265,6 +265,24 @@
android:layout_height="wrap_content" />
</RelativeLayout>
<!-- Other controls section -->
<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:text="@string/controls_label" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical">
<Button android:id="@+id/force_stop_button"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_width="150dip"
android:text="@string/force_stop"
android:layout_height="wrap_content" />
</RelativeLayout>
<!-- Permissions section -->
<LinearLayout
android:id="@+id/permissions_section"
@@ -288,24 +306,6 @@
android:layout_height="fill_parent"
android:orientation="vertical"/>
</LinearLayout>
<!-- Prefered activities section -->
<TextView
style="?android:attr/listSeparatorTextViewStyle"
android:text="@string/controls_label" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical">
<Button android:id="@+id/force_stop_button"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_width="150dip"
android:text="@string/force_stop"
android:layout_height="wrap_content" />
</RelativeLayout>
</LinearLayout>
</ScrollView>

25
res/layout/pick_item.xml Executable file
View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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.
-->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLargeInverse"
android:gravity="center_vertical"
android:drawablePadding="14dip"
android:paddingLeft="15dip"
android:paddingRight="15dip" />

View File

@@ -55,15 +55,19 @@
<item>"Nikdy, je-li zapnuto napájení"</item>
<item>"Nikdy"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"Využití CPU"</item>
<item>"Využití sítě"</item>
<item>"Využití GPS"</item>
<item>"Využití senzoru"</item>
<item>"Použití při částečném probuzení"</item>
<item>"Další využití"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"Od posledního odpojení"</item>
<item>"Celkem od spuštění"</item>
<item>"Celkem za celou dobu"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"Doba použití"</item>
<item>"Počet spuštění"</item>

View File

@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"Odpojeno"</string>
<string name="bluetooth_disconnecting">"Odpojování..."</string>
<string name="bluetooth_connecting">"Připojování..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Párovat s tímto zařízením"</string>
<string name="bluetooth_pairing">"Párování..."</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"Spárováno, ale nepřipojeno"</string>
<string name="bluetooth_device">"Náhlavní souprava či handsfree"</string>
<string name="progress_scanning">"Vyhledávání"</string>
<string name="bluetooth_notif_ticker">"Požadavek na párování zařízení Bluetooth"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"Volba časového pásma"</string>
<string name="display_preview_label">"Náhled:"</string>
<string name="display_font_size_label">"Velikost písma:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"Odeslat <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -339,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Umožňuje nastavit vyzváněcí tón, oznámení a jas obrazovky"</string>
<string name="silent_mode_title">"Tichý režim"</string>
<string name="silent_mode_summary">"Ztiší všechny zvuky kromě médií a upozornění"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Vyzváněcí tón telefonu"</string>
<string name="ringtone_summary">"Umožňuje nastavit výchozí vyzváněcí tón příchozího hovoru"</string>
<string name="ring_volume_title">"Hlasitost vyzvánění"</string>
@@ -367,7 +368,10 @@
<string name="display_settings">"Nastavení zobrazení"</string>
<string name="animations_title">"Animace"</string>
<string name="animations_summary_on">"Zobrazit animace otevírání a zavírání oken"</string>
<string name="animations_summary_off">"Animuje otevírání a zavírání oken"</string>
<string name="animations_summary_off">"Zobrazit animace otevírání a zavírání oken"</string>
<string name="accelerometer_title">"Orientace"</string>
<string name="accelerometer_summary_on">"Přepínat orientaci automaticky při otáčení telefonu"</string>
<string name="accelerometer_summary_off">"Přepínat orientaci automaticky při otáčení telefonu"</string>
<string name="brightness">"Jas"</string>
<string name="brightness_summary">"Nastavte jas displeje"</string>
<string name="screen_timeout">"Interval vypnutí obrazovky"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"Název AP nemůže být prázdný."</string>
<string name="error_mcc_not3">"Pole MCC musí obsahovat alespoň 3 číslice."</string>
<string name="error_mnc_not23">"Pole MNC musí obsahovat 2 nebo 3 číslice."</string>
<string name="restore_default_apn">"Obnovování výchozích nastavení názvu AP"</string>
<string name="menu_restore">"Obnovit výchozí"</string>
<string name="restore_default_apn_completed">"Obnovení výchozích nastavení názvu AP bylo dokončeno."</string>
<string name="master_clear_title">"Obnovení továrních dat"</string>
<string name="master_clear_summary">"Umožňuje odstranit všechna data v telefonu"</string>
<string name="master_clear_desc">"Tato akce obnoví výchozí tovární nastavení telefonu. Všechna data a stažené aplikace budou smazány."</string>
@@ -587,11 +594,14 @@
<string name="auto_punctuate_summary">"Znak „.“ lze vložit dvěma stisky klávesy Mezerník."</string>
<string name="show_password">"Zobrazování hesel"</string>
<string name="show_password_summary">"Zadávané heslo je zobrazováno"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Uživatelský slovník"</string>
<string name="user_dict_settings_title">"Uživatelský slovník"</string>
<string name="user_dict_settings_summary">"Přidat nebo odebrat slova z uživatelského slovníku"</string>
<string name="user_dict_settings_add_menu_title">"Přidat"</string>
<string name="user_dict_settings_add_dialog_title">"Přidat do slovníku"</string>
<string name="user_dict_settings_edit_dialog_title">"Upravit slovo"</string>
<string name="user_dict_settings_context_menu_edit_title">"Upravit"</string>
<string name="user_dict_settings_context_menu_delete_title">"Smazat"</string>
<string name="user_dict_settings_empty_text">"V uživatelském slovníku nejsou žádná slova. Slovo můžete přidat pomocí nabídky."</string>
@@ -612,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"Klávesové zkratky"</string>
<string name="input_methods_settings_title">"Zadávání textu"</string>
<string name="input_methods_settings_summary">"Správa možností zadávání textu"</string>
<string name="input_methods_settings_label_format">"%s: nastavení"</string>
<string name="input_methods_settings_label_format">"Nastavení metody <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
<string name="onscreen_keyboard_settings_summary">"Nastavení klávesnice na obrazovce"</string>
<string name="builtin_keyboard_settings_title">"Klávesnice zařízení"</string>
<string name="builtin_keyboard_settings_summary">"Nastavení vestavěné klávesnice"</string>
<string name="development_settings_title">"Vývoj"</string>
<string name="development_settings_summary">"Umožňuje nastavit možnosti pro vývoj aplikace"</string>
<string name="enable_adb">"Ladění USB"</string>
@@ -621,10 +634,8 @@
<string name="keep_screen_on_summary">"Obrazovka se při nabíjení nepřepne do režimu spánku"</string>
<string name="allow_mock_location">"Povoluje simulované polohy"</string>
<string name="allow_mock_location_summary">"Povoluje simulované polohy"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"Zvolte gadget"</string>
<string name="widget_picker_title">"Zvolte widget"</string>
<string name="battery_history_details_for">"Podrobnosti pro UID %d"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Podrobnosti o používání sítě aplikací <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
@@ -643,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"Balíčky sdílející toto UID:"</string>
<string name="battery_history_no_data">"Údaje o využití baterie nejsou k dispozici"</string>
<string name="battery_history_sensor">"Senzor:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Částečný zámek probuzení:"</string>
<string name="battery_history_used_by_packages">"Senzor je používán následujícími balíčky:"</string>
<string name="battery_history_sensor_usage">"Použito <xliff:g id="COUNT">%1$d</xliff:g>krát balíčkem <xliff:g id="PACKAGE">%2$s</xliff:g>"</string>
<string name="battery_history_sensor_usage_multi">"Použito <xliff:g id="COUNT">%1$d</xliff:g>krát některým z následujících:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"Spuštěné"</string>
<string name="battery_history_screen_on_label">"Obrazovka zapnutá"</string>
<string name="battery_history_phone_on_label">"Telefon zapnutý"</string>
<string name="battery_history_awake">"Doba bez režimu spánku:"</string>
<string name="battery_history_screen_on">"Doba se zapnutou obrazovkou:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Doba se zapnutým telefonem:"</string>
<string name="battery_history_screen_on_battery">"Na baterii:"</string>
<string name="battery_history_screen_on_plugged">"Připojeno:"</string>
<string name="usage_stats_label">"Statistika použití"</string>

View File

@@ -55,15 +55,19 @@
<item>"Niemals im Netzbetrieb"</item>
<item>"Niemals"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"CPU-Verwendung"</item>
<item>"Netzwerknutzung"</item>
<item>"GPS-Verwendung"</item>
<item>"Sensornutzung"</item>
<item>"Verwendung im Teilwachzustand"</item>
<item>"Andere Verwendung"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"Seit dem letzten Ausstecken"</item>
<item>"Seit Start insgesamt"</item>
<item>"Insgesamt in Gesamtzeit"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"Nutzungszeit"</item>
<item>"Startzähler"</item>

View File

@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"Nicht verbunden"</string>
<string name="bluetooth_disconnecting">"Verbindung wird getrennt..."</string>
<string name="bluetooth_connecting">"Verbindung wird hergestellt..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Pairing mit diesem Gerät"</string>
<string name="bluetooth_pairing">"Pairing…"</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"Gepaart, jedoch nicht verbunden"</string>
<string name="bluetooth_device">"Freisprechfunktion/Headset"</string>
<string name="progress_scanning">"Scannen..."</string>
<string name="bluetooth_notif_ticker">"Bluetooth-Pairing-Anfrage"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"Zeitzone auswählen"</string>
<string name="display_preview_label">"Vorschau:"</string>
<string name="display_font_size_label">"Schriftgröße:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"<xliff:g id="BROADCAST">broadcast</xliff:g> senden"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -339,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Klingeltöne, Benachrichtigungen und Helligkeit festlegen"</string>
<string name="silent_mode_title">"Lautlosmodus"</string>
<string name="silent_mode_summary">"Alle Töne außer für Medien und Warnungen sind stummgeschaltet"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Klingelton"</string>
<string name="ringtone_summary">"Standardklingelton für eingehende Anrufe festlegen"</string>
<string name="ring_volume_title">"Klingeltonlautstärke"</string>
@@ -366,8 +367,11 @@
<string name="sync_settings_summary">"Auswählen, welche Anwendungen synchronisiert werden"</string>
<string name="display_settings">"Display-Einstellungen"</string>
<string name="animations_title">"Animation"</string>
<string name="animations_summary_on">"Animation beim Öffnen/Schließen von Fenstern anzeigen"</string>
<string name="animations_summary_off">"Animation beim Öffnen/Schließen von Fenstern anzeigen"</string>
<string name="animations_summary_on">"Animation beim Öffnen und Schließen von Fenstern anzeigen"</string>
<string name="animations_summary_off">"Animation beim Öffnen und Schließen von Fenstern anzeigen"</string>
<string name="accelerometer_title">"Ausrichtung"</string>
<string name="accelerometer_summary_on">"Ausrichtung beim Drehen des Telefons automatisch ändern"</string>
<string name="accelerometer_summary_off">"Ausrichtung beim Drehen des Telefons automatisch ändern"</string>
<string name="brightness">"Helligkeit"</string>
<string name="brightness_summary">"Helligkeit des Bildschirms anpassen"</string>
<string name="screen_timeout">"Display-Timeout"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"Der APN darf nicht leer sein."</string>
<string name="error_mcc_not3">"Das MCC-Feld muss 3 Zeichen enthalten."</string>
<string name="error_mnc_not23">"Das MNC-Feld muss 2 oder 3 Zeichen enthalten."</string>
<string name="restore_default_apn">"Standard-APN-Einstellungen werden wiederhergestellt"</string>
<string name="menu_restore">"Auf Standardeinstellung zurücksetzen"</string>
<string name="restore_default_apn_completed">"Zurücksetzen auf Standard-APN-Einstellungen abgeschlossen"</string>
<string name="master_clear_title">"Auf Werkszustand zurück"</string>
<string name="master_clear_summary">"Löscht alle Daten auf dem Telefon"</string>
<string name="master_clear_desc">"Durch diese Aktion wird das Telefon auf den Werkszustand zurückgesetzt. Alle Daten und heruntergeladenen Anwendungen werden gelöscht!"</string>
@@ -587,11 +594,14 @@
<string name="auto_punctuate_summary">"Leertaste zweimal drücken, um \".\" hinzuzufügen"</string>
<string name="show_password">"Sichtbare Passwörter"</string>
<string name="show_password_summary">"Passwort bei der Eingabe anzeigen"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Wörterbuch des Nutzers"</string>
<string name="user_dict_settings_title">"Wörterbuch des Nutzers"</string>
<string name="user_dict_settings_summary">"Hinzufügen &amp; Entfernen von Wörtern im Wörterbuch des Nutzers"</string>
<string name="user_dict_settings_add_menu_title">"Hinzufügen"</string>
<string name="user_dict_settings_add_dialog_title">"Zum Wörterbuch hinzufügen"</string>
<string name="user_dict_settings_edit_dialog_title">"Wort bearbeiten"</string>
<string name="user_dict_settings_context_menu_edit_title">"Bearbeiten"</string>
<string name="user_dict_settings_context_menu_delete_title">"Löschen"</string>
<string name="user_dict_settings_empty_text">"Sie haben keine Wörter im Nutzerwörterbuch. Sie können über das Menü ein Wort hinzufügen."</string>
@@ -612,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"Tastenkombinationen"</string>
<string name="input_methods_settings_title">"Texteingabe"</string>
<string name="input_methods_settings_summary">"Optionen für Texteingabe verwalten"</string>
<string name="input_methods_settings_label_format">"%s Einstellungen"</string>
<string name="input_methods_settings_label_format">"<xliff:g id="IME_NAME">%1$s</xliff:g>-Einstellungen"</string>
<string name="onscreen_keyboard_settings_summary">"Einstellungen für Bildschirmtastatur"</string>
<string name="builtin_keyboard_settings_title">"Tastatur des Geräts"</string>
<string name="builtin_keyboard_settings_summary">"Einstellungen für eingebaute Tastatur"</string>
<string name="development_settings_title">"Entwicklung"</string>
<string name="development_settings_summary">"Optionen zur Anwendungsentwicklung festlegen"</string>
<string name="enable_adb">"USB-Debugging"</string>
@@ -621,10 +634,8 @@
<string name="keep_screen_on_summary">"Display wird beim Laden nie in den Ruhezustand versetzt"</string>
<string name="allow_mock_location">"Falsche Standorte zulassen"</string>
<string name="allow_mock_location_summary">"Falsche Standorte zulassen"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"Gadget auswählen"</string>
<string name="widget_picker_title">"Widget auswählen"</string>
<string name="battery_history_details_for">"Details für UID %d"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Netzwerk-Nutzungsdetails für <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
@@ -643,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"Pakete, die diese UID teilen:"</string>
<string name="battery_history_no_data">"Keine Akku-Nutzungsdaten verfügbar"</string>
<string name="battery_history_sensor">"Sensor:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Sperre im Teilwachzustand:"</string>
<string name="battery_history_used_by_packages">"Sensor verwendet von Paketen:"</string>
<string name="battery_history_sensor_usage">"<xliff:g id="COUNT">%1$d</xliff:g> mal von <xliff:g id="PACKAGE">%2$s</xliff:g> verwendet"</string>
<string name="battery_history_sensor_usage_multi">"<xliff:g id="COUNT">%1$d</xliff:g> mal von einem der folgenden verwendet:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"Wird ausgeführt"</string>
<string name="battery_history_screen_on_label">"Bildschirm aktiviert"</string>
<string name="battery_history_phone_on_label">"Telefon aktiviert"</string>
<string name="battery_history_awake">"Zeit ohne Schlafmodus:"</string>
<string name="battery_history_screen_on">"Zeit mit Display eingeschaltet:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Zeit mit eingeschaltetem Telefon:"</string>
<string name="battery_history_screen_on_battery">"Auf Akku:"</string>
<string name="battery_history_screen_on_plugged">"Eingesteckt:"</string>
<string name="usage_stats_label">"Nutzungsstatistik"</string>

View File

@@ -55,15 +55,19 @@
<item>"Nunca si está conectado"</item>
<item>"Nunca"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"Uso de CPU"</item>
<item>"Uso de red"</item>
<item>"Uso de GPS"</item>
<item>"Uso del sensor"</item>
<item>"Uso de actividad parcial"</item>
<item>"Otro uso"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"Desde la última vez que se desconectó"</item>
<item>"Total desde inicio"</item>
<item>"Total durante todo el tiempo"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"Tiempo de uso"</item>
<item>"Número de inicios"</item>

View File

@@ -94,11 +94,11 @@
<string name="bluetooth_disconnected">"Desconectada"</string>
<string name="bluetooth_disconnecting">"Desconectando..."</string>
<string name="bluetooth_connecting">"Estableciendo conexión..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Sincronizar con este dispositivo"</string>
<string name="bluetooth_pairing">"Sincronizando..."</string>
<string name="bluetooth_paired">"Sincronizado pero no conectado"</string>
<string name="bluetooth_paired">"Sincronizado, pero sin conexión"</string>
<string name="bluetooth_device">"manos libres/auriculares"</string>
<string name="progress_scanning">"Buscando..."</string>
<string name="bluetooth_notif_ticker">"Solicitud de sincronización de Bluetooth"</string>
@@ -110,7 +110,7 @@
<string name="choose_timezone">"Seleccionar zona horaria"</string>
<string name="display_preview_label">"Vista previa:"</string>
<string name="display_font_size_label">"Tamaño de fuente:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"Enviar <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -338,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Establecer tonos, notificaciones, brillo de la pantalla"</string>
<string name="silent_mode_title">"Modo silencio"</string>
<string name="silent_mode_summary">"Silencio de todos los sonidos (excepto los multimedia y las alarmas)"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Tono del teléfono"</string>
<string name="ringtone_summary">"Establecer el tono de llamada entrante predeterminado"</string>
<string name="ring_volume_title">"Volumen del timbre"</string>
@@ -365,8 +367,11 @@
<string name="sync_settings_summary">"Seleccionar las aplicaciones que están sincronizadas"</string>
<string name="display_settings">"Configuración de pantalla"</string>
<string name="animations_title">"Animación"</string>
<string name="animations_summary_on">"Mostrar animación al abrir o cerrar ventanas"</string>
<string name="animations_summary_off">"Mostrar animación al abrir o cerrar ventanas"</string>
<string name="animations_summary_on">"Mostrar animación al abrir y cerrar ventanas"</string>
<string name="animations_summary_off">"Mostrar animación al abrir y cerrar ventanas"</string>
<string name="accelerometer_title">"Orientación"</string>
<string name="accelerometer_summary_on">"Cambiar orientación automáticamente al girar el teléfono"</string>
<string name="accelerometer_summary_off">"Cambiar orientación automáticamente al girar el teléfono"</string>
<string name="brightness">"Brillo"</string>
<string name="brightness_summary">"Ajustar el brillo de la pantalla"</string>
<string name="screen_timeout">"Tiempo de espera de pantalla"</string>
@@ -455,6 +460,9 @@
<string name="error_apn_empty">"El campo de APN no puede estar vacío."</string>
<string name="error_mcc_not3">"El campo MMC debe contener 3 dígitos."</string>
<string name="error_mnc_not23">"El campo MNC debe contener 2 ó 3 dígitos."</string>
<string name="restore_default_apn">"Restaurando la configuración de APN predeterminada"</string>
<string name="menu_restore">"Restablecer valores predeterminados"</string>
<string name="restore_default_apn_completed">"Restablecimiento de la configuración de APN predeterminada completado"</string>
<string name="master_clear_title">"Restablecer datos de fábrica"</string>
<string name="master_clear_summary">"Borrar todos los datos del teléfono"</string>
<string name="master_clear_desc">"Esta acción restablecerá el teléfono a su estado de fábrica inicial y borrará todos los datos y todas las aplicaciones descargadas."</string>
@@ -586,11 +594,14 @@
<string name="auto_punctuate_summary">"Pulsa la barra espaciadora dos veces para insertar el carácter \".\""</string>
<string name="show_password">"Contraseñas visibles"</string>
<string name="show_password_summary">"Mostrar contraseña mientras se escribe"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Diccionario del usuario"</string>
<string name="user_dict_settings_title">"Diccionario del usuario"</string>
<string name="user_dict_settings_summary">"Añadir y eliminar palabras del diccionario del usuario"</string>
<string name="user_dict_settings_add_menu_title">"Añadir"</string>
<string name="user_dict_settings_add_dialog_title">"Añadir al usuario"</string>
<string name="user_dict_settings_edit_dialog_title">"Editar palabra"</string>
<string name="user_dict_settings_context_menu_edit_title">"Editar"</string>
<string name="user_dict_settings_context_menu_delete_title">"Suprimir"</string>
<string name="user_dict_settings_empty_text">"No tienes ninguna palabra en el diccionario del usuario. Puedes añadir una palabra a través del menú."</string>
@@ -611,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"Accesos directos"</string>
<string name="input_methods_settings_title">"Introducción de texto"</string>
<string name="input_methods_settings_summary">"Administrar opciones de introducción de texto"</string>
<string name="input_methods_settings_label_format">"Configuración de %s"</string>
<string name="input_methods_settings_label_format">"Configuración de <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
<string name="onscreen_keyboard_settings_summary">"Configuración del teclado en pantalla"</string>
<string name="builtin_keyboard_settings_title">"Teclado del dispositivo"</string>
<string name="builtin_keyboard_settings_summary">"Configuración del teclado integrado"</string>
<string name="development_settings_title">"Desarrollo"</string>
<string name="development_settings_summary">"Establecer opciones de desarrollo de aplicaciones"</string>
<string name="enable_adb">"Depuración USB"</string>
@@ -620,10 +634,8 @@
<string name="keep_screen_on_summary">"La pantalla nunca entra en modo de suspensión durante la carga"</string>
<string name="allow_mock_location">"Permitir ubicaciones simuladas"</string>
<string name="allow_mock_location_summary">"Permitir ubicaciones simuladas"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"Seleccionar gadget"</string>
<string name="widget_picker_title">"Seleccionar widget"</string>
<string name="battery_history_details_for">"Detalles del ID único %d"</string>
<string name="battery_history_uid">"ID único <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Detalles de uso de red para <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
@@ -642,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"Paquetes que comparten este ID único:"</string>
<string name="battery_history_no_data">"No hay datos disponibles sobre el uso de la batería."</string>
<string name="battery_history_sensor">"Sensor:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Bloqueo de actividad parcial:"</string>
<string name="battery_history_used_by_packages">"Sensor utilizado por paquetes:"</string>
<string name="battery_history_sensor_usage">"Utilizado <xliff:g id="COUNT">%1$d</xliff:g> veces por <xliff:g id="PACKAGE">%2$s</xliff:g>"</string>
<string name="battery_history_sensor_usage_multi">"Utilizado <xliff:g id="COUNT">%1$d</xliff:g> veces por uno de:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"En ejecución"</string>
<string name="battery_history_screen_on_label">"Pantalla encendida"</string>
<string name="battery_history_phone_on_label">"Teléfono encendido"</string>
<string name="battery_history_awake">"Tiempo transcurrido sin suspensión:"</string>
<string name="battery_history_screen_on">"Tiempo transcurrido con la pantalla encendida:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Tiempo transcurrido con el teléfono encendido:"</string>
<string name="battery_history_screen_on_battery">"En la batería:"</string>
<string name="battery_history_screen_on_plugged">"Conectado:"</string>
<string name="usage_stats_label">"Estadísticas de uso"</string>

View File

@@ -55,15 +55,19 @@
<item>"Jamais si branché"</item>
<item>"Jamais"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"Utilisation de l\'UC"</item>
<item>"Utilisation du réseau"</item>
<item>"Utilisation du GPS"</item>
<item>"Utilisation du capteur"</item>
<item>"Utilisation en activité partielle"</item>
<item>"Autre utilisation"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"Depuis le dernier débranchement"</item>
<item>"Total depuis le démarrage"</item>
<item>"Total toutes périodes comprises"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"Temps d\'utilisation"</item>
<item>"Nombre de lancements"</item>

View File

@@ -85,20 +85,20 @@
<string name="bluetooth_visibility">"Identifiable"</string>
<string name="bluetooth_is_discoverable">"Identifiable pendant <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> secondes..."</string>
<string name="bluetooth_not_discoverable">"Permettre l\'identification de l\'appareil"</string>
<string name="bluetooth_devices">"Périphériques Bluetooth"</string>
<string name="bluetooth_device_name">"Nom du périphérique"</string>
<string name="bluetooth_devices">"Appareils Bluetooth"</string>
<string name="bluetooth_device_name">"Nom de l\'appareil"</string>
<string name="bluetooth_name_not_set">"Aucun nom n\'a été défini. Utilisation du nom du compte..."</string>
<string name="bluetooth_scan_for_devices">"Rechercher des périphériques"</string>
<string name="bluetooth_scan_for_devices">"Rechercher d\'appareils"</string>
<string name="bluetooth_disconnect_blank">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> va être déconnecté."</string>
<string name="bluetooth_connected">"Connecté"</string>
<string name="bluetooth_disconnected">"Déconnecté"</string>
<string name="bluetooth_disconnecting">"Déconnexion…"</string>
<string name="bluetooth_connecting">"Connexion…"</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Associer à ce périphérique"</string>
<string name="bluetooth_not_connected">"Associer à cet appareil"</string>
<string name="bluetooth_pairing">"Association…"</string>
<string name="bluetooth_paired">"Associé mais non connecté"</string>
<string name="bluetooth_paired">"Rel, mais pas connecté"</string>
<string name="bluetooth_device">"mains libres/casque"</string>
<string name="progress_scanning">"Recherche"</string>
<string name="bluetooth_notif_ticker">"Demande d\'association Bluetooth"</string>
@@ -110,7 +110,7 @@
<string name="choose_timezone">"Choisir fuseau horaire"</string>
<string name="display_preview_label">"Aperçu :"</string>
<string name="display_font_size_label">"Taille de police :"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"Envoyer <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g> :"</string>
@@ -179,7 +179,7 @@
<string name="language_picker_title">"Paramètres régionaux"</string>
<string name="select_your_language">"Choisir la langue"</string>
<string name="activity_picker_label">"Sélectionner une activité"</string>
<string name="device_info_label">"Informations sur le périphérique"</string>
<string name="device_info_label">"Informations sur l\'appareil"</string>
<string name="battery_info_label">"Informations sur la batterie"</string>
<string name="battery_history_label">"Historique de la batterie"</string>
<string name="display_label">"Afficher"</string>
@@ -215,13 +215,13 @@
<string name="bluetooth_settings_title">"Paramètres Bluetooth"</string>
<string name="bluetooth_settings_summary">"Gérer les connexions, configurer le nom et l\'identification de l\'appareil"</string>
<string name="bluetooth_pin_entry">"Demande d\'association Bluetooth"</string>
<string name="bluetooth_device_info">"Informations sur le périphérique Bluetooth"</string>
<string name="bluetooth_device_info">"Informations sur l\'appareil Bluetooth"</string>
<string name="bluetooth_enter_pin_msg">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"\n\n"Saisissez le code PIN pour associer l\'appareil."\n"(Essayez avec 0000 ou 1234.)"</string>
<string name="bluetooth_error_title">"Attention"</string>
<string name="bluetooth_pairing_error_message">"Un problème est survenu lors de l\'association à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_pairing_pin_error_message">"Un problème est survenu lors de l\'association à <xliff:g id="DEVICE_NAME">%1$s</xliff:g> car le PIN saisi est incorrect."</string>
<string name="bluetooth_pairing_pin_error_message">"Un problème est survenu lors de l\'association à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, car le PIN saisi est incorrect."</string>
<string name="bluetooth_connecting_error_message">"Un problème est survenu lors de la connexion à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_scan_title">"Rechercher des périphériques"</string>
<string name="bluetooth_preference_scan_title">"Rechercher des appareils"</string>
<string name="bluetooth_device_context_connect">"Se connecter"</string>
<string name="bluetooth_device_context_disconnect">"Déconnecter"</string>
<string name="bluetooth_device_context_pair_connect">"Associer et connecter"</string>
@@ -338,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Configurer les sonneries, les notifications et la luminosité de l\'écran"</string>
<string name="silent_mode_title">"Mode silencieux"</string>
<string name="silent_mode_summary">"Aucun son sauf pour le multimédia et le réveil"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Sonnerie du téléphone"</string>
<string name="ringtone_summary">"Configurer la sonnerie par défaut pour les appels entrants"</string>
<string name="ring_volume_title">"Volume de la sonnerie"</string>
@@ -365,8 +367,11 @@
<string name="sync_settings_summary">"Sélectionner les applications à synchroniser"</string>
<string name="display_settings">"Afficher les paramètres"</string>
<string name="animations_title">"Animation"</string>
<string name="animations_summary_on">"Animation lors de l\'ouverture et la fermeture de fenêtres"</string>
<string name="animations_summary_off">"Animation lors de l\'ouverture et la fermeture de fenêtres"</string>
<string name="animations_summary_on">"Afficher l\'animation lors de l\'ouverture et de la fermeture des fenêtres"</string>
<string name="animations_summary_off">"Afficher l\'animation lors de l\'ouverture et de la fermeture des fenêtres"</string>
<string name="accelerometer_title">"Orientation"</string>
<string name="accelerometer_summary_on">"Changer automatiquement d\'orientation lors de la rotation du téléphone"</string>
<string name="accelerometer_summary_off">"Changer automatiquement d\'orientation lors de la rotation du téléphone"</string>
<string name="brightness">"Luminosité"</string>
<string name="brightness_summary">"Régler la luminosité de l\'écran"</string>
<string name="screen_timeout">"Mise en veille de l\'écran"</string>
@@ -455,6 +460,9 @@
<string name="error_apn_empty">"Le champ Nom de point d\'accès (APN) doit être renseigné."</string>
<string name="error_mcc_not3">"Le champ MCC doit contenir 3 chiffres."</string>
<string name="error_mnc_not23">"Le champ MNC doit contenir 2 ou 3 chiffres."</string>
<string name="restore_default_apn">"Restauration des paramètres APN par défaut en cours"</string>
<string name="menu_restore">"Rétablir les paramètres par défaut"</string>
<string name="restore_default_apn_completed">"Réinitialisation des paramètres APN par défaut terminée"</string>
<string name="master_clear_title">"Réinit. valeurs d\'usine"</string>
<string name="master_clear_summary">"Effacer toutes les données du téléphone"</string>
<string name="master_clear_desc">"Cette action réinitialisera le téléphone à ses valeurs d\'usine et effacera toutes les données et applications téléchargées !"</string>
@@ -586,11 +594,14 @@
<string name="auto_punctuate_summary">"Appuyez deux fois sur la touche Espace pour insérer \".\""</string>
<string name="show_password">"Mots de passe visibles"</string>
<string name="show_password_summary">"Afficher le mot de passe lors de la saisie"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Dictionnaire personnel"</string>
<string name="user_dict_settings_title">"Dictionnaire personnel"</string>
<string name="user_dict_settings_summary">"Ajouter et retirer des mots du dictionnaire personnel"</string>
<string name="user_dict_settings_add_menu_title">"Ajouter"</string>
<string name="user_dict_settings_add_dialog_title">"Ajouter au dictionnaire"</string>
<string name="user_dict_settings_edit_dialog_title">"Modifier le mot"</string>
<string name="user_dict_settings_context_menu_edit_title">"Modifier"</string>
<string name="user_dict_settings_context_menu_delete_title">"Supprimer"</string>
<string name="user_dict_settings_empty_text">"Votre dictionnaire personnel ne contient aucun mot. Vous pouvez ajouter un mot via le menu."</string>
@@ -611,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"Raccourcis"</string>
<string name="input_methods_settings_title">"Saisie de texte"</string>
<string name="input_methods_settings_summary">"Gérer les options de saisie de texte"</string>
<string name="input_methods_settings_label_format">"Paramètres %s"</string>
<string name="input_methods_settings_label_format">"Paramètres <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
<string name="onscreen_keyboard_settings_summary">"Paramètres du clavier à l\'écran"</string>
<string name="builtin_keyboard_settings_title">"Clavier de l\'appareil"</string>
<string name="builtin_keyboard_settings_summary">"Paramètres du clavier intégré"</string>
<string name="development_settings_title">"Développement"</string>
<string name="development_settings_summary">"Définir les options pour le développement de l\'application"</string>
<string name="enable_adb">"Débogage USB"</string>
@@ -620,10 +634,8 @@
<string name="keep_screen_on_summary">"L\'écran ne se met jamais en veille lors du chargement"</string>
<string name="allow_mock_location">"Autoriser les positions géographiques fictives"</string>
<string name="allow_mock_location_summary">"Positions fictives"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"Choisir un gadget"</string>
<string name="widget_picker_title">"Choisir un widget"</string>
<string name="battery_history_details_for">"Détails de l\'UID %d"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Données d\'utilisation du réseau pour <xliff:g id="APP_NAME">%1$s</xliff:g> :"</string>
@@ -642,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"Paquets partageant cet UID :"</string>
<string name="battery_history_no_data">"Aucune donnée sur l\'utilisation de la batterie disponible"</string>
<string name="battery_history_sensor">"Capteur :"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Verrouillage en veille partielle :"</string>
<string name="battery_history_used_by_packages">"Capteur utilisé par les kits :"</string>
<string name="battery_history_sensor_usage">"Utilisé <xliff:g id="COUNT">%1$d</xliff:g> fois par <xliff:g id="PACKAGE">%2$s</xliff:g>"</string>
<string name="battery_history_sensor_usage_multi">"Utilisé <xliff:g id="COUNT">%1$d</xliff:g> fois par l\'une des applications suivantes :"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"En cours d\'exécution"</string>
<string name="battery_history_screen_on_label">"Écran activé"</string>
<string name="battery_history_phone_on_label">"Téléphone allumé"</string>
<string name="battery_history_awake">"Autonomie sans mise en veille :"</string>
<string name="battery_history_screen_on">"Temps utilisé avec l\'écran activé :"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Autonomie avec le téléphone allumé :"</string>
<string name="battery_history_screen_on_battery">"Sur la batterie :"</string>
<string name="battery_history_screen_on_plugged">"Branchée :"</string>
<string name="usage_stats_label">"Données statistiques"</string>

View File

@@ -55,15 +55,19 @@
<item>"Mai quando collegato"</item>
<item>"Mai"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"Utilizzo CPU"</item>
<item>"Utilizzo della rete"</item>
<item>"Utilizzo GPS"</item>
<item>"Utilizzo sensore"</item>
<item>"Utilizzo riattivazione parziale"</item>
<item>"Altro utilizzo"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"Da ultimo scollegamento"</item>
<item>"Totale dall\'avvio"</item>
<item>"Totale generale"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"Tempo di utilizzo"</item>
<item>"Conteggio avvii"</item>

View File

@@ -94,11 +94,11 @@
<string name="bluetooth_disconnected">"Disconnesso"</string>
<string name="bluetooth_disconnecting">"Disconnessione..."</string>
<string name="bluetooth_connecting">"Connessione..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Accoppia con il dispositivo"</string>
<string name="bluetooth_pairing">"Accoppiamento..."</string>
<string name="bluetooth_paired">"Accoppiati ma non connessi"</string>
<string name="bluetooth_paired">"Accoppiato ma non collegato"</string>
<string name="bluetooth_device">"vivavoce/auricolare"</string>
<string name="progress_scanning">"Ricerca"</string>
<string name="bluetooth_notif_ticker">"Richiesta accoppiamento Bluetooth"</string>
@@ -110,7 +110,7 @@
<string name="choose_timezone">"Seleziona fuso orario"</string>
<string name="display_preview_label">"Anteprima:"</string>
<string name="display_font_size_label">"Dimensioni carattere:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"Invia <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -338,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Imposta suonerie, notifiche e luminosità dello schermo"</string>
<string name="silent_mode_title">"Modalità silenziosa"</string>
<string name="silent_mode_summary">"Tutti i suoni eccetto quelli multimediali verranno disattivati"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Suoneria telefono"</string>
<string name="ringtone_summary">"Imposta la suoneria predefinita delle chiamate in entrata"</string>
<string name="ring_volume_title">"Volume suoneria"</string>
@@ -365,8 +367,11 @@
<string name="sync_settings_summary">"Seleziona le applicazioni da sincronizzare"</string>
<string name="display_settings">"Impostazioni display"</string>
<string name="animations_title">"Animazione"</string>
<string name="animations_summary_on">"Mostra animazioni durante apertura/chiusura di finestre"</string>
<string name="animations_summary_off">"Mostra animazioni durante apertura/chiusura di finestre"</string>
<string name="animations_summary_on">"Mostra l\'animazione durante l\'apertura e la chiusura di finestre"</string>
<string name="animations_summary_off">"Mostra l\'animazione durante l\'apertura e la chiusura di finestre"</string>
<string name="accelerometer_title">"Orientamento"</string>
<string name="accelerometer_summary_on">"Cambia automaticamente l\'orientamento quando il cellulare viene ruotato"</string>
<string name="accelerometer_summary_off">"Cambia automaticamente l\'orientamento quando il cellulare viene ruotato"</string>
<string name="brightness">"Luminosità"</string>
<string name="brightness_summary">"Regola la luminosità dello schermo"</string>
<string name="screen_timeout">"Timeout schermo"</string>
@@ -455,6 +460,9 @@
<string name="error_apn_empty">"Il campo APN non può essere vuoto."</string>
<string name="error_mcc_not3">"Il campo MCC deve contenere 3 cifre."</string>
<string name="error_mnc_not23">"Il campo MNC deve contenere 2 o 3 cifre."</string>
<string name="restore_default_apn">"Ripristino delle impostazioni APN predefinite in corso"</string>
<string name="menu_restore">"Ripristina impostazioni predefinite"</string>
<string name="restore_default_apn_completed">"Ripristino delle impostazioni APN predefinite completato"</string>
<string name="master_clear_title">"Ripristino dati di fabbrica"</string>
<string name="master_clear_summary">"Cancella tutti i dati sul telefono"</string>
<string name="master_clear_desc">"Questa azione consente di ripristinare i valori di fabbrica del telefono, cancellando tutti i dati e le applicazioni scaricate."</string>
@@ -481,7 +489,7 @@
<string name="location_networks_disabled">"Visualizza la posizione nelle applicazioni (ad esempio Maps) utilizzando le reti wireless"</string>
<string name="location_neighborhood_level">"Posizione determinata dalle reti mobili e/o Wi-Fi"</string>
<string name="location_gps">"Attiva satelliti GPS"</string>
<string name="location_street_level">"Durante localizzazione, accuratezza a livello stradale (deselezionare per risparmiare batteria)"</string>
<string name="location_street_level">"Accuratezza a livello stradale (deseleziona per risparmiare batteria)"</string>
<string name="location_gps_disabled">"Localizza a livello stradale (richiede più batteria e la vista del cielo)"</string>
<string name="about_settings">"Info sul telefono"</string>
<string name="about_settings_summary">"Visualizza informazioni legali, stato del telefono, versione del software"</string>
@@ -494,7 +502,7 @@
<string name="settings_license_activity_unavailable">"Errore durante il caricamento delle licenze."</string>
<string name="settings_license_activity_loading">"Caricamento..."</string>
<string name="lock_settings_title">"Sequenza di sblocco schermo"</string>
<string name="lockpattern_change_lock_pattern_label">"Cambia sequenza di sblocco"</string>
<string name="lockpattern_change_lock_pattern_label">"Cambia sequenza sblocco"</string>
<string name="lockpattern_need_to_unlock">"Conferma sequenza salvata"</string>
<string name="lockpattern_need_to_unlock_wrong">"Riprova:"</string>
<string name="lockpattern_recording_intro_header">"Inserisci una sequenza di sblocco"</string>
@@ -521,7 +529,7 @@
<string name="skip_button_label">"Annulla"</string>
<string name="next_button_label">"Avanti"</string>
<string name="lock_title">"Protezione del telefono"</string>
<string name="lock_intro_message"><font size="17">"Proteggi il telefono dall\'uso non autorizzato creando una sequenza di sblocco dello schermo personale. "\n<font height="17">\n</font><b>"1"</b>"  Nella prossima schermata, osserva la creazione di una sequenza di esempio. "\n<font height="17">\n</font><b>"2"</b>"  Quando sei pronto, crea la tua sequenza di sblocco personale. Prova diverse sequenze collegando sempre almeno quattro punti. "\n<font height="17">\n</font><b>"3"</b>"  Inserisci di nuovo la sequenza per confermare. "\n<font height="17">\n</font><b>"Pronto per iniziare? Seleziona “Avanti”"</b>". "\n<font height="3">\n</font>"Se non desideri proteggere il telefono, seleziona “Annulla”."</font></string>
<string name="lock_intro_message"><font size="17">"Proteggi il telefono dall\'uso non autorizzato creando una sequenza di sblocco dello schermo personalizzata. "\n<font height="17">\n</font><b>"1"</b>" Nella prossima schermata, osserva la creazione di una sequenza di esempio. "\n<font height="17">\n</font><b>"2"</b>" Quando sei pronto, crea la tua sequenza di sblocco personale. Prova diverse sequenze collegando sempre almeno quattro punti. "\n<font height="17">\n</font><b>"3"</b>" Inserisci di nuovo la sequenza per confermare. "\n<font height="17">\n</font><b>"Pronto per iniziare? Seleziona “Avanti”"</b>". "\n<font height="3">\n</font>"Se non desideri proteggere il telefono, seleziona “Annulla”."</font></string>
<string name="lock_example_title">"Sequenza di esempio"</string>
<string name="lock_example_message">"Collega almeno quattro punti."\n" "\n"Seleziona \"Avanti\" quando sei pronto a creare la tua sequenza."</string>
<string name="manageapplications_settings_title">"Gestisci applicazioni"</string>
@@ -530,7 +538,7 @@
<string name="applications_settings_summary">"Gestisci le applicazioni, imposta le scorciatoie di avvio rapido"</string>
<string name="applications_settings_header">"Impostazioni applicazione"</string>
<string name="install_applications">"Origini sconosciute"</string>
<string name="install_unknown_applications">"Consenti l\'installazione di applicazioni non commerciali"</string>
<string name="install_unknown_applications">"Consenti l\'installazione di applicazioni non presenti in Market"</string>
<string name="install_all_warning">"Il telefono e i dati personali sono più vulnerabili agli attacchi da parte di applicazioni\n di origini sconosciute. L\'utente accetta di essere il solo responsabile degli eventuali\n danni al telefono o della perdita dei dati che potrebbero derivare dall\'utilizzo di\n queste applicazioni."</string>
<string name="application_info_label">"Info applicazione"</string>
<string name="storage_label">"Archiviazione"</string>
@@ -586,11 +594,14 @@
<string name="auto_punctuate_summary">"Premi due volte la barra spaziatrice per inserire \".\""</string>
<string name="show_password">"Password visibili"</string>
<string name="show_password_summary">"Mostra la password durante la digitazione"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Dizionario utente"</string>
<string name="user_dict_settings_title">"Dizionario utente"</string>
<string name="user_dict_settings_summary">"Aggiungi e rimuovi parole dal dizionario utente"</string>
<string name="user_dict_settings_add_menu_title">"Aggiungi"</string>
<string name="user_dict_settings_add_dialog_title">"Aggiungi al dizionario"</string>
<string name="user_dict_settings_edit_dialog_title">"Modifica parola"</string>
<string name="user_dict_settings_context_menu_edit_title">"Modifica"</string>
<string name="user_dict_settings_context_menu_delete_title">"Elimina"</string>
<string name="user_dict_settings_empty_text">"Non sono presenti parole nel dizionario utente. Puoi aggiungere una parola mediante il menu."</string>
@@ -611,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"Scorciatoie"</string>
<string name="input_methods_settings_title">"Inserimento testo"</string>
<string name="input_methods_settings_summary">"Gestisci opzioni inserimento testo"</string>
<string name="input_methods_settings_label_format">"Impostazioni %s"</string>
<string name="input_methods_settings_label_format">"Impostazioni di <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
<string name="onscreen_keyboard_settings_summary">"Impostazioni tastiera sullo schermo"</string>
<string name="builtin_keyboard_settings_title">"Tastiera dispositivo"</string>
<string name="builtin_keyboard_settings_summary">"Impostazioni tastiera incorporate"</string>
<string name="development_settings_title">"Sviluppo"</string>
<string name="development_settings_summary">"Imposta opzioni per lo sviluppo di applicazioni"</string>
<string name="enable_adb">"Debug USB"</string>
@@ -620,10 +634,8 @@
<string name="keep_screen_on_summary">"Lo schermo non va mai in stand-by se sotto carica"</string>
<string name="allow_mock_location">"Posizioni fittizie"</string>
<string name="allow_mock_location_summary">"Consenti posizioni fittizie"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"Scegli gadget"</string>
<string name="widget_picker_title">"Scegli widget"</string>
<string name="battery_history_details_for">"Dettagli per UID %d"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Dettagli di utilizzo della rete per <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
@@ -642,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"Pacchetti che condividono questo UID:"</string>
<string name="battery_history_no_data">"Dati sull\'utilizzo della batteria non disponibili"</string>
<string name="battery_history_sensor">"Sensore:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Wakelock parziale:"</string>
<string name="battery_history_used_by_packages">"Sensore usato dai pacchetti:"</string>
<string name="battery_history_sensor_usage">"Usato <xliff:g id="COUNT">%1$d</xliff:g> volte da <xliff:g id="PACKAGE">%2$s</xliff:g>"</string>
<string name="battery_history_sensor_usage_multi">"Usato <xliff:g id="COUNT">%1$d</xliff:g> volte da uno di:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"In esecuzione"</string>
<string name="battery_history_screen_on_label">"Schermo acceso"</string>
<string name="battery_history_phone_on_label">"Cellulare acceso"</string>
<string name="battery_history_awake">"Tempo trascorso senza sospensione:"</string>
<string name="battery_history_screen_on">"Tempo trascorso con schermo acceso:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Tempo trascorso con cellulare acceso:"</string>
<string name="battery_history_screen_on_battery">"A batteria:"</string>
<string name="battery_history_screen_on_plugged">"Collegato:"</string>
<string name="usage_stats_label">"Statistiche di utilizzo"</string>

View File

@@ -30,7 +30,7 @@
<item>"1分"</item>
<item>"2分"</item>
<item>"10分"</item>
<item>"タイムアウトなし"</item>
<item>"減光しない"</item>
</string-array>
<string-array name="wifi_security_entries">
<item>"自動"</item>
@@ -52,18 +52,22 @@
</string-array>
<string-array name="wifi_sleep_policy_entries">
<item>"画面がOFFになったとき"</item>
<item>"電源接続時はスリープしない"</item>
<item>"スリープしない"</item>
<item>"電源接続時はスリープしない"</item>
<item>"スリープしない"</item>
</string-array>
<string-array name="battery_history_type_spinner">
<item>"CPU使用状況"</item>
<item>"ネットワーク使用状況"</item>
<item>"GPS使用状況"</item>
<item>"センサー使用状況"</item>
<item>"部分起動状況"</item>
<item>"その他の使用状況"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"充電池使用時間"</item>
<item>"起動時間合計"</item>
<item>"総時間"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="usage_stats_display_order_types">
<item>"使用時間"</item>
<item>"起動回数"</item>

View File

@@ -30,7 +30,7 @@
<string name="radioInfo_menu_disableDataOnBoot">"起動時にデータを無効にする"</string>
<string name="radioInfo_service_in">"使用中"</string>
<string name="radioInfo_service_out">"休止中または使用不可"</string>
<string name="radioInfo_service_emergency">"緊急のみ"</string>
<string name="radioInfo_service_emergency">"緊急通報のみ"</string>
<string name="radioInfo_service_off">"無線通信をオフ"</string>
<string name="radioInfo_roaming_in">"ローミング"</string>
<string name="radioInfo_roaming_not">"ローミングなし"</string>
@@ -67,7 +67,7 @@
<string name="battery_info_uptime">"起動してからの時間:"</string>
<string name="battery_info_awake_battery">"非節電時間"</string>
<string name="battery_info_awake_plugged">"充電時の非節電時間:"</string>
<string name="battery_info_screen_on">"画面ONの時間:"</string>
<string name="battery_info_screen_on">"画面の点灯時間"</string>
<string name="battery_info_status_unknown">"不明"</string>
<string name="battery_info_status_charging">"充電中"</string>
<string name="battery_info_status_charging_ac">"(AC)"</string>
@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"切断"</string>
<string name="bluetooth_disconnecting">"切断中..."</string>
<string name="bluetooth_connecting">"接続中..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"この端末をペアに設定する"</string>
<string name="bluetooth_pairing">"ペアとして設定中..."</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"ペア設定、非接続"</string>
<string name="bluetooth_device">"ハンズフリー/ヘッドセット"</string>
<string name="progress_scanning">"スキャン中"</string>
<string name="bluetooth_notif_ticker">"Bluetoothペア設定リクエスト"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"タイムゾーンの選択"</string>
<string name="display_preview_label">"プレビュー:"</string>
<string name="display_font_size_label">"フォントサイズ:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"<xliff:g id="BROADCAST">broadcast</xliff:g>を送信"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -182,7 +181,7 @@
<string name="activity_picker_label">"操作の選択"</string>
<string name="device_info_label">"端末情報"</string>
<string name="battery_info_label">"電池情報"</string>
<string name="battery_history_label">"バッテリの履歴"</string>
<string name="battery_history_label">"充電池データ"</string>
<string name="display_label">"ディスプレイ"</string>
<string name="phone_info_label">"携帯電話情報"</string>
<string name="sd_card_settings_label">"SDカード"</string>
@@ -211,7 +210,7 @@
<string name="security_settings_summary">"現在地情報、画面ロック、SIMカードロック"</string>
<string name="security_passwords_title">"パスワード"</string>
<string name="bluetooth_quick_toggle_title">"Bluetooth"</string>
<string name="bluetooth_quick_toggle_summary">"Bluetoothをオン"</string>
<string name="bluetooth_quick_toggle_summary">"BluetoothをONにする"</string>
<string name="bluetooth_settings">"Bluetooth設定"</string>
<string name="bluetooth_settings_title">"Bluetooth設定"</string>
<string name="bluetooth_settings_summary">"端末の名前、接続や検出設定"</string>
@@ -245,7 +244,7 @@
<string name="bluetooth_headset_profile_summary_use_for">"携帯電話の音声に使用"</string>
<string name="wifi">"Wi-Fi"</string>
<string name="wifi_quick_toggle_title">"Wi-Fi"</string>
<string name="wifi_quick_toggle_summary">"Wi-Fiをオン"</string>
<string name="wifi_quick_toggle_summary">"Wi-FiをONにする"</string>
<string name="wifi_settings">"Wi-Fi設定"</string>
<string name="wifi_settings_category">"Wi-Fi設定"</string>
<string name="wifi_settings_summary">"ワイヤレスアクセスポイントの設定"</string>
@@ -268,10 +267,10 @@
<string name="wifi_security_verbose_wpa2">"WPA2により保護"</string>
<string name="ip_address">"IPアドレス"</string>
<string name="signal">"電波強度"</string>
<string name="wifi_starting">"オンにしています..."</string>
<string name="wifi_stopping">"オフにしています..."</string>
<string name="wifi_starting">"ONにしています..."</string>
<string name="wifi_stopping">"OFFにしています..."</string>
<string name="wifi_error">"エラー"</string>
<string name="error_starting">"Wi-Fiを開始できません"</string>
<string name="error_starting">"Wi-Fiを使用できません"</string>
<string name="error_stopping">"Wi-Fiを停止できません"</string>
<string name="error_scanning">"ネットワークをスキャンできません"</string>
<string name="error_connecting">"ネットワークに接続できません"</string>
@@ -283,7 +282,7 @@
<string name="wifi_show_password">"パスワードを表示"</string>
<string name="scan_wifi">"スキャン"</string>
<string name="summary_not_in_range">"圏外"</string>
<string name="summary_remembered">"これまでの設定"</string>
<string name="summary_remembered">"接続履歴あり"</string>
<string name="summary_connection_failed">"接続できませんでした。選択すると再試行します。"</string>
<string name="wifi_access_points">"Wi-Fiネットワーク"</string>
<string name="wifi_type_ssid">"ネットワークSSID"</string>
@@ -300,7 +299,7 @@
<string name="wifi_ip_settings_menu_save">"保存"</string>
<string name="wifi_ip_settings_menu_cancel">"キャンセル"</string>
<string name="wifi_ip_settings_invalid_ip">"正しいIPアドレスを入力してください。"</string>
<string name="wifi_use_static_ip">"静的IPを使用"</string>
<string name="wifi_use_static_ip">"静的IPを使用する"</string>
<string name="wifi_ip_address">"IPアドレス"</string>
<string name="wifi_dns1">"DNS 1"</string>
<string name="wifi_dns2">"DNS 2"</string>
@@ -310,12 +309,12 @@
<string name="wifi_context_menu_forget">"ネットワークへの接続を解除"</string>
<string name="wifi_context_menu_change_password">"パスワードを変更"</string>
<string name="wifi_advanced_titlebar">"詳細設定"</string>
<string name="wifi_setting_num_channels_title">"規制域"</string>
<string name="wifi_setting_num_channels_summary">"使用するチャネル番号を設定する"</string>
<string name="wifi_setting_num_channels_error">"規制域の設定問題が発生しました。"</string>
<string name="wifi_setting_num_channels_channel_phrase">"チャンネル数<xliff:g id="NUM_CHANNELS">%1$d</xliff:g>"</string>
<string name="wifi_setting_sleep_policy_title">"Wi-Fiスリープポリシー"</string>
<string name="wifi_setting_sleep_policy_summary">"Wi-Fiからモバイルデータに切り替えるタイミングを指定する"</string>
<string name="wifi_setting_num_channels_title">"規制域"</string>
<string name="wifi_setting_num_channels_summary">"使用するチャネル番号を設定する"</string>
<string name="wifi_setting_num_channels_error">"規制域の設定問題があります。"</string>
<string name="wifi_setting_num_channels_channel_phrase">"<xliff:g id="NUM_CHANNELS">%1$d</xliff:g>チャネル"</string>
<string name="wifi_setting_sleep_policy_title">"Wi-Fiスリープ設定"</string>
<string name="wifi_setting_sleep_policy_summary">"Wi-Fiをスリープに切り替えるタイミング"</string>
<string name="wifi_setting_sleep_policy_error">"スリープポリシーの設定で問題が発生しました。"</string>
<string name="wifi_advanced_mac_address_title">"MACアドレス"</string>
<string name="fragment_status_scanning">"スキャン中..."</string>
@@ -338,15 +337,17 @@
<string name="sound_settings">"音の設定"</string>
<string name="sound_and_display_settings_summary">"着信音、操作音、画面の明るさなど"</string>
<string name="silent_mode_title">"マナーモード"</string>
<string name="silent_mode_summary">"メディア(音楽動画、アラーム以外は無音にします"</string>
<string name="silent_mode_summary">"音楽動画メディア、アラーム以外は消音"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"着信音"</string>
<string name="ringtone_summary">"端末既定の着信音設定"</string>
<string name="ring_volume_title">"着信音の音量"</string>
<string name="ring_volume_summary">"着信音と通知音の音量を設定する"</string>
<string name="ringtone_summary">"端末の基本着信音を選択"</string>
<string name="ring_volume_title">"着信音量"</string>
<string name="ring_volume_summary">"着信音と通知音の音量"</string>
<string name="vibrate_title">"バイブレーション"</string>
<string name="vibrate_summary">"着信時バイブレーションON"</string>
<string name="vibrate_summary">"着信時バイブレーションONにする"</string>
<string name="notification_sound_title">"通知音"</string>
<string name="notification_sound_summary">"端末既定の通知音設定"</string>
<string name="notification_sound_summary">"端末の基本通知音を選択"</string>
<string name="incoming_call_volume_title">"着信音量"</string>
<string name="notification_volume_title">"通知音量"</string>
<string name="checkbox_notification_same_as_incoming_call">"通知音にも着信音量を適用"</string>
@@ -357,21 +358,24 @@
<string name="dtmf_tone_enable_summary_on">"ダイヤルパッドの操作音をONにする"</string>
<string name="dtmf_tone_enable_summary_off">"ダイヤルパッドの操作音をONにする"</string>
<string name="sound_effects_enable_title">"選択時の操作音"</string>
<string name="sound_effects_enable_summary_on">"メニュー選択時に音を鳴らす"</string>
<string name="sound_effects_enable_summary_off">"メニュー選択時に音を鳴らす"</string>
<string name="sound_effects_enable_summary_on">"メニュー選択時の操作音をONにする"</string>
<string name="sound_effects_enable_summary_off">"メニュー選択時の操作音をONにする"</string>
<string name="play_media_notification_sounds_enable_title">"SDカードの通知"</string>
<string name="play_media_notification_sounds_enable_summary_on">"SDカード通知音を無効にする"</string>
<string name="play_media_notification_sounds_enable_summary_off">"SDカード通知音を有効にします"</string>
<string name="play_media_notification_sounds_enable_summary_on">"SDカード通知音をOFFにする"</string>
<string name="play_media_notification_sounds_enable_summary_off">"SDカード通知音をONにする"</string>
<string name="sync_settings">"データの同期"</string>
<string name="sync_settings_summary">"同期するアプリケーション選択する"</string>
<string name="sync_settings_summary">"同期するアプリケーション選択"</string>
<string name="display_settings">"画面設定"</string>
<string name="animations_title">"アニメーション表示"</string>
<string name="animations_summary_on">"ウィンドウの開閉をアニメーション表示する"</string>
<string name="animations_summary_off">"ウィンドウの開閉をアニメーション表示する"</string>
<string name="animations_summary_on">"ウィンドウの開閉をアニメーション表示"</string>
<string name="animations_summary_off">"ウィンドウの開閉をアニメーション表示"</string>
<string name="accelerometer_title">"画面の向き"</string>
<string name="accelerometer_summary_on">"画面の向きに合わせて縦横表示を切り替える"</string>
<string name="accelerometer_summary_off">"画面の向きに合わせて縦横表示を切り替える"</string>
<string name="brightness">"画面の明るさ"</string>
<string name="brightness_summary">"画面の明るさを調整します"</string>
<string name="screen_timeout">"画面のタイムアウト"</string>
<string name="screen_timeout_summary">"画面が自動的にOFFになるまでの時間を調整します"</string>
<string name="brightness_summary">"画面の明るさを調整す"</string>
<string name="screen_timeout">"バックライト消灯"</string>
<string name="screen_timeout_summary">"画面のバックライトを自動消灯するまでの時間"</string>
<string name="sim_lock_settings">"SIMカードロック設定"</string>
<string name="sim_lock_settings_category">"SIMカードロック設定"</string>
<string name="sim_lock_settings_title">"SIMカードロック"</string>
@@ -404,11 +408,11 @@
<string name="device_info_not_available">"該当なし"</string>
<string name="device_status_activity_title">"端末の状態"</string>
<string name="device_status">"端末の状態"</string>
<string name="device_status_summary">"電話番号、端末識別番号、電波状態など"</string>
<string name="device_status_summary">"電池残量、電話番号、ネットワークなど"</string>
<string name="storage_settings_title">"SDカード &amp; 端末容量"</string>
<string name="storage_settings_summary">"SDカードの取り外し、空き容量の表示など"</string>
<string name="storage_settings_summary">"SDカードの取り外し、空き容量の表示"</string>
<string name="status_number">"電話番号"</string>
<string name="status_network_type">"モバイルネットワークのタイプ"</string>
<string name="status_network_type">"モバイルネットワークの種類"</string>
<string name="status_data_state">"モバイルネットワークの状態"</string>
<string name="status_service_state">"サービスの状態"</string>
<string name="status_signal_strength">"電波強度"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"APNを空にできません。"</string>
<string name="error_mcc_not3">"MCCのフィールドには3桁で指定してください。"</string>
<string name="error_mnc_not23">"MNCのフィールドには2桁か3桁で指定してください。"</string>
<string name="restore_default_apn">"APN設定をリセットしています"</string>
<string name="menu_restore">"初期設定にリセット"</string>
<string name="restore_default_apn_completed">"APN設定をリセットしました"</string>
<string name="master_clear_title">"データの初期化"</string>
<string name="master_clear_summary">"携帯電話内のすべてのデータを消去"</string>
<string name="master_clear_desc">"この操作は携帯電話を出荷時の初期状態にリセットし、データとダウンロードしたアプリケーションをすべて消去します。"</string>
@@ -476,21 +483,25 @@
<string name="call_settings_title">"通話設定"</string>
<string name="call_settings_summary">"ボイスメール、電話転送、発信者番号などの設定"</string>
<string name="network_settings_title">"モバイルネットワーク"</string>
<string name="network_settings_summary">"ローミング、ネットワーク、APN設定"</string>
<string name="location_title">"現在地情報"</string>
<string name="network_settings_summary">"ローミング、ネットワーク、APN設定"</string>
<string name="location_title">"位置情報の検出"</string>
<string name="location_network_based">"ワイヤレスネットワークを使用"</string>
<string name="location_networks_disabled">"ワイヤレスネットワークを使用するアプリケーション地図などで位置を表示する"</string>
<string name="location_networks_disabled">"無線ネットワークを使用するアプリケーション(地図など)で位置を表示する"</string>
<string name="location_neighborhood_level">"Wi-Fi/モバイルネットワークで位置を検出する"</string>
<string name="location_gps">"GPS機能を有効にする"</string>
<string name="location_street_level">"高精度測位電池を節約する場合はOFFを選択"</string>
<string name="location_gps_disabled">"高精度測位(電池消費、電波が良好な野外使用)"</string>
<string name="location_gps">"GPS機能をONにする"</string>
<string name="location_street_level">"高精度測位(電池の消費を節約する場合はOFFにしてください"</string>
<string name="location_gps_disabled">"高精度測位(電池消費、電波が良好な場所で使用)"</string>
<string name="about_settings">"端末情報"</string>
<string name="about_settings_summary">"端末情報、法的情報、バージョン情報など"</string>
<string name="about_settings_summary">"端末情報、規約、バージョン情報"</string>
<string name="legal_information">"法的情報"</string>
<string name="contributors_title">"貢献者/連携パートナー"</string>
<string name="contributors_title">"アライアンスパートナー"</string>
<string name="copyright_title">"著作権"</string>
<string name="license_title">"ライセンス"</string>
<string name="terms_title">"利用規約"</string>
<!-- no translation found for system_tutorial_list_item_title (4315834755909579018) -->
<skip />
<!-- no translation found for system_tutorial_list_item_summary (3861815254521030201) -->
<skip />
<string name="settings_license_activity_title">"オープンソースライセンス"</string>
<string name="settings_license_activity_unavailable">"ライセンスの読み込み中に問題が発生しました。"</string>
<string name="settings_license_activity_loading">"読み込み中..."</string>
@@ -524,7 +535,7 @@
<string name="lock_title">"携帯電話の保護"</string>
<string name="lock_intro_message"><font size="17">"画面ロックの解除パターンを作成して携帯電話の不正使用を防ぐことができます。"\n<font height="17">\n</font><b>"1"</b>"  次の画面でパターン作成の例を参考にしてください。"\n<font height="17">\n</font><b>"2"</b>"  ロック解除パターンを決めたら、そのパターンを指でなぞって描きます。さまざまなパターンを作成できますが、最低4つの点を結んでください。"\n<font height="17">\n</font><b>"3"</b>"  確認のためもう一度そのパターンを入力します。"\n<font height="17">\n</font><b>"[次へ]を押すと次に進みます"</b>"。"\n<font height="3">\n</font>"パターンロックを設定しない場合は[キャンセル]を選択してください。"</font></string>
<string name="lock_example_title">"パターン例"</string>
<string name="lock_example_message">"少なくとも4つの点を結んで下さい。"\n" "\n"独自のパターンを決めたら[次へ]を選択します。"</string>
<string name="lock_example_message">"少なくとも4つの点を結んで下さい。"\n" "\n"パターンを決めたら[次へ]を選択して進みます。"</string>
<string name="manageapplications_settings_title">"アプリケーションの管理"</string>
<string name="manageapplications_settings_summary">"インストール済みアプリケーションを管理/削除します"</string>
<string name="applications_settings">"アプリケーション"</string>
@@ -535,10 +546,10 @@
<string name="install_all_warning">"提供元不明のアプリケーションから携帯電話や個人情報データが攻撃を受ける可能性が高くなります。このようなアプリケーションの使用により生じうる携帯電話への損害やデータの損失について、お客様がすべての責任を負うことに同意するものとします。"</string>
<string name="application_info_label">"アプリケーション情報"</string>
<string name="storage_label">"メモリ"</string>
<string name="auto_launch_label">"いつも起動"</string>
<string name="auto_launch_label">"いつもこのアプリケーションを選択する操作"</string>
<string name="permissions_label">"許可"</string>
<string name="cache_header_label">"キャッシュ"</string>
<string name="clear_cache_btn_text">"キャッシュをクリア"</string>
<string name="clear_cache_btn_text">"キャッシュを消去"</string>
<string name="cache_size_label">"キャッシュ"</string>
<string name="controls_label">"コントロール"</string>
<string name="force_stop">"強制停止"</string>
@@ -547,9 +558,9 @@
<string name="data_size_label">"データ"</string>
<string name="uninstall_text">"アンインストール"</string>
<string name="clear_user_data_text">"データを消去"</string>
<string name="auto_launch_enable_text">"このアプリケーションはある操作で常に起動するように設定されています。"</string>
<string name="auto_launch_disable_text">"端末既定の設定なし"</string>
<string name="clear_activities">"既定操作を消去"</string>
<string name="auto_launch_enable_text">"特定の操作で使用する既定アプリケーションとして設定されています。"</string>
<string name="auto_launch_disable_text">"設定されている操作はありません。"</string>
<string name="clear_activities">"設定を消去"</string>
<string name="unknown">"不明"</string>
<string name="sort_order_alpha">"並べ替え"</string>
<string name="sort_order_size">"サイズ順に並べ替え"</string>
@@ -573,32 +584,35 @@
<string name="invalid_size_value">"パッケージのサイズを計算できません"</string>
<string name="empty_list_msg">"サードパーティ製のアプリケーションはインストールされていません。"</string>
<string name="language_settings">"地域/言語 &amp; 文字入力"</string>
<string name="language_settings_summary">"地域と言語、文字入力、自動修正の設定"</string>
<string name="language_settings_summary">"言語と地域、文字入力の設定"</string>
<string name="language_category">"地域/言語設定"</string>
<string name="text_category">"文字入力設定"</string>
<string name="phone_language">"地域/言語を選択"</string>
<string name="phone_language_summary">"言語と地域の選択"</string>
<string name="auto_replace">"自動修正"</string>
<string name="auto_replace_summary">"英語: タイプミスを自動修正する"</string>
<string name="auto_replace_summary">"入力ミスを自動修正する"</string>
<string name="auto_caps">"自動大文字変換"</string>
<string name="auto_caps_summary">"英語: 先頭文字を大文字に変換する"</string>
<string name="auto_caps_summary">"先頭文字を大文字に変換する"</string>
<string name="auto_punctuate">"ピリオド自動挿入"</string>
<string name="hardkeyboard_category">"物理キーボードの設定"</string>
<string name="hardkeyboard_category">"キーボードの設定"</string>
<string name="auto_punctuate_summary">"英語: Spaceキー2回でピリオド(.)を挿入"</string>
<string name="show_password">"パスワードを表示"</string>
<string name="show_password_summary">"入力中のパスワードを表示する"</string>
<string name="show_password_summary">"入力時にパスワードを表示する"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"ユーザー辞書"</string>
<string name="user_dict_settings_title">"ユーザー辞書"</string>
<string name="user_dict_settings_summary">"ユーザー辞書への語句の追加と削除"</string>
<string name="user_dict_settings_add_menu_title">"追加"</string>
<string name="user_dict_settings_add_dialog_title">"辞書に追加"</string>
<string name="user_dict_settings_edit_dialog_title">"語句の編集"</string>
<string name="user_dict_settings_context_menu_edit_title">"編集"</string>
<string name="user_dict_settings_context_menu_delete_title">"削除"</string>
<string name="user_dict_settings_empty_text">"ユーザー辞書に何も登録されていません。語句はメニューから登録できます。"</string>
<string name="testing">"テスト中"</string>
<string name="testing_phone_info">"携帯電話情報"</string>
<string name="testing_battery_info">"電池情報"</string>
<string name="testing_battery_history">"バッテリの履歴"</string>
<string name="testing_battery_history">"充電池データ"</string>
<string name="quick_launch_title">"クイック起動"</string>
<string name="quick_launch_summary">"アプリケーションの起動にショートカットキーを割り当てる"</string>
<string name="quick_launch_assign_application">"アプリを選択"</string>
@@ -612,7 +626,10 @@
<string name="quick_launch_display_mode_shortcuts">"ショートカット"</string>
<string name="input_methods_settings_title">"文字入力"</string>
<string name="input_methods_settings_summary">"テキスト入力オプションを管理"</string>
<string name="input_methods_settings_label_format">"%s設定"</string>
<string name="input_methods_settings_label_format">"<xliff:g id="IME_NAME">%1$s</xliff:g>設定"</string>
<string name="onscreen_keyboard_settings_summary">"画面キーボードの設定"</string>
<string name="builtin_keyboard_settings_title">"端末内蔵キーボード"</string>
<string name="builtin_keyboard_settings_summary">"端末内蔵キーボードの設定"</string>
<string name="development_settings_title">"開発"</string>
<string name="development_settings_summary">"アプリケーション開発オプション"</string>
<string name="enable_adb">"USBデバッグ"</string>
@@ -621,46 +638,38 @@
<string name="keep_screen_on_summary">"充電中に画面をスリープにしない"</string>
<string name="allow_mock_location">"擬似ロケーションを許可"</string>
<string name="allow_mock_location_summary">"擬似ロケーションを許可"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"ガジェットを選択"</string>
<string name="widget_picker_title">"ウィジェットを選択"</string>
<string name="battery_history_details_for">"UID %dの詳細"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"<xliff:g id="APP_NAME">%1$s</xliff:g>のネットワーク使用状況の詳細:"</string>
<string name="battery_history_network_usage">"<xliff:g id="APP_NAME">%1$s</xliff:g>のネットワーク使用詳細:"</string>
<string name="battery_history_bytes_received">"受信バイト数:<xliff:g id="BYTES">%1$d</xliff:g>"</string>
<string name="battery_history_bytes_sent">"送信済みバイト数:<xliff:g id="BYTES">%1$d</xliff:g>"</string>
<string name="battery_history_bytes_total">"合計バイト数:<xliff:g id="BYTES">%1$d</xliff:g>"</string>
<string name="battery_history_cpu_usage">"<xliff:g id="APP_NAME">%1$s</xliff:g>のCPU使用状況の詳細:"</string>
<string name="battery_history_user_time">"ユーザー時間:"</string>
<string name="battery_history_system_time">"システム時間:"</string>
<string name="battery_history_cpu_usage">"<xliff:g id="APP_NAME">%1$s</xliff:g>のCPU使用詳細:"</string>
<string name="battery_history_user_time">"ユーザー利用時間:"</string>
<string name="battery_history_system_time">"システム利用時間:"</string>
<string name="battery_history_total_time">"合計時間:"</string>
<string name="battery_history_starts">"開始:<xliff:g id="STARTS">%1$d</xliff:g>"</string>
<string name="battery_history_starts">"起動: <xliff:g id="STARTS">%1$d</xliff:g>"</string>
<string name="battery_history_days">"<xliff:g id="DAYS">%1$d</xliff:g><xliff:g id="HOURS">%2$d</xliff:g>時間<xliff:g id="MINUTES">%3$d</xliff:g><xliff:g id="SECONDS">%4$d</xliff:g>秒"</string>
<string name="battery_history_hours">"<xliff:g id="HOURS">%1$d</xliff:g>時間<xliff:g id="MINUTES">%2$d</xliff:g><xliff:g id="SECONDS">%3$d</xliff:g>秒"</string>
<string name="battery_history_minutes">"<xliff:g id="MINUTES">%1$d</xliff:g><xliff:g id="SECONDS">%2$d</xliff:g>秒"</string>
<string name="battery_history_seconds">"<xliff:g id="SECONDS">%1$d</xliff:g>秒"</string>
<string name="battery_history_packages_sharing_this_uid">"このUIDを共有するパッケージ:"</string>
<string name="battery_history_no_data">"バッテリ使用状況のデータは利用できません"</string>
<string name="battery_history_no_data">"充電池使用データなし"</string>
<string name="battery_history_sensor">"センサー:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"部分起動ロック:"</string>
<string name="battery_history_used_by_packages">"パッケージで使用されるセンサー:"</string>
<string name="battery_history_sensor_usage">"<xliff:g id="PACKAGE">%2$s</xliff:g>により<xliff:g id="COUNT">%1$d</xliff:g>回使用"</string>
<string name="battery_history_sensor_usage_multi">"次のいずれかにより<xliff:g id="COUNT">%1$d</xliff:g>回使用:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_screen_on">"画面をONで使用した時間:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_screen_on_battery">"バッテリ使用開始:"</string>
<string name="battery_history_screen_on_plugged">"電源に接続:"</string>
<string name="battery_history_awake_label">"実行中"</string>
<string name="battery_history_screen_on_label">"画面点灯"</string>
<string name="battery_history_phone_on_label">"電源ON"</string>
<string name="battery_history_awake">"実動時間(スリープ除く):"</string>
<string name="battery_history_screen_on">"画面バックライトの点灯時間:"</string>
<string name="battery_history_phone_on">"端末電源入の時間:"</string>
<string name="battery_history_screen_on_battery">"充電池使用:"</string>
<string name="battery_history_screen_on_plugged">"電源接続:"</string>
<string name="usage_stats_label">"使用統計情報"</string>
<string name="testing_usage_stats">"使用統計情報"</string>
<string name="display_order_text">"並べ替え:"</string>

View File

@@ -55,15 +55,19 @@
<item>"전원에 연결되었을 때는 절전 모드로 전환되지 않음"</item>
<item>"전환 안 됨"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"CPU 사용량"</item>
<item>"네트워크 사용량"</item>
<item>"GPS 사용량"</item>
<item>"센서 사용량"</item>
<item>"부분적 가동 사용량"</item>
<item>"기타 사용량"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"마지막으로 플러그를 뽑은 이후"</item>
<item>"부팅 후 총 사용 시간"</item>
<item>"총 사용 시간"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"사용 시간"</item>
<item>"계수 시작"</item>

View File

@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"연결끊김"</string>
<string name="bluetooth_disconnecting">"연결을 끊는 중..."</string>
<string name="bluetooth_connecting">"연결 중..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"이 장치와 페어링"</string>
<string name="bluetooth_pairing">"페어링 중..."</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"페어링된 상태이지만 연결되지 않음"</string>
<string name="bluetooth_device">"핸즈프리/헤드셋"</string>
<string name="progress_scanning">"검색 중"</string>
<string name="bluetooth_notif_ticker">"Bluetooth 페어링 요청"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"표준시간대 선택"</string>
<string name="display_preview_label">"미리보기:"</string>
<string name="display_font_size_label">"글꼴 크기:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"<xliff:g id="BROADCAST">broadcast</xliff:g> 보내기"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -339,6 +338,8 @@
<string name="sound_and_display_settings_summary">"벨소리, 알림, 화면 밝기 설정"</string>
<string name="silent_mode_title">"무음 모드"</string>
<string name="silent_mode_summary">"미디어 및 알람 외의 모든 소리가 나지 않습니다."</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"전화 벨소리"</string>
<string name="ringtone_summary">"수신전화 기본 벨소리 설정"</string>
<string name="ring_volume_title">"벨소리 볼륨"</string>
@@ -366,8 +367,11 @@
<string name="sync_settings_summary">"동기화할 응용프로그램 선택"</string>
<string name="display_settings">"디스플레이 설정"</string>
<string name="animations_title">"애니메이션"</string>
<string name="animations_summary_on">"창을 열거나 닫을 때 애니메이션 표시"</string>
<string name="animations_summary_off">"창을 열거나 닫을 때 애니메이션 표시"</string>
<string name="animations_summary_on">"창을 열 닫을 때 애니메이션 표시"</string>
<string name="animations_summary_off">"창을 열 닫을 때 애니메이션 표시"</string>
<string name="accelerometer_title">"방향"</string>
<string name="accelerometer_summary_on">"휴대전화 회전 시 자동으로 방향 바꾸기"</string>
<string name="accelerometer_summary_off">"휴대전화 회전 시 자동으로 방향 바꾸기"</string>
<string name="brightness">"밝기"</string>
<string name="brightness_summary">"화면 밝기 조정"</string>
<string name="screen_timeout">"화면 시간제한"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"APN을 비워둘 수 없습니다."</string>
<string name="error_mcc_not3">"MCC 필드는 3자리 숫자여야 합니다."</string>
<string name="error_mnc_not23">"MNC 필드는 2~3자리 숫자여야 합니다."</string>
<string name="restore_default_apn">"기본 APN 설정 복원 중"</string>
<string name="menu_restore">"기본값으로 재설정"</string>
<string name="restore_default_apn_completed">"기본 APN 설정을 재설정했습니다."</string>
<string name="master_clear_title">"공장 기본값 데이터 재설정"</string>
<string name="master_clear_summary">"전화기의 모든 데이터 지우기"</string>
<string name="master_clear_desc">"이 작업을 수행하면 전화기의 모든 데이터 및 다운로드한 응용프로그램이 지워지고 출고시 초기 상태로 재설정됩니다"</string>
@@ -587,11 +594,14 @@
<string name="auto_punctuate_summary">"스페이스바를 두 번 눌러 \'.\' 삽입"</string>
<string name="show_password">"비밀번호 표시"</string>
<string name="show_password_summary">"입력 시 비밀번호 표시"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"사용자 사전"</string>
<string name="user_dict_settings_title">"사용자 사전"</string>
<string name="user_dict_settings_summary">"사용자 사전에서 단어 추가 및 삭제"</string>
<string name="user_dict_settings_add_menu_title">"추가"</string>
<string name="user_dict_settings_add_dialog_title">"사전에 추가"</string>
<string name="user_dict_settings_edit_dialog_title">"단어 수정"</string>
<string name="user_dict_settings_context_menu_edit_title">"편집"</string>
<string name="user_dict_settings_context_menu_delete_title">"삭제"</string>
<string name="user_dict_settings_empty_text">"사용자 사전에 단어가 없습니다. 메뉴를 통해 단어를 추가할 수 있습니다."</string>
@@ -612,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"바로가기"</string>
<string name="input_methods_settings_title">"텍스트 입력"</string>
<string name="input_methods_settings_summary">"텍스트 입력 옵션 관리"</string>
<string name="input_methods_settings_label_format">"%s 설정"</string>
<string name="input_methods_settings_label_format">"<xliff:g id="IME_NAME">%1$s</xliff:g> 설정"</string>
<string name="onscreen_keyboard_settings_summary">"화면 키보드 설정"</string>
<string name="builtin_keyboard_settings_title">"기기 키보드"</string>
<string name="builtin_keyboard_settings_summary">"내장 키보드 설정"</string>
<string name="development_settings_title">"개발"</string>
<string name="development_settings_summary">"응용프로그램 개발 옵션 설정"</string>
<string name="enable_adb">"USB 디버깅"</string>
@@ -621,10 +634,8 @@
<string name="keep_screen_on_summary">"충전하는 동안 화면이 꺼지지 않음"</string>
<string name="allow_mock_location">"모의 위치 허용"</string>
<string name="allow_mock_location_summary">"모의 위치 허용"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"가젯 선택"</string>
<string name="widget_picker_title">"위젯 선택"</string>
<string name="battery_history_details_for">"UID %d의 세부정보"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 네트워크 사용 세부정보"</string>
@@ -643,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"이 UID를 공유하는 패키지"</string>
<string name="battery_history_no_data">"배터리 사용 데이터가 없습니다."</string>
<string name="battery_history_sensor">"센서:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"부분적 가동 잠금:"</string>
<string name="battery_history_used_by_packages">"패키지가 사용한 센서:"</string>
<string name="battery_history_sensor_usage">"<xliff:g id="PACKAGE">%2$s</xliff:g>에서 <xliff:g id="COUNT">%1$d</xliff:g>번 사용"</string>
<string name="battery_history_sensor_usage_multi">"다음 중 하나가 <xliff:g id="COUNT">%1$d</xliff:g>번 사용:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"실행 중"</string>
<string name="battery_history_screen_on_label">"화면 켜짐"</string>
<string name="battery_history_phone_on_label">"휴대전화 켜짐"</string>
<string name="battery_history_awake">"절전 모드로 전환되지 않고 사용한 시간:"</string>
<string name="battery_history_screen_on">"화면을 켠 상태에서 소비한 시간:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"휴대전화가 켜진 상태로 사용한 시간:"</string>
<string name="battery_history_screen_on_battery">"배터리 켜짐 시간:"</string>
<string name="battery_history_screen_on_plugged">"연결됨:"</string>
<string name="usage_stats_label">"사용 통계"</string>

View File

@@ -16,71 +16,71 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="device_info_default">"Ukjent"</string>
<string name="turn_on_radio">"Turn on radio"</string>
<string name="turn_off_radio">"Turn off radio"</string>
<string name="turn_on_qxdm">"Enable QXDM SD log"</string>
<string name="turn_off_qxdm">"Disable QXDM SD log"</string>
<string name="radioInfo_menu_viewADN">"View SIM address book"</string>
<string name="turn_on_radio">"Slå på radio"</string>
<string name="turn_off_radio">"Slå av radio"</string>
<string name="turn_on_qxdm">"Slå på QXDM-minnekortlogg"</string>
<string name="turn_off_qxdm">"Slå av QXDM-minnekortlogg"</string>
<string name="radioInfo_menu_viewADN">"Se SIM-adressebok"</string>
<string name="radioInfo_menu_viewFDN">"View Fixed Dialing Numbers"</string>
<string name="radioInfo_menu_viewSDN">"View Service Dialing Numbers"</string>
<string name="radioInfo_menu_getPDP">"Get PDP list"</string>
<string name="radioInfo_menu_enableData">"Enable data connection"</string>
<string name="radioInfo_menu_disableData">"Disable data connection"</string>
<string name="radioInfo_menu_enableDataOnBoot">"Enable data on boot"</string>
<string name="radioInfo_menu_disableDataOnBoot">"Disable data on boot"</string>
<string name="radioInfo_service_in">"In service"</string>
<string name="radioInfo_service_out">"Out of service"</string>
<string name="radioInfo_service_emergency">"Emergency calls only"</string>
<string name="radioInfo_menu_enableData">"Slå på datatilkobling"</string>
<string name="radioInfo_menu_disableData">"Slå av datatilkobling"</string>
<string name="radioInfo_menu_enableDataOnBoot">"Slå på data ved oppstart"</string>
<string name="radioInfo_menu_disableDataOnBoot">"Slå av data ved oppstart"</string>
<string name="radioInfo_service_in">"I serviceperiode"</string>
<string name="radioInfo_service_out">"Ute av serviceperiode"</string>
<string name="radioInfo_service_emergency">"Kun nødsamtaler"</string>
<string name="radioInfo_service_off">"Radio off"</string>
<string name="radioInfo_roaming_in">"Roaming"</string>
<string name="radioInfo_roaming_not">"Not roaming"</string>
<string name="radioInfo_phone_idle">"Idle"</string>
<string name="radioInfo_phone_ringing">"Ringing"</string>
<string name="radioInfo_phone_offhook">"Call in progress"</string>
<string name="radioInfo_data_disconnected">"Disconnected"</string>
<string name="radioInfo_data_connecting">"Connecting"</string>
<string name="radioInfo_data_connected">"Connected"</string>
<string name="radioInfo_data_suspended">"Suspended"</string>
<string name="radioInfo_unknown">"unknown"</string>
<string name="radioInfo_display_packets">"pkts"</string>
<string name="radioInfo_display_bytes">"bytes"</string>
<string name="radioInfo_roaming_in">"Roamer"</string>
<string name="radioInfo_roaming_not">"Roamer ikke"</string>
<string name="radioInfo_phone_idle">"Ledig"</string>
<string name="radioInfo_phone_ringing">"Ringer"</string>
<string name="radioInfo_phone_offhook">"Samtale pågår"</string>
<string name="radioInfo_data_disconnected">"Frakoblet"</string>
<string name="radioInfo_data_connecting">"Kobler til"</string>
<string name="radioInfo_data_connected">"Tilkoblet"</string>
<string name="radioInfo_data_suspended">"Satt på vent"</string>
<string name="radioInfo_unknown">"ukjent"</string>
<string name="radioInfo_display_packets">"pakker"</string>
<string name="radioInfo_display_bytes">"byte"</string>
<string name="radioInfo_display_dbm">"dBm"</string>
<string name="radioInfo_display_asu">"asu"</string>
<string name="radioInfo_lac">"LAC"</string>
<string name="radioInfo_cid">"CID"</string>
<string name="sdcard_unmount">"Unmount SD card"</string>
<string name="sdcard_format">"Format SD card"</string>
<string name="sdcard_unmount">"Avmonter minnekort"</string>
<string name="sdcard_format">"Formater minnekort"</string>
<string name="small_font">"Liten"</string>
<string name="medium_font">"Middels"</string>
<string name="large_font">"Stor"</string>
<string name="font_size_save">"OK"</string>
<string name="sdcard_setting">"Minnekort"</string>
<string name="battery_info_status_label">"Battery status:"</string>
<string name="battery_info_scale_label">"Battery scale:"</string>
<string name="battery_info_level_label">"Battery level:"</string>
<string name="battery_info_health_label">"Battery health:"</string>
<string name="battery_info_technology_label">"Battery technology:"</string>
<string name="battery_info_voltage_label">"Battery voltage:"</string>
<string name="battery_info_status_label">"Batteristatus:"</string>
<string name="battery_info_scale_label">"Batteriskala:"</string>
<string name="battery_info_level_label">"Batterinivå:"</string>
<string name="battery_info_health_label">"Batterihelse:"</string>
<string name="battery_info_technology_label">"Batteriteknologi:"</string>
<string name="battery_info_voltage_label">"Batterispenning:"</string>
<string name="battery_info_voltage_units">"mV"</string>
<string name="battery_info_temperature_label">"Battery temperature:"</string>
<string name="battery_info_temperature_label">"Batteritemperatur:"</string>
<string name="battery_info_temperature_units">"° C"</string>
<string name="battery_info_uptime">"Time since boot:"</string>
<string name="battery_info_awake_battery">"Awake time on battery:"</string>
<string name="battery_info_awake_plugged">"Awake time when charging:"</string>
<string name="battery_info_screen_on">"Screen ON time:"</string>
<string name="battery_info_status_unknown">"Unknown"</string>
<string name="battery_info_status_charging">"Charging"</string>
<string name="battery_info_uptime">"Oppetid:"</string>
<string name="battery_info_awake_battery">"ken tid på batteri:"</string>
<string name="battery_info_awake_plugged">"ken tid under lading:"</string>
<string name="battery_info_screen_on">"Tid skjermen har vært på:"</string>
<string name="battery_info_status_unknown">"Ukjent"</string>
<string name="battery_info_status_charging">"Lader"</string>
<string name="battery_info_status_charging_ac">"(AC)"</string>
<string name="battery_info_status_charging_usb">"(USB)"</string>
<string name="battery_info_status_discharging">"Discharging"</string>
<string name="battery_info_status_not_charging">"Not charging"</string>
<string name="battery_info_status_discharging">"Lader ut"</string>
<string name="battery_info_status_not_charging">"Lader ikke"</string>
<string name="battery_info_status_full">"Full"</string>
<string name="battery_info_health_unknown">"Unknown"</string>
<string name="battery_info_health_good">"Good"</string>
<string name="battery_info_health_overheat">"Overheat"</string>
<string name="battery_info_health_dead">"Dead"</string>
<string name="battery_info_health_over_voltage">"Over voltage"</string>
<string name="battery_info_health_unspecified_failure">"Unknown error"</string>
<string name="battery_info_health_unknown">"Ukjent"</string>
<string name="battery_info_health_good">"OK"</string>
<string name="battery_info_health_overheat">"For varmt"</string>
<string name="battery_info_health_dead">"Dødt"</string>
<string name="battery_info_health_over_voltage">"Over spenning"</string>
<string name="battery_info_health_unspecified_failure">"Ukjent feil"</string>
<string name="bluetooth">"Bluetooth"</string>
<string name="bluetooth_visibility">"Synlig"</string>
<string name="bluetooth_is_discoverable">"Synlig i <xliff:g id="DISCOVERABLE_TIME_PERIOD">%1$s</xliff:g> sekunder…"</string>
@@ -94,7 +94,7 @@
<string name="bluetooth_disconnected">"Frakoblet"</string>
<string name="bluetooth_disconnecting">"Kobler fra…"</string>
<string name="bluetooth_connecting">"Kobler til…"</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Par med denne enheten"</string>
<string name="bluetooth_pairing">"Parer…"</string>
@@ -110,7 +110,7 @@
<string name="choose_timezone">"Velg tidssone"</string>
<string name="display_preview_label">"Forhåndsvisning:"</string>
<string name="display_font_size_label">"Skriftstørrelse:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"Send <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -338,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Ringetoner, varsling, lysstyrke"</string>
<string name="silent_mode_title">"Stillemodus"</string>
<string name="silent_mode_summary">"Slå av alle lyder unntatt media og alarmer"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Ringetone"</string>
<string name="ringtone_summary">"Standard ringetone for innkommende anrop"</string>
<string name="ring_volume_title">"Ringevolum"</string>
@@ -365,8 +367,13 @@
<string name="sync_settings_summary">"Applikasjoner som skal synkroniseres"</string>
<string name="display_settings">"Skjerminnstillinger"</string>
<string name="animations_title">"Animasjon"</string>
<string name="animations_summary_on">"Vis animasjon når vinduer åpnes/lukkes"</string>
<string name="animations_summary_off">"Vis animasjon når vinduer åpnes/lukkes"</string>
<!-- no translation found for animations_summary_on (8843613112130484436) -->
<skip />
<!-- no translation found for animations_summary_off (2777026828025551983) -->
<skip />
<string name="accelerometer_title">"Orientering"</string>
<string name="accelerometer_summary_on">"Bytt orientering automatisk når telefonen blir snudd"</string>
<string name="accelerometer_summary_off">"Bytt orientering automatisk når telefonen blir snudd"</string>
<string name="brightness">"Lysstyrke"</string>
<string name="brightness_summary">"Juster skjermens lysstyrke"</string>
<string name="screen_timeout">"Skjermsparer"</string>
@@ -397,9 +404,9 @@
<string name="system_update_settings_list_item_summary">"Se etter systemoppdateringer"</string>
<string name="firmware_version">"Firmware-versjon"</string>
<string name="model_number">"Modellnummer"</string>
<string name="baseband_version">"Versjon av radioprogramvare"</string>
<string name="baseband_version">"Radioprogramvare"</string>
<string name="kernel_version">"Kjerneversjon"</string>
<string name="build_number">"Byggenummer"</string>
<string name="build_number">"Byggnummer"</string>
<string name="device_info_not_available">"Ikke tilgjengelig"</string>
<string name="device_status_activity_title">"Status"</string>
<string name="device_status">"Status"</string>
@@ -455,6 +462,9 @@
<string name="error_apn_empty">"APNet kan ikke være tomt."</string>
<string name="error_mcc_not3">"MCC-feltet må være på tre siffer."</string>
<string name="error_mnc_not23">"MNC-feltet må være på to eller tre siffer."</string>
<string name="restore_default_apn">"Gjenoppretter standardvalg for APN"</string>
<string name="menu_restore">"Tilbakestill til standardvalg"</string>
<string name="restore_default_apn_completed">"Ferdig med å gjenopprette standardvalg for APN"</string>
<string name="master_clear_title">"Fabrikkinnstillinger"</string>
<string name="master_clear_summary">"Fjern alle data fra telefonen"</string>
<string name="master_clear_desc">"Dette vil nullstille telefonen til fabrikktilstanden, noe som fjerner alle data og nedlastede applikasjoner!"</string>
@@ -586,11 +596,14 @@
<string name="auto_punctuate_summary">"Trykk mellomromstasten to ganger for å skrive punktum"</string>
<string name="show_password">"Synlige passord"</string>
<string name="show_password_summary">"Vis passord mens de skrives inn"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Ordliste"</string>
<string name="user_dict_settings_title">"Ordliste"</string>
<string name="user_dict_settings_summary">"Legg til og fjern ord fra ordlisten"</string>
<string name="user_dict_settings_add_menu_title">"Legg til"</string>
<string name="user_dict_settings_add_dialog_title">"Legg til ordliste"</string>
<string name="user_dict_settings_edit_dialog_title">"Rediger ord"</string>
<string name="user_dict_settings_context_menu_edit_title">"Rediger"</string>
<string name="user_dict_settings_context_menu_delete_title">"Slett"</string>
<string name="user_dict_settings_empty_text">"Ordlisten er tom. Du kan legge til ord i menyen."</string>
@@ -611,7 +624,11 @@
<string name="quick_launch_display_mode_shortcuts">"Snarveier"</string>
<string name="input_methods_settings_title">"Skriving av tekst"</string>
<string name="input_methods_settings_summary">"Innstillinger for skriving av tekst"</string>
<string name="input_methods_settings_label_format">"Innstillinger for %s"</string>
<!-- no translation found for input_methods_settings_label_format (6002887604815693322) -->
<skip />
<string name="onscreen_keyboard_settings_summary">"Innstillinger for skjermtastatur"</string>
<string name="builtin_keyboard_settings_title">"Enhetstastatur"</string>
<string name="builtin_keyboard_settings_summary">"Innstillinger for innebygget tastatur"</string>
<string name="development_settings_title">"Utvikling"</string>
<string name="development_settings_summary">"Innstillinger for applikasjonsutvikling"</string>
<string name="enable_adb">"USB-debugging"</string>
@@ -621,8 +638,7 @@
<string name="allow_mock_location">"Tillat manuell plassering"</string>
<string name="allow_mock_location_summary">"Tillat manuell plassering"</string>
<string name="gadget_picker_title">"Velg gadget"</string>
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="widget_picker_title">"Velg skrivebordselement"</string>
<string name="battery_history_details_for">"Detaljer for UID %d"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Nettbruk av <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
@@ -641,22 +657,16 @@
<string name="battery_history_packages_sharing_this_uid">"Pakker som deler denne UID-en:"</string>
<string name="battery_history_no_data">"Ingen batterihistorikk tilgjengelig"</string>
<string name="battery_history_sensor">"Sensor:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Delvis våkelås:"</string>
<string name="battery_history_used_by_packages">"Sensor brukt av pakker:"</string>
<string name="battery_history_sensor_usage">"Brukt <xliff:g id="COUNT">%1$d</xliff:g> ganger av <xliff:g id="PACKAGE">%2$s</xliff:g>"</string>
<string name="battery_history_sensor_usage_multi">"Brukt <xliff:g id="COUNT">%1$d</xliff:g> ganger av en av:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"Kjørende"</string>
<string name="battery_history_screen_on_label">"Skjerm på"</string>
<string name="battery_history_phone_on_label">"Telefon på"</string>
<string name="battery_history_awake">"Tid brukt uten å sove:"</string>
<string name="battery_history_screen_on">"Tid brukt med skjermen på:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Tid brukt med telefonen på:"</string>
<string name="battery_history_screen_on_battery">"På batteri:"</string>
<string name="battery_history_screen_on_plugged">"På nettstrøm:"</string>
<string name="usage_stats_label">"Bruksstatistikk"</string>

View File

@@ -55,15 +55,19 @@
<item>"Nooit indien aangesloten"</item>
<item>"Nooit"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"CPU-gebruik"</item>
<item>"Netwerkgebruik"</item>
<item>"GPS-gebruik"</item>
<item>"Sensorgebruik"</item>
<item>"Gedeeltelijk wake-gebruik"</item>
<item>"Ander gebruik"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"Sinds laatste keer losgekoppeld"</item>
<item>"Totaal sinds opstarten"</item>
<item>"Totaal voor altijd"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"Gebruikstijd"</item>
<item>"Aantal keer gestart"</item>

View File

@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"Verbinding verbroken"</string>
<string name="bluetooth_disconnecting">"Verbinding verbreken..."</string>
<string name="bluetooth_connecting">"Verbinding maken..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Koppelen met dit apparaat"</string>
<string name="bluetooth_pairing">"Koppelen..."</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"Gekoppeld maar niet verbonden"</string>
<string name="bluetooth_device">"handsfree/headset"</string>
<string name="progress_scanning">"Scannen"</string>
<string name="bluetooth_notif_ticker">"Bluetooth-koppelingsverzoek"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"Tijdzone selecteren"</string>
<string name="display_preview_label">"Voorbeeld:"</string>
<string name="display_font_size_label">"Lettergrootte:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"<xliff:g id="BROADCAST">broadcast</xliff:g> verzenden"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -339,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Beltonen, meldingen, schermhelderheid instellen"</string>
<string name="silent_mode_title">"Stille modus"</string>
<string name="silent_mode_summary">"Alle geluiden worden uitgeschakeld, behalve media- en alarmtonen"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Beltoon telefoon"</string>
<string name="ringtone_summary">"Standaardbeltoon voor inkomende oproepen instellen"</string>
<string name="ring_volume_title">"Belvolume"</string>
@@ -366,8 +367,11 @@
<string name="sync_settings_summary">"Selecteren welke toepassingen worden gesynchroniseerd"</string>
<string name="display_settings">"Instellingen weergeven"</string>
<string name="animations_title">"Animatie"</string>
<string name="animations_summary_on">"Animatie weergeven bij het openen/sluiten van vensters"</string>
<string name="animations_summary_off">"Animatie weergeven bij het openen/sluiten van vensters"</string>
<string name="animations_summary_on">"Animatie weergeven bij het openen en sluiten van vensters"</string>
<string name="animations_summary_off">"Animatie weergeven bij het openen en sluiten van vensters"</string>
<string name="accelerometer_title">"Stand"</string>
<string name="accelerometer_summary_on">"Stand automatisch wijzigen als telefoon wordt gedraaid"</string>
<string name="accelerometer_summary_off">"Stand automatisch wijzigen als telefoon wordt gedraaid"</string>
<string name="brightness">"Helderheid"</string>
<string name="brightness_summary">"Helderheid van het scherm aanpassen"</string>
<string name="screen_timeout">"Time-out scherm"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"De APN mag niet leeg zijn."</string>
<string name="error_mcc_not3">"MCC-veld moet 3 cijfers bevatten."</string>
<string name="error_mnc_not23">"MNC-veld moet 2 of 3 cijfers bevatten."</string>
<string name="restore_default_apn">"Standaard-APN-instellingen herstellen"</string>
<string name="menu_restore">"Standaardinstellingen herstellen"</string>
<string name="restore_default_apn_completed">"Herstellen van standaard-APN-instellingen voltooid"</string>
<string name="master_clear_title">"Terugzetten op fabrieksinstellingen"</string>
<string name="master_clear_summary">"Hiermee worden alle gegevens op de telefoon gewist"</string>
<string name="master_clear_desc">"Met deze actie wordt de telefoon teruggezet op de fabrieksinstellingen. Alle gegevens en gedownloade toepassingen worden gewist!"</string>
@@ -587,11 +594,14 @@
<string name="auto_punctuate_summary">"Druk twee keer op de spatiebalk om \'.\' in te voegen"</string>
<string name="show_password">"Zichtbare wachtwoorden"</string>
<string name="show_password_summary">"Wachtwoord weergeven tijdens het typen"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Gebruikerswoordenboek"</string>
<string name="user_dict_settings_title">"Gebruikerswoordenboek"</string>
<string name="user_dict_settings_summary">"Woorden toevoegen aan en verwijderen uit gebruikerswoordenboek"</string>
<string name="user_dict_settings_add_menu_title">"Toevoegen"</string>
<string name="user_dict_settings_add_dialog_title">"Toevoegen aan woordenboek"</string>
<string name="user_dict_settings_edit_dialog_title">"Woord bewerken"</string>
<string name="user_dict_settings_context_menu_edit_title">"Bewerken"</string>
<string name="user_dict_settings_context_menu_delete_title">"Verwijderen"</string>
<string name="user_dict_settings_empty_text">"U heeft geen woorden in het gebruikerswoordenboek. U kunt een woord toevoegen via het menu."</string>
@@ -612,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"Sneltoetsen"</string>
<string name="input_methods_settings_title">"Tekstinvoer"</string>
<string name="input_methods_settings_summary">"Opties voor tekstinvoer beheren"</string>
<string name="input_methods_settings_label_format">"Instellingen voor %s"</string>
<string name="input_methods_settings_label_format">"Instellingen voor <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
<string name="onscreen_keyboard_settings_summary">"Instellingen voor schermtoetsenbord"</string>
<string name="builtin_keyboard_settings_title">"Apparaattoetsenbord"</string>
<string name="builtin_keyboard_settings_summary">"Instellingen voor ingebouwd toetsenbord"</string>
<string name="development_settings_title">"Ontwikkeling"</string>
<string name="development_settings_summary">"Opties instellen voor toepassingsontwikkeling"</string>
<string name="enable_adb">"USB-foutopsporing"</string>
@@ -621,10 +634,8 @@
<string name="keep_screen_on_summary">"Scherm gaat nooit uit tijdens het opladen"</string>
<string name="allow_mock_location">"Neplocaties toestaan"</string>
<string name="allow_mock_location_summary">"Neplocaties toestaan"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"Gadget kiezen"</string>
<string name="widget_picker_title">"Widget kiezen"</string>
<string name="battery_history_details_for">"Details voor UID %d"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Netwerkgebruiksdetails voor <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
@@ -643,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"Pakketten die deze UID delen:"</string>
<string name="battery_history_no_data">"Er zijn geen beschikbare gebruiksgegevens van de accu"</string>
<string name="battery_history_sensor">"Sensor:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Gedeeltelijke wakelock:"</string>
<string name="battery_history_used_by_packages">"De sensor wordt gebruikt door de volgende pakketten:"</string>
<string name="battery_history_sensor_usage">"<xliff:g id="COUNT">%1$d</xliff:g> keer gebruikt door <xliff:g id="PACKAGE">%2$s</xliff:g>"</string>
<string name="battery_history_sensor_usage_multi">"<xliff:g id="COUNT">%1$d</xliff:g> keer gebruikt door een van de volgende:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"Wordt uitgevoerd"</string>
<string name="battery_history_screen_on_label">"Scherm aan"</string>
<string name="battery_history_phone_on_label">"Telefoon aan"</string>
<string name="battery_history_awake">"Tijd verstreken zonder slaapstand:"</string>
<string name="battery_history_screen_on">"Tijd verstreken met scherm aan:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Tijd verstreken met telefoon aan:"</string>
<string name="battery_history_screen_on_battery">"Op accu:"</string>
<string name="battery_history_screen_on_plugged">"Opladen:"</string>
<string name="usage_stats_label">"Gebruiksstatistieken"</string>

View File

@@ -55,15 +55,19 @@
<item>"Nigdy, gdy podłączony"</item>
<item>"Nigdy"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"Wykorzystanie procesora"</item>
<item>"Wykorzystanie sieci"</item>
<item>"Wykorzystanie modułu GPS"</item>
<item>"Wykorzystanie czujnika"</item>
<item>"Wykorzystanie przy częściowym wybudzeniu"</item>
<item>"Inne wykorzystanie"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"Od ostatniego odłączenia"</item>
<item>"Łącznie od uruchomienia"</item>
<item>"Łącznie przez cały czas"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"Czas użycia"</item>
<item>"Licznik uruchomień"</item>

View File

@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"Rozłączona"</string>
<string name="bluetooth_disconnecting">"Rozłączanie..."</string>
<string name="bluetooth_connecting">"Łączenie..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Paruj z tym urządzeniem"</string>
<string name="bluetooth_pairing">"Parowanie..."</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"Powiązany, ale nie połączony"</string>
<string name="bluetooth_device">"zestaw głośnomówiący/słuchawkowy"</string>
<string name="progress_scanning">"Przeszukiwanie"</string>
<string name="bluetooth_notif_ticker">"Żądanie parowania Bluetooth"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"Wybierz strefę czasową"</string>
<string name="display_preview_label">"Podgląd:"</string>
<string name="display_font_size_label">"Rozmiar czcionki:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"Wyślij <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -339,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Ustaw dzwonki, powiadomienia, jasność ekranu"</string>
<string name="silent_mode_title">"Tryb cichy"</string>
<string name="silent_mode_summary">"Wszystkie dźwięki oprócz multimediów i alarmów są wyciszone"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Dzwonek telefonu"</string>
<string name="ringtone_summary">"Ustaw domyślny dzwonek dla połączeń przychodzących"</string>
<string name="ring_volume_title">"Głośność dzwonka"</string>
@@ -366,8 +367,11 @@
<string name="sync_settings_summary">"Wybierz, które aplikacje są synchronizowane"</string>
<string name="display_settings">"Ustawienia wyświetlacza"</string>
<string name="animations_title">"Animacja"</string>
<string name="animations_summary_on">"Pokazuj animację podczas otwierania i zamykania okien"</string>
<string name="animations_summary_off">"Pokazuj animację podczas otwierania i zamykania okien"</string>
<string name="animations_summary_on">"Pokaż animację przy otwieraniu i zamykaniu okien"</string>
<string name="animations_summary_off">"Pokaż animację przy otwieraniu i zamykaniu okien"</string>
<string name="accelerometer_title">"Orientacja"</string>
<string name="accelerometer_summary_on">"Automatycznie przełącz orientację przy obracaniu telefonu"</string>
<string name="accelerometer_summary_off">"Automatycznie przełącz orientację przy obracaniu telefonu"</string>
<string name="brightness">"Jasność ekranu"</string>
<string name="brightness_summary">"Dostosuj jasność ekranu"</string>
<string name="screen_timeout">"Wygaszanie ekranu"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"Pole APN nie może być puste."</string>
<string name="error_mcc_not3">"Pole MMC musi zawierać 3 cyfry."</string>
<string name="error_mnc_not23">"Pole MNC musi zawierać 2 lub 3 cyfry."</string>
<string name="restore_default_apn">"Przywracanie domyślnych ustawień APN"</string>
<string name="menu_restore">"Resetuj do ustawień domyślnych"</string>
<string name="restore_default_apn_completed">"Zakończono resetowanie domyślnych ustawień APN"</string>
<string name="master_clear_title">"Ustawienia fabryczne"</string>
<string name="master_clear_summary">"Wymazuje wszystkie dane w telefonie"</string>
<string name="master_clear_desc">"Ta czynność spowoduje przywrócenie w telefonie ustawień fabrycznych i wymazanie wszystkich danych oraz pobranych aplikacji!"</string>
@@ -587,11 +594,14 @@
<string name="auto_punctuate_summary">"Naciśnij klawisz spacji dwukrotnie, aby wstawić kropkę."</string>
<string name="show_password">"Widoczne hasła"</string>
<string name="show_password_summary">"Pokazuj hasło podczas wpisywania"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Słownik użytkownika"</string>
<string name="user_dict_settings_title">"Słownik użytkownika"</string>
<string name="user_dict_settings_summary">"Dodaj i usuń słowa w słowniku użytkownika"</string>
<string name="user_dict_settings_add_menu_title">"Dodaj"</string>
<string name="user_dict_settings_add_dialog_title">"Dodaj do słownika"</string>
<string name="user_dict_settings_edit_dialog_title">"Edytuj słowo"</string>
<string name="user_dict_settings_context_menu_edit_title">"Edytuj"</string>
<string name="user_dict_settings_context_menu_delete_title">"Usuń"</string>
<string name="user_dict_settings_empty_text">"Nie masz żadnych słów w słowniku użytkownika. Możesz dodać słowo poprzez menu."</string>
@@ -612,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"Skróty"</string>
<string name="input_methods_settings_title">"Wprowadzanie tekstu"</string>
<string name="input_methods_settings_summary">"Zarządzaj opcjami wprowadzania tekstu"</string>
<string name="input_methods_settings_label_format">"%s ustawienia"</string>
<string name="input_methods_settings_label_format">"Ustawienia <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
<string name="onscreen_keyboard_settings_summary">"Ustawienia klawiatury ekranowej"</string>
<string name="builtin_keyboard_settings_title">"Klawiatura urządzenia"</string>
<string name="builtin_keyboard_settings_summary">"Ustawienia klawiatury wbudowanej"</string>
<string name="development_settings_title">"Programowanie"</string>
<string name="development_settings_summary">"Ustaw opcje związane z programowaniem aplikacji"</string>
<string name="enable_adb">"Debugowanie USB"</string>
@@ -621,10 +634,8 @@
<string name="keep_screen_on_summary">"Ekran nigdy nie będzie gaszony podczas ładowania"</string>
<string name="allow_mock_location">"Pozorowanie położenia"</string>
<string name="allow_mock_location_summary">"Zezwalaj na pozorowane położenia"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"Wybierz gadżet"</string>
<string name="widget_picker_title">"Wybierz widżet"</string>
<string name="battery_history_details_for">"Szczegóły dla identyfikatora UID %d"</string>
<string name="battery_history_uid">"Identyfikator UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Szczegóły wykorzystania sieci dla <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
@@ -643,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"Pakiety współdzielące ten identyfikator UID:"</string>
<string name="battery_history_no_data">"Brak danych o użyciu baterii"</string>
<string name="battery_history_sensor">"Czujnik:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Częściowa blokada wybudzenia:"</string>
<string name="battery_history_used_by_packages">"Czujnik używany przez pakiety:"</string>
<string name="battery_history_sensor_usage">"Używane <xliff:g id="COUNT">%1$d</xliff:g> raz(y) przez <xliff:g id="PACKAGE">%2$s</xliff:g>"</string>
<string name="battery_history_sensor_usage_multi">"Używane <xliff:g id="COUNT">%1$d</xliff:g> raz(y) przez:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"Działa"</string>
<string name="battery_history_screen_on_label">"Ekran włączony"</string>
<string name="battery_history_phone_on_label">"Telefon włączony"</string>
<string name="battery_history_awake">"Czas bez uśpienia:"</string>
<string name="battery_history_screen_on">"Czas pracy z włączonym ekranem:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Czas pracy przy włączonym telefonie:"</string>
<string name="battery_history_screen_on_battery">"Praca na baterii:"</string>
<string name="battery_history_screen_on_plugged">"Podłączone:"</string>
<string name="usage_stats_label">"Statystyki użycia"</string>

View File

@@ -55,15 +55,19 @@
<item>"Никогда, если устройство подключено к сети питания"</item>
<item>"Никогда"</item>
</string-array>
<!-- no translation found for battery_history_type_spinner:0 (2193799199027871385) -->
<!-- no translation found for battery_history_type_spinner:1 (6401018715947316517) -->
<!-- no translation found for battery_history_type_spinner:2 (188092590354892392) -->
<!-- no translation found for battery_history_type_spinner:3 (8414109131222049141) -->
<!-- no translation found for battery_history_type_spinner:4 (1327904325081257093) -->
<!-- no translation found for battery_history_type_spinner:5 (4832254146664706277) -->
<!-- no translation found for battery_history_which_spinner:0 (3451981114763440074) -->
<!-- no translation found for battery_history_which_spinner:1 (166936313535197598) -->
<!-- no translation found for battery_history_which_spinner:2 (4793941382744963893) -->
<string-array name="battery_history_type_spinner">
<item>"Использование процессора"</item>
<item>"Использование сети"</item>
<item>"Использование GPS"</item>
<item>"Использование сенсора"</item>
<item>"Использование частичного включения"</item>
<item>"Прочее использование"</item>
</string-array>
<string-array name="battery_history_which_spinner">
<item>"С последнего отключения питания"</item>
<item>"Всего с момента загрузки"</item>
<item>"Всего за все время"</item>
</string-array>
<string-array name="usage_stats_display_order_types">
<item>"Время использования"</item>
<item>"Начать подсчет"</item>

View File

@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"Отключено"</string>
<string name="bluetooth_disconnecting">"Отключение…"</string>
<string name="bluetooth_connecting">"Идет подключение…"</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"Создать пару с этим устройством"</string>
<string name="bluetooth_pairing">"Идет создание пары..."</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"Соединено, но не подключено"</string>
<string name="bluetooth_device">"гарнитура/наушники"</string>
<string name="progress_scanning">"Сканирование"</string>
<string name="bluetooth_notif_ticker">"Запрос на соединение Bluetooth"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"Выбрать часовой пояс"</string>
<string name="display_preview_label">"Предварительный просмотр:"</string>
<string name="display_font_size_label">"Размер шрифта:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"Отправить <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>:"</string>
@@ -339,6 +338,8 @@
<string name="sound_and_display_settings_summary">"Установка мелодий звонка, уведомлений, яркости экрана"</string>
<string name="silent_mode_title">"Беззвучный режим"</string>
<string name="silent_mode_summary">"Отключение всех звуков, кроме мультимедиа и будильников"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"Мелодия звонка телефона"</string>
<string name="ringtone_summary">"Установить мелодию звонка для входящих вызовов по умолчанию"</string>
<string name="ring_volume_title">"Громкость звонка"</string>
@@ -368,6 +369,9 @@
<string name="animations_title">"Анимация"</string>
<string name="animations_summary_on">"Показывать анимацию при открытии и закрытии окон"</string>
<string name="animations_summary_off">"Показывать анимацию при открытии и закрытии окон"</string>
<string name="accelerometer_title">"Ориентация"</string>
<string name="accelerometer_summary_on">"Автоматически менять ориентацию при повороте телефона"</string>
<string name="accelerometer_summary_off">"Автоматически менять ориентацию при повороте телефона"</string>
<string name="brightness">"Яркость"</string>
<string name="brightness_summary">"Настроить яркость экрана"</string>
<string name="screen_timeout">"Время до отключения экрана"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"APN не может быть пустым."</string>
<string name="error_mcc_not3">"Поле MCC должно содержать 3 цифры."</string>
<string name="error_mnc_not23">"Поле MNC должно содержать 2 или 3 цифры."</string>
<string name="restore_default_apn">"Восстановление настроек APN по умолчанию"</string>
<string name="menu_restore">"Восстановить настройки по умолчанию"</string>
<string name="restore_default_apn_completed">"Восстановление настроек APN по умолчанию завершено"</string>
<string name="master_clear_title">"Сброс заводских данных"</string>
<string name="master_clear_summary">"Удаление всех данных с телефона"</string>
<string name="master_clear_desc">"Это действие сбросит телефон до исходного заводского состояния, удалив все данные и загруженные приложения!"</string>
@@ -587,11 +594,14 @@
<string name="auto_punctuate_summary">"Чтобы вставить символ \".\", дважды нажмите пробел."</string>
<string name="show_password">"Показывать пароли"</string>
<string name="show_password_summary">"Показывать пароль при вводе"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"Пользовательский словарь"</string>
<string name="user_dict_settings_title">"Пользовательский словарь"</string>
<string name="user_dict_settings_summary">"Добавить или удалить слова из пользовательского словаря"</string>
<string name="user_dict_settings_add_menu_title">"Добавить"</string>
<string name="user_dict_settings_add_dialog_title">"Добавление в словарь"</string>
<string name="user_dict_settings_edit_dialog_title">"Изменение слова"</string>
<string name="user_dict_settings_context_menu_edit_title">"Изменить"</string>
<string name="user_dict_settings_context_menu_delete_title">"Удалить"</string>
<string name="user_dict_settings_empty_text">"В пользовательском словаре отсутствуют слова. Добавить слово можно с помощью меню."</string>
@@ -612,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"Ярлыки"</string>
<string name="input_methods_settings_title">"Ввод текста"</string>
<string name="input_methods_settings_summary">"Управление параметрами ввода текста"</string>
<string name="input_methods_settings_label_format">"Настройки %s"</string>
<string name="input_methods_settings_label_format">"Настройки <xliff:g id="IME_NAME">%1$s</xliff:g>"</string>
<string name="onscreen_keyboard_settings_summary">"Настройки экранной клавиатуры"</string>
<string name="builtin_keyboard_settings_title">"Клавиатура устройства"</string>
<string name="builtin_keyboard_settings_summary">"Настройки встроенной клавиатуры"</string>
<string name="development_settings_title">"Разработка"</string>
<string name="development_settings_summary">"Выбрать параметры разработки приложений"</string>
<string name="enable_adb">"Отладка USB"</string>
@@ -621,10 +634,8 @@
<string name="keep_screen_on_summary">"При зарядке экран не отключается"</string>
<string name="allow_mock_location">"Разрешить фиктивные местоположения"</string>
<string name="allow_mock_location_summary">"Разрешить фиктивные местоположения"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"Выбор·гаджета"</string>
<string name="widget_picker_title">"Выбор виджета"</string>
<string name="battery_history_details_for">"Сведения для идентификатора пользователя %d"</string>
<string name="battery_history_uid">"Идентификатор пользователя <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"Сведения об использовании сети приложением <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
@@ -643,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"Пакеты с этим идентификатором пользователя:"</string>
<string name="battery_history_no_data">"Данные об использовании батареи недоступны"</string>
<string name="battery_history_sensor">"Сенсор:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"Блокировка частичного включения:"</string>
<string name="battery_history_used_by_packages">"Использования сенсора пакетами:"</string>
<string name="battery_history_sensor_usage">"Использовано пакетом <xliff:g id="PACKAGE">%2$s</xliff:g>: <xliff:g id="COUNT">%1$d</xliff:g> раз(а)"</string>
<string name="battery_history_sensor_usage_multi">"Использовано <xliff:g id="COUNT">%1$d</xliff:g> раз(а) одним из:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"Режим работы"</string>
<string name="battery_history_screen_on_label">"Экран включен"</string>
<string name="battery_history_phone_on_label">"Телефон включен"</string>
<string name="battery_history_awake">"Время с последнего перехода в спящий режим:"</string>
<string name="battery_history_screen_on">"Время пребывания экрана включенным:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"Время пребывания телефона включенным:"</string>
<string name="battery_history_screen_on_battery">"От батареи:"</string>
<string name="battery_history_screen_on_plugged">"Подключен к питанию:"</string>
<string name="usage_stats_label">"Статистика использования"</string>

View File

@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"已断开连接"</string>
<string name="bluetooth_disconnecting">"正在断开连接..."</string>
<string name="bluetooth_connecting">"正在连接..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"与此设备配对"</string>
<string name="bluetooth_pairing">"正在配对..."</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"已配对但未连接"</string>
<string name="bluetooth_device">"免持听筒/耳机"</string>
<string name="progress_scanning">"正在扫描"</string>
<string name="bluetooth_notif_ticker">"蓝牙配对请求"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"选择时区"</string>
<string name="display_preview_label">"预览:"</string>
<string name="display_font_size_label">"字体大小:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"发送<xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>"</string>
@@ -339,6 +338,8 @@
<string name="sound_and_display_settings_summary">"设置铃声、通知、屏幕亮度"</string>
<string name="silent_mode_title">"静音模式"</string>
<string name="silent_mode_summary">"除媒体和闹钟之外的所有声音都被静音"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"手机铃声"</string>
<string name="ringtone_summary">"设置默认的来电铃声"</string>
<string name="ring_volume_title">"响铃音量"</string>
@@ -366,8 +367,11 @@
<string name="sync_settings_summary">"选择同步哪些应用程序"</string>
<string name="display_settings">"显示设置"</string>
<string name="animations_title">"动画"</string>
<string name="animations_summary_on">"打开/关闭窗口时显示动画"</string>
<string name="animations_summary_off">"打开/关闭窗口时显示动画"</string>
<string name="animations_summary_on">"打开关闭窗口时显示动画"</string>
<string name="animations_summary_off">"打开关闭窗口时显示动画"</string>
<string name="accelerometer_title">"方向"</string>
<string name="accelerometer_summary_on">"旋转手机时自动改变方向"</string>
<string name="accelerometer_summary_off">"旋转手机时自动改变方向"</string>
<string name="brightness">"亮度"</string>
<string name="brightness_summary">"调整屏幕亮度"</string>
<string name="screen_timeout">"屏幕待机"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"APN 不能为空。"</string>
<string name="error_mcc_not3">"MCC 字段必须为 3 位数。"</string>
<string name="error_mnc_not23">"MNC 字段必须为 2 位数或 3 位数。"</string>
<string name="restore_default_apn">"正在恢复默认 APN 设置"</string>
<string name="menu_restore">"重置为默认设置"</string>
<string name="restore_default_apn_completed">"重置默认 APN 设置已完成"</string>
<string name="master_clear_title">"已重设出厂数据"</string>
<string name="master_clear_summary">"清除手机上的所有数据"</string>
<string name="master_clear_desc">"此操作会将手机重设为其初始出厂状态,即清除所有数据和下载的应用程序!"</string>
@@ -587,11 +594,14 @@
<string name="auto_punctuate_summary">"按两次空格键来插入“。”"</string>
<string name="show_password">"可见的密码"</string>
<string name="show_password_summary">"键入时显示密码"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"用户词典"</string>
<string name="user_dict_settings_title">"用户词典"</string>
<string name="user_dict_settings_summary">"向用户词典中添加字词以及从用户词典中删除字词"</string>
<string name="user_dict_settings_add_menu_title">"添加"</string>
<string name="user_dict_settings_add_dialog_title">"添加到词典"</string>
<string name="user_dict_settings_edit_dialog_title">"编辑字词"</string>
<string name="user_dict_settings_context_menu_edit_title">"编辑"</string>
<string name="user_dict_settings_context_menu_delete_title">"删除"</string>
<string name="user_dict_settings_empty_text">"用户词典中没有您定义的字词。您可以通过菜单添加字词。"</string>
@@ -612,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"快捷键"</string>
<string name="input_methods_settings_title">"文本输入"</string>
<string name="input_methods_settings_summary">"管理文本输入选项"</string>
<string name="input_methods_settings_label_format">"%s 设置"</string>
<string name="input_methods_settings_label_format">"<xliff:g id="IME_NAME">%1$s</xliff:g> 设置"</string>
<string name="onscreen_keyboard_settings_summary">"屏幕键盘设置"</string>
<string name="builtin_keyboard_settings_title">"设备键盘"</string>
<string name="builtin_keyboard_settings_summary">"内置键盘设置"</string>
<string name="development_settings_title">"开发"</string>
<string name="development_settings_summary">"设置应用程序开发选项"</string>
<string name="enable_adb">"USB 调试"</string>
@@ -621,10 +634,8 @@
<string name="keep_screen_on_summary">"充电时屏幕不会休眠"</string>
<string name="allow_mock_location">"允许模仿位置"</string>
<string name="allow_mock_location_summary">"允许模仿位置"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"选择小工具"</string>
<string name="widget_picker_title">"选择窗口小部件"</string>
<string name="battery_history_details_for">"有关用户 ID %d 的详情"</string>
<string name="battery_history_uid">"用户 ID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"有关<xliff:g id="APP_NAME">%1$s</xliff:g>的网络使用详情:"</string>
@@ -643,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"共享该用户 ID 的数据包:"</string>
<string name="battery_history_no_data">"没有可用的电池使用数据"</string>
<string name="battery_history_sensor">"传感器:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"部分激活锁定:"</string>
<string name="battery_history_used_by_packages">"包使用的传感器:"</string>
<string name="battery_history_sensor_usage">"<xliff:g id="PACKAGE">%2$s</xliff:g>使用了 <xliff:g id="COUNT">%1$d</xliff:g> 次"</string>
<string name="battery_history_sensor_usage_multi">"由以下某项使用过 <xliff:g id="COUNT">%1$d</xliff:g> 次:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"正在运行"</string>
<string name="battery_history_screen_on_label">"屏幕已开启"</string>
<string name="battery_history_phone_on_label">"手机已开启"</string>
<string name="battery_history_awake">"除睡眠状态以外的时间"</string>
<string name="battery_history_screen_on">"屏幕开启所花费的时间:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"手机处于开机状态的时间:"</string>
<string name="battery_history_screen_on_battery">"正在使用电池:"</string>
<string name="battery_history_screen_on_plugged">"已插入:"</string>
<string name="usage_stats_label">"使用情况统计"</string>

View File

@@ -94,12 +94,11 @@
<string name="bluetooth_disconnected">"連線中斷"</string>
<string name="bluetooth_disconnecting">"連線中斷..."</string>
<string name="bluetooth_connecting">"連線中..."</string>
<!-- no translation found for bluetooth_unknown (1905151516611093010) -->
<!-- no translation found for bluetooth_unknown (644716244548801421) -->
<skip />
<string name="bluetooth_not_connected">"與此裝置配對"</string>
<string name="bluetooth_pairing">"配對中..."</string>
<!-- no translation found for bluetooth_paired (1247541089000057726) -->
<skip />
<string name="bluetooth_paired">"已配對,但尚未連接"</string>
<string name="bluetooth_device">"免持/頭戴式"</string>
<string name="progress_scanning">"掃描中"</string>
<string name="bluetooth_notif_ticker">"藍牙配對要求"</string>
@@ -111,7 +110,7 @@
<string name="choose_timezone">"選取時區"</string>
<string name="display_preview_label">"預覽:"</string>
<string name="display_font_size_label">"字型大小:"</string>
<!-- no translation found for intent_sender_data_label (8363026381459131554) -->
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
<skip />
<string name="intent_sender_sendbroadcast_text">"傳送 <xliff:g id="BROADCAST">broadcast</xliff:g>"</string>
<string name="intent_sender_action_label">"<xliff:g id="ACTION">Action</xliff:g>"</string>
@@ -339,6 +338,8 @@
<string name="sound_and_display_settings_summary">"設定鈴聲、通知與螢幕亮度"</string>
<string name="silent_mode_title">"靜音模式"</string>
<string name="silent_mode_summary">"將媒體和鬧鐘以外的所有音效靜音"</string>
<!-- no translation found for silent_mode_incl_alarm_summary (2088830834182228458) -->
<skip />
<string name="ringtone_title">"電話鈴聲"</string>
<string name="ringtone_summary">"設定預設來電鈴聲"</string>
<string name="ring_volume_title">"鈴聲音量"</string>
@@ -366,8 +367,11 @@
<string name="sync_settings_summary">"選取要同步處理的應用程式"</string>
<string name="display_settings">"顯示設定"</string>
<string name="animations_title">"動畫"</string>
<string name="animations_summary_on">"開啟/關閉視窗時顯示動畫"</string>
<string name="animations_summary_off">"開啟/關閉視窗時顯示動畫"</string>
<string name="animations_summary_on">"開啟關閉視窗時顯示動畫"</string>
<string name="animations_summary_off">"開啟關閉視窗時顯示動畫"</string>
<string name="accelerometer_title">"顯示方向"</string>
<string name="accelerometer_summary_on">"旋轉手機時自動改變顯示方向"</string>
<string name="accelerometer_summary_off">"旋轉手機時自動改變顯示方向"</string>
<string name="brightness">"亮度"</string>
<string name="brightness_summary">"調整螢幕亮度"</string>
<string name="screen_timeout">"螢幕逾時"</string>
@@ -456,6 +460,9 @@
<string name="error_apn_empty">"APN 不能空白。"</string>
<string name="error_mcc_not3">"MCC 欄位必須為 3 位。"</string>
<string name="error_mnc_not23">"MNC 欄位至少要 2 或 3 位。"</string>
<string name="restore_default_apn">"正在還原預設 APN 設定"</string>
<string name="menu_restore">"還原為預設狀態"</string>
<string name="restore_default_apn_completed">"重設預設 APN 設定已完成"</string>
<string name="master_clear_title">"出廠資料重設"</string>
<string name="master_clear_summary">"清除手機上所有資料"</string>
<string name="master_clear_desc">"此項操作會將手機回復至出廠設定,清除所有資料與下載的應用程式!"</string>
@@ -587,11 +594,14 @@
<string name="auto_punctuate_summary">"按空白鍵兩次可插入「.」"</string>
<string name="show_password">"密碼可見"</string>
<string name="show_password_summary">"顯示輸入的密碼"</string>
<!-- no translation found for ime_security_warning (3458652708716006477) -->
<skip />
<string name="user_dict_settings_titlebar">"使用者字典"</string>
<string name="user_dict_settings_title">"使用者字典"</string>
<string name="user_dict_settings_summary">"在使用者字典中新增及移除字詞"</string>
<string name="user_dict_settings_add_menu_title">"新增"</string>
<string name="user_dict_settings_add_dialog_title">"新增至字典"</string>
<string name="user_dict_settings_edit_dialog_title">"編輯文字"</string>
<string name="user_dict_settings_context_menu_edit_title">"編輯"</string>
<string name="user_dict_settings_context_menu_delete_title">"刪除"</string>
<string name="user_dict_settings_empty_text">"您的使用者字典中沒有任何字詞。您可以透過選單新增字詞。"</string>
@@ -612,7 +622,10 @@
<string name="quick_launch_display_mode_shortcuts">"捷徑"</string>
<string name="input_methods_settings_title">"文字輸入法"</string>
<string name="input_methods_settings_summary">"管理輸入法選項"</string>
<string name="input_methods_settings_label_format">"%s 設定"</string>
<string name="input_methods_settings_label_format">"<xliff:g id="IME_NAME">%1$s</xliff:g> 設定"</string>
<string name="onscreen_keyboard_settings_summary">"螢幕小鍵盤設定"</string>
<string name="builtin_keyboard_settings_title">"裝置小鍵盤"</string>
<string name="builtin_keyboard_settings_summary">"內建小鍵盤設定"</string>
<string name="development_settings_title">"開發"</string>
<string name="development_settings_summary">"設定應用程式開發的選項"</string>
<string name="enable_adb">"USB 除錯中"</string>
@@ -621,10 +634,8 @@
<string name="keep_screen_on_summary">"充電時螢幕不會進入休眠"</string>
<string name="allow_mock_location">"允許模擬位置"</string>
<string name="allow_mock_location_summary">"允許模擬位置"</string>
<!-- no translation found for gadget_picker_title (98374951396755811) -->
<skip />
<!-- no translation found for widget_picker_title (9130684134213467557) -->
<skip />
<string name="gadget_picker_title">"選擇小工具"</string>
<string name="widget_picker_title">"選擇小工具"</string>
<string name="battery_history_details_for">"UID %d 的詳細資料"</string>
<string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<string name="battery_history_network_usage">"<xliff:g id="APP_NAME">%1$s</xliff:g> 的網路使用率詳細資料:"</string>
@@ -643,22 +654,16 @@
<string name="battery_history_packages_sharing_this_uid">"共用此 UID 的封裝:"</string>
<string name="battery_history_no_data">"沒有電池使用資料"</string>
<string name="battery_history_sensor">"感應器:"</string>
<!-- no translation found for battery_history_wakelock (608683447522396293) -->
<skip />
<string name="battery_history_wakelock">"部分喚醒鎖定:"</string>
<string name="battery_history_used_by_packages">"程式使用的感應器:"</string>
<string name="battery_history_sensor_usage">"使用次數:<xliff:g id="COUNT">%1$d</xliff:g>,使用的封裝:<xliff:g id="PACKAGE">%2$s</xliff:g>"</string>
<string name="battery_history_sensor_usage_multi">"使用次數:<xliff:g id="COUNT">%1$d</xliff:g>,使用者為下列其中之一:"</string>
<!-- no translation found for battery_history_awake_label (8449792868990080882) -->
<skip />
<!-- no translation found for battery_history_screen_on_label (1848936521786339362) -->
<skip />
<!-- no translation found for battery_history_phone_on_label (700191958853142297) -->
<skip />
<!-- no translation found for battery_history_awake (4350886665719031057) -->
<skip />
<string name="battery_history_awake_label">"執行"</string>
<string name="battery_history_screen_on_label">"螢幕開啟"</string>
<string name="battery_history_phone_on_label">"開機"</string>
<string name="battery_history_awake">"未休眠的時間:"</string>
<string name="battery_history_screen_on">"螢幕開啟時間:"</string>
<!-- no translation found for battery_history_phone_on (4891504401623839532) -->
<skip />
<string name="battery_history_phone_on">"手機處於開啟狀態的時間:"</string>
<string name="battery_history_screen_on_battery">"使用電池:"</string>
<string name="battery_history_screen_on_plugged">"插入時間:"</string>
<string name="usage_stats_label">"使用統計資料"</string>

View File

@@ -47,9 +47,9 @@
<!-- Do not translate. This is fed directly to the formatter. -->
<item>dd-MM-yyyy</item>
<!-- Do not translate. This is fed directly to the formatter. -->
<item>MMM dd, yyyy</item>
<item>MMM d, yyyy</item>
<!-- Do not translate. This is fed directly to the formatter. -->
<item>dd-MMM-yyyy</item>
<item>d-MMM-yyyy</item>
<!-- Do not translate. This is fed directly to the formatter. -->
<item>yyyy-MM-dd</item>
</string-array>

View File

@@ -751,8 +751,10 @@
<string name="sound_and_display_settings_summary">Set ringtones, notifications, screen brightness</string>
<!-- Sound settings screen, setting option name checkbox -->
<string name="silent_mode_title">Silent mode</string>
<!-- Sound settings screen, setting option summary text -->
<!-- Sound settings screen, setting option summary text when going into silent mode. Media and alarms sounds WILL NOT be silenced in silent mode. -->
<string name="silent_mode_summary">All sounds except media &amp; alarms are silenced</string>
<!-- Sound settings screen, setting option summary text when going into silent mode. Media WILL NOT be silenced in silent mode, but alarms WILL be silenced. -->
<string name="silent_mode_incl_alarm_summary">All sounds except media are silenced</string>
<!-- Sound settings screen, setting option name to pick ringtone (a list dialog comes up)-->
<string name="ringtone_title">Phone ringtone</string>
<!-- Sound settings screen, setting option summary text -->
@@ -812,9 +814,9 @@
<!-- Sound & display settings screen, animations check box label -->
<string name="animations_title">Animation</string>
<!-- Sound & display settings screen, animations option summary text when check box is selected -->
<string name="animations_summary_on">Show screen transition animations</string>
<string name="animations_summary_on">Show animation when opening &amp; closing windows</string>
<!-- Sound & display settings screen, animations option summary text when check box is clear -->
<string name="animations_summary_off">Show screen transition animations</string>
<string name="animations_summary_off">Show animation when opening &amp; closing windows</string>
<!-- Sound & display settings screen, accelerometer-based rotation check box label -->
<string name="accelerometer_title">Orientation</string>
<!-- Sound & display settings screen, accelerometer-based rotation summary text when check box is selected -->
@@ -1095,6 +1097,10 @@
<!-- Note: this may be replaced by a more-specific title of the activity that will get launched --> <skip />
<!-- About phone settings screen, setting option name to see terms and conditions -->
<string name="terms_title">Terms and conditions</string>
<!-- About phone settings screen, running the System Tutorial -->
<string name="system_tutorial_list_item_title">System Tutorial</string>
<!-- About phone settings screen, summary of what System Tutorial does -->
<string name="system_tutorial_list_item_summary">Learn how to use your phone</string>
<!-- Title for actual Settings license activity. --> <skip />
<!-- About phone settings, Legal information setting option name and title of dialog box holding license info -->
@@ -1314,6 +1320,13 @@ found in the list of installed applications.</string>
<string name="show_password">Visible passwords</string>
<!-- On Security & location settings screen, setting check box summary. Summary for the visible passwords setting. -->
<string name="show_password_summary">Show password as you type</string>
<!-- Warning message about security implications of enabling an input method, displayed as a dialog
message when the user selects to enable an IME. -->
<string name="ime_security_warning">This input method may be able to collect
all the text you type, including personal data like passwords and credit
card numbers. It comes from the application
<xliff:g id="ime_application_name">%1$s</xliff:g>.
Enable this input method?</string>
<!-- User dictionary settings --><skip />
<!-- User dictionary settings, The titlebar text of the User dictionary settings screen. -->

View File

@@ -76,6 +76,13 @@
<intent android:action="android.settings.TEAM" />
</PreferenceScreen>
<!-- System Tutorial - launches activity -->
<PreferenceScreen android:key="system_tutorial"
android:title="@string/system_tutorial_list_item_title"
android:summary="@string/system_tutorial_list_item_summary">
<intent android:action="android.intent.action.SYSTEM_TUTORIAL" />
</PreferenceScreen>
<!-- Device hardware model -->
<Preference android:key="device_model"
style="?android:preferenceInformationStyle"

View File

@@ -87,10 +87,5 @@
android:title="@string/status_up_time"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="awake_time"
style="?android:attr/preferenceInformationStyle"
android:title="@string/status_awake_time"
android:summary="@string/device_info_not_available"
android:persistent="false" />
</PreferenceScreen>

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2009 Google Inc.
* Copyright (C) 2009 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.
@@ -16,43 +16,395 @@
package com.android.settings;
import android.app.LauncherActivity;
import com.android.internal.app.AlertActivity;
import com.android.internal.app.AlertController;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.Intent.ShortcutIconResource;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.PaintDrawable;
import android.os.Bundle;
import android.os.Parcelable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ListView;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Displays a list of all activities matching the incoming {@link Intent.EXTRA_INTENT}
* query, along with any applicable icons.
* Displays a list of all activities matching the incoming
* {@link Intent#EXTRA_INTENT} query, along with any injected items.
*/
public class ActivityPicker extends LauncherActivity {
public class ActivityPicker extends AlertActivity implements
DialogInterface.OnClickListener, DialogInterface.OnCancelListener {
/**
* Adapter of items that are displayed in this dialog.
*/
private PickAdapter mAdapter;
/**
* Base {@link Intent} used when building list.
*/
private Intent mBaseIntent;
@Override
protected Intent getTargetIntent() {
Intent intent = this.getIntent();
Intent targetIntent = new Intent(Intent.ACTION_MAIN, null);
targetIntent.addCategory(Intent.CATEGORY_DEFAULT);
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Use a custom title for this dialog, if provided
if (intent.hasExtra(Intent.EXTRA_TITLE)) {
String title = intent.getStringExtra(Intent.EXTRA_TITLE);
setTitle(title);
}
final Intent intent = getIntent();
// Read base intent from extras, otherwise assume default
Parcelable parcel = intent.getParcelableExtra(Intent.EXTRA_INTENT);
if (parcel instanceof Intent) {
targetIntent = (Intent) parcel;
mBaseIntent = (Intent) parcel;
} else {
mBaseIntent = new Intent(Intent.ACTION_MAIN, null);
mBaseIntent.addCategory(Intent.CATEGORY_DEFAULT);
}
// Create dialog parameters
AlertController.AlertParams params = mAlertParams;
params.mOnClickListener = this;
params.mOnCancelListener = this;
// Use custom title if provided, otherwise default window title
if (intent.hasExtra(Intent.EXTRA_TITLE)) {
params.mTitle = intent.getStringExtra(Intent.EXTRA_TITLE);
} else {
params.mTitle = getTitle();
}
return targetIntent;
}
// Build list adapter of pickable items
List<PickAdapter.Item> items = getItems();
mAdapter = new PickAdapter(this, items);
params.mAdapter = mAdapter;
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = intentForPosition(position);
setResult(RESULT_OK, intent);
setupAlert();
}
/**
* Handle clicking of dialog item by passing back
* {@link #getIntentForPosition(int)} in {@link #setResult(int, Intent)}.
*/
public void onClick(DialogInterface dialog, int which) {
Intent intent = getIntentForPosition(which);
setResult(Activity.RESULT_OK, intent);
finish();
}
/**
* Handle canceled dialog by passing back {@link Activity#RESULT_CANCELED}.
*/
public void onCancel(DialogInterface dialog) {
setResult(Activity.RESULT_CANCELED);
finish();
}
/**
* Build the specific {@link Intent} for a given list position. Convenience
* method that calls through to {@link PickAdapter.Item#getIntent(Intent)}.
*/
protected Intent getIntentForPosition(int position) {
PickAdapter.Item item = (PickAdapter.Item) mAdapter.getItem(position);
return item.getIntent(mBaseIntent);
}
/**
* Build and return list of items to be shown in dialog. Default
* implementation mixes activities matching {@link #mBaseIntent} from
* {@link #putIntentItems(Intent, List)} with any injected items from
* {@link Intent#EXTRA_SHORTCUT_NAME}. Override this method in subclasses to
* change the items shown.
*/
protected List<PickAdapter.Item> getItems() {
PackageManager packageManager = getPackageManager();
List<PickAdapter.Item> items = new ArrayList<PickAdapter.Item>();
// Add any injected pick items
final Intent intent = getIntent();
ArrayList<String> labels =
intent.getStringArrayListExtra(Intent.EXTRA_SHORTCUT_NAME);
ArrayList<ShortcutIconResource> icons =
intent.getParcelableArrayListExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE);
if (labels != null && icons != null && labels.size() == icons.size()) {
for (int i = 0; i < labels.size(); i++) {
String label = labels.get(i);
Drawable icon = null;
try {
// Try loading icon from requested package
ShortcutIconResource iconResource = icons.get(i);
Resources res = packageManager.getResourcesForApplication(
iconResource.packageName);
icon = res.getDrawable(res.getIdentifier(
iconResource.resourceName, null, null));
} catch (NameNotFoundException e) {
}
items.add(new PickAdapter.Item(this, label, icon));
}
}
// Add any intent items if base was given
if (mBaseIntent != null) {
putIntentItems(mBaseIntent, items);
}
return items;
}
/**
* Fill the given list with any activities matching the base {@link Intent}.
*/
protected void putIntentItems(Intent baseIntent, List<PickAdapter.Item> items) {
PackageManager packageManager = getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(baseIntent,
0 /* no flags */);
Collections.sort(list, new ResolveInfo.DisplayNameComparator(packageManager));
final int listSize = list.size();
for (int i = 0; i < listSize; i++) {
ResolveInfo resolveInfo = list.get(i);
items.add(new PickAdapter.Item(this, packageManager, resolveInfo));
}
}
/**
* Adapter which shows the set of activities that can be performed for a
* given {@link Intent}.
*/
protected static class PickAdapter extends BaseAdapter {
/**
* Item that appears in a {@link PickAdapter} list.
*/
public static class Item {
protected static IconResizer sResizer;
protected IconResizer getResizer(Context context) {
if (sResizer == null) {
sResizer = new IconResizer(context);
}
return sResizer;
}
CharSequence label;
Drawable icon;
String packageName;
String className;
Bundle extras;
/**
* Create a list item from given label and icon.
*/
Item(Context context, CharSequence label, Drawable icon) {
this.label = label;
this.icon = getResizer(context).createIconThumbnail(icon);
}
/**
* Create a list item and fill it with details from the given
* {@link ResolveInfo} object.
*/
Item(Context context, PackageManager pm, ResolveInfo resolveInfo) {
label = resolveInfo.loadLabel(pm);
if (label == null && resolveInfo.activityInfo != null) {
label = resolveInfo.activityInfo.name;
}
icon = getResizer(context).createIconThumbnail(resolveInfo.loadIcon(pm));
packageName = resolveInfo.activityInfo.applicationInfo.packageName;
className = resolveInfo.activityInfo.name;
}
/**
* Build the {@link Intent} described by this item. If this item
* can't create a valid {@link ComponentName}, it will return
* {@link Intent#ACTION_CREATE_SHORTCUT} filled with the item label.
*/
Intent getIntent(Intent baseIntent) {
Intent intent = new Intent(baseIntent);
if (packageName != null && className != null) {
// Valid package and class, so fill details as normal intent
intent.setClassName(packageName, className);
if (extras != null) {
intent.putExtras(extras);
}
} else {
// No valid package or class, so treat as shortcut with label
intent.setAction(Intent.ACTION_CREATE_SHORTCUT);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, label);
}
return intent;
}
}
private final LayoutInflater mInflater;
private List<Item> mItems;
private int mLayoutRes = R.layout.pick_item;
/**
* Create an adapter for the given items.
*/
public PickAdapter(Context context, List<Item> items) {
mInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mItems = items;
}
/**
* {@inheritDoc}
*/
public int getCount() {
return mItems.size();
}
/**
* {@inheritDoc}
*/
public Object getItem(int position) {
return mItems.get(position);
}
/**
* {@inheritDoc}
*/
public long getItemId(int position) {
return position;
}
/**
* {@inheritDoc}
*/
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater.inflate(mLayoutRes, parent, false);
}
Item item = (Item) getItem(position);
TextView textView = (TextView) convertView;
textView.setText(item.label);
textView.setCompoundDrawablesWithIntrinsicBounds(item.icon, null, null, null);
return convertView;
}
}
/**
* Utility class to resize icons to match default icon size. Code is mostly
* borrowed from Launcher.
*/
private static class IconResizer {
private int mIconWidth = -1;
private int mIconHeight = -1;
private final Rect mOldBounds = new Rect();
private Canvas mCanvas = new Canvas();
public IconResizer(Context context) {
mCanvas.setDrawFilter(new PaintFlagsDrawFilter(Paint.DITHER_FLAG,
Paint.FILTER_BITMAP_FLAG));
final Resources resources = context.getResources();
mIconWidth = mIconHeight = (int) resources.getDimension(
android.R.dimen.app_icon_size);
}
/**
* Returns a Drawable representing the thumbnail of the specified Drawable.
* The size of the thumbnail is defined by the dimension
* android.R.dimen.launcher_application_icon_size.
*
* This method is not thread-safe and should be invoked on the UI thread only.
*
* @param icon The icon to get a thumbnail of.
*
* @return A thumbnail for the specified icon or the icon itself if the
* thumbnail could not be created.
*/
public Drawable createIconThumbnail(Drawable icon) {
int width = mIconWidth;
int height = mIconHeight;
if (icon == null) {
return null;
}
final int iconWidth = icon.getIntrinsicWidth();
final int iconHeight = icon.getIntrinsicHeight();
if (icon instanceof PaintDrawable) {
PaintDrawable painter = (PaintDrawable) icon;
painter.setIntrinsicWidth(width);
painter.setIntrinsicHeight(height);
}
if (width > 0 && height > 0) {
if (width < iconWidth || height < iconHeight) {
final float ratio = (float) iconWidth / iconHeight;
if (iconWidth > iconHeight) {
height = (int) (width / ratio);
} else if (iconHeight > iconWidth) {
width = (int) (height * ratio);
}
final Bitmap.Config c = icon.getOpacity() != PixelFormat.OPAQUE ?
Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565;
final Bitmap thumb = Bitmap.createBitmap(mIconWidth, mIconHeight, c);
final Canvas canvas = mCanvas;
canvas.setBitmap(thumb);
// Copy the old bounds to restore them later
// If we were to do oldBounds = icon.getBounds(),
// the call to setBounds() that follows would
// change the same instance and we would lose the
// old bounds
mOldBounds.set(icon.getBounds());
final int x = (mIconWidth - width) / 2;
final int y = (mIconHeight - height) / 2;
icon.setBounds(x, y, x + width, y + height);
icon.draw(canvas);
icon.setBounds(mOldBounds);
icon = new BitmapDrawable(thumb);
} else if (iconWidth < width && iconHeight < height) {
final Bitmap.Config c = Bitmap.Config.ARGB_8888;
final Bitmap thumb = Bitmap.createBitmap(mIconWidth, mIconHeight, c);
final Canvas canvas = mCanvas;
canvas.setBitmap(thumb);
mOldBounds.set(icon.getBounds());
final int x = (width - iconWidth) / 2;
final int y = (height - iconHeight) / 2;
icon.setBounds(x, y, x + iconWidth, y + iconHeight);
icon.draw(canvas);
icon.setBounds(mOldBounds);
icon = new BitmapDrawable(thumb);
}
}
return icon;
}
}
}

View File

@@ -0,0 +1,151 @@
/*
* Copyright (C) 2009 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 android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.preference.Preference;
import android.provider.Telephony;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
public class ApnPreference extends Preference implements
CompoundButton.OnCheckedChangeListener, OnClickListener {
final static String TAG = "ApnPreference";
/**
* @param context
* @param attrs
* @param defStyle
*/
public ApnPreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
/**
* @param context
* @param attrs
*/
public ApnPreference(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
/**
* @param context
*/
public ApnPreference(Context context) {
super(context);
init();
}
private static String mSelectedKey = null;
private static CompoundButton mCurrentChecked = null;
private boolean mProtectFromCheckedChange = false;
private boolean mSelectable = true;
@Override
public View getView(View convertView, ViewGroup parent) {
View view = super.getView(convertView, parent);
View widget = view.findViewById(R.id.apn_radiobutton);
if ((widget != null) && widget instanceof RadioButton) {
RadioButton rb = (RadioButton) widget;
if (mSelectable) {
rb.setOnCheckedChangeListener(this);
boolean isChecked = getKey().equals(mSelectedKey);
if (isChecked) {
mCurrentChecked = rb;
mSelectedKey = getKey();
}
mProtectFromCheckedChange = true;
rb.setChecked(isChecked);
mProtectFromCheckedChange = false;
} else {
rb.setVisibility(View.GONE);
}
}
View textLayout = view.findViewById(R.id.text_layout);
if ((textLayout != null) && textLayout instanceof RelativeLayout) {
textLayout.setOnClickListener(this);
}
return view;
}
private void init() {
setLayoutResource(R.layout.apn_preference_layout);
}
public boolean isChecked() {
return getKey().equals(mSelectedKey);
}
public void setChecked(boolean checked) {
mSelectedKey = getKey();
}
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.i(TAG, "ID: " + getKey() + " :" + isChecked);
if (mProtectFromCheckedChange) {
return;
}
if (isChecked) {
if (mCurrentChecked != null) {
mCurrentChecked.setChecked(false);
}
mCurrentChecked = buttonView;
mSelectedKey = getKey();
callChangeListener(mSelectedKey);
} else {
mCurrentChecked = null;
mSelectedKey = null;
}
}
public void onClick(android.view.View v) {
if ((v != null) && (R.id.text_layout == v.getId())) {
Context context = getContext();
if (context != null) {
int pos = Integer.parseInt(getKey());
Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos);
context.startActivity(new Intent(Intent.ACTION_EDIT, url));
}
}
}
public void setSelectable(boolean selectable) {
mSelectable = selectable;
}
public boolean getSelectable() {
return mSelectable;
}
}

View File

@@ -18,10 +18,13 @@ package com.android.settings;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
@@ -34,20 +37,33 @@ import android.preference.PreferenceActivity;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.provider.Telephony;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class ApnSettings extends PreferenceActivity {
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.TelephonyProperties;
import java.util.ArrayList;
public class ApnSettings extends PreferenceActivity implements
Preference.OnPreferenceChangeListener {
static final String TAG = "ApnSettings";
public static final String EXTRA_POSITION = "position";
public static final String RESTORE_CARRIERS_URI =
"content://telephony/carriers/restore";
public static final String PREFERRED_APN_URI =
"content://telephony/carriers/preferapn";
public static final String APN_ID = "apn_id";
private static final int ID_INDEX = 0;
private static final int NAME_INDEX = 1;
private static final int APN_INDEX = 2;
private static final int TYPES_INDEX = 3;
private static final int MENU_NEW = Menu.FIRST;
private static final int MENU_RESTORE = Menu.FIRST + 1;
@@ -58,25 +74,62 @@ public class ApnSettings extends PreferenceActivity {
private static final int DIALOG_RESTORE_DEFAULTAPN = 1001;
private static final Uri DEFAULTAPN_URI = Uri.parse(RESTORE_CARRIERS_URI);
private static final Uri PREFERAPN_URI = Uri.parse(PREFERRED_APN_URI);
private static boolean mRestoreDefaultApnMode;
private RestoreApnUiHandler mRestoreApnUiHandler;
private RestoreApnProcessHandler mRestoreApnProcessHandler;
private Cursor mCursor;
private String mSelectedKey;
private IntentFilter mMobileStateFilter;
private final BroadcastReceiver mMobileStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(
TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
Phone.DataState state = getMobileDataState(intent);
switch (state) {
case CONNECTED:
if (!mRestoreDefaultApnMode) {
fillList();
} else {
showDialog(DIALOG_RESTORE_DEFAULTAPN);
}
break;
}
}
}
};
private static Phone.DataState getMobileDataState(Intent intent) {
String str = intent.getStringExtra(Phone.STATE_KEY);
if (str != null) {
return Enum.valueOf(Phone.DataState.class, str);
} else {
return Phone.DataState.DISCONNECTED;
}
}
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.apn_settings);
getListView().setItemsCanFocus(true);
mMobileStateFilter = new IntentFilter(
TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(mMobileStateReceiver, mMobileStateFilter);
if (!mRestoreDefaultApnMode) {
fillList();
} else {
@@ -84,29 +137,59 @@ public class ApnSettings extends PreferenceActivity {
}
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mMobileStateReceiver);
}
private void fillList() {
mCursor = managedQuery(Telephony.Carriers.CONTENT_URI, new String[] {
"_id", "name", "apn"}, null, Telephony.Carriers.DEFAULT_SORT_ORDER);
String where = "numeric=\""
+ android.os.SystemProperties.get(TelephonyProperties.PROPERTY_SIM_OPERATOR_NUMERIC, "")
+ "\"";
Cursor cursor = managedQuery(Telephony.Carriers.CONTENT_URI, new String[] {
"_id", "name", "apn", "type"}, where,
Telephony.Carriers.DEFAULT_SORT_ORDER);
PreferenceGroup apnList = (PreferenceGroup) findPreference("apn_list");
apnList.removeAll();
mCursor.moveToFirst();
while (!mCursor.isAfterLast()) {
String name = mCursor.getString(NAME_INDEX);
String apn = mCursor.getString(APN_INDEX);
ArrayList<Preference> mmsApnList = new ArrayList<Preference>();
if (name != null && apn != null && TextUtils.getTrimmedLength(name) > 0
&& TextUtils.getTrimmedLength(apn) > 0) {
Preference pref = new Preference((Context) this);
pref.setKey(mCursor.getString(ID_INDEX));
pref.setTitle(name);
pref.setSummary(apn);
pref.setPersistent(false);
mSelectedKey = getSelectedApnKey();
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
String name = cursor.getString(NAME_INDEX);
String apn = cursor.getString(APN_INDEX);
String key = cursor.getString(ID_INDEX);
String type = cursor.getString(TYPES_INDEX);
ApnPreference pref = new ApnPreference(this);
pref.setKey(key);
pref.setTitle(name);
pref.setSummary(apn);
pref.setPersistent(false);
pref.setOnPreferenceChangeListener(this);
boolean selectable = ((type == null) || !type.equals("mms"));
pref.setSelectable(selectable);
if (selectable) {
if ((mSelectedKey != null) && mSelectedKey.equals(key)) {
pref.setChecked(true);
}
apnList.addPreference(pref);
} else {
mmsApnList.add(pref);
}
cursor.moveToNext();
}
cursor.close();
mCursor.moveToNext();
for (Preference preference : mmsApnList) {
apnList.addPreference(preference);
}
}
@@ -148,6 +231,39 @@ public class ApnSettings extends PreferenceActivity {
return true;
}
public boolean onPreferenceChange(Preference preference, Object newValue) {
Log.d(TAG, "onPreferenceChange(): Preference - " + preference
+ ", newValue - " + newValue + ", newValue type - "
+ newValue.getClass());
if (newValue instanceof String) {
setSelectedApnKey((String) newValue);
}
return true;
}
private void setSelectedApnKey(String key) {
mSelectedKey = key;
ContentResolver resolver = getContentResolver();
ContentValues values = new ContentValues();
values.put(APN_ID, mSelectedKey);
resolver.update(PREFERAPN_URI, values, null, null);
}
private String getSelectedApnKey() {
String key = null;
Cursor cursor = managedQuery(PREFERAPN_URI, new String[] {"_id"},
null, Telephony.Carriers.DEFAULT_SORT_ORDER);
if (cursor.getCount() > 0) {
cursor.moveToFirst();
key = cursor.getString(ID_INDEX);
}
cursor.close();
return key;
}
private boolean restoreDefaultApn() {
showDialog(DIALOG_RESTORE_DEFAULTAPN);
mRestoreDefaultApnMode = true;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2008 The Android Open Source Project
* Copyright (C) 2009 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.
@@ -16,16 +16,14 @@
package com.android.settings;
import android.app.LauncherActivity;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProviderInfo;
import android.content.ComponentName;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.os.Parcelable;
import android.util.Log;
import java.text.Collator;
@@ -34,98 +32,208 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class AppWidgetPickActivity extends LauncherActivity
{
/**
* Displays a list of {@link AppWidgetProviderInfo} widgets, along with any
* injected special widgets specified through
* {@link AppWidgetManager#EXTRA_CUSTOM_INFO} and
* {@link AppWidgetManager#EXTRA_CUSTOM_EXTRAS}.
* <p>
* When an installed {@link AppWidgetProviderInfo} is selected, this activity
* will bind it to the given {@link AppWidgetManager#EXTRA_APPWIDGET_ID},
* otherwise it will return the requested extras.
*/
public class AppWidgetPickActivity extends ActivityPicker {
private static final String TAG = "AppWidgetPickActivity";
private static final boolean LOGD = false;
AppWidgetManager mAppWidgetManager;
int mAppWidgetId;
private PackageManager mPackageManager;
private AppWidgetManager mAppWidgetManager;
/**
* The allocated {@link AppWidgetManager#EXTRA_APPWIDGET_ID} that this
* activity is binding.
*/
private int mAppWidgetId;
public AppWidgetPickActivity() {
mAppWidgetManager = AppWidgetManager.getInstance(this);
}
@Override
public void onCreate(Bundle icicle) {
mPackageManager = getPackageManager();
mAppWidgetManager = AppWidgetManager.getInstance(this);
super.onCreate(icicle);
Bundle extras = getIntent().getExtras();
mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
setResultData(RESULT_CANCELED);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id)
{
Intent intent = intentForPosition(position);
int result;
try {
mAppWidgetManager.bindAppWidgetId(mAppWidgetId, intent.getComponent());
result = RESULT_OK;
} catch (IllegalArgumentException e) {
// This is thrown if they're already bound, or otherwise somehow
// bogus. Set the result to canceled, and exit. The app *should*
// clean up at this point. We could pass the error along, but
// it's not clear that that's useful -- the widget will simply not
// appear.
result = RESULT_CANCELED;
// Set default return data
setResultData(RESULT_CANCELED, null);
// Read the appWidgetId passed our direction, otherwise bail if not found
final Intent intent = getIntent();
if (intent.hasExtra(AppWidgetManager.EXTRA_APPWIDGET_ID)) {
mAppWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
} else {
finish();
}
setResultData(result);
finish();
}
/**
* Create list entries for any custom widgets requested through
* {@link AppWidgetManager#EXTRA_CUSTOM_INFO}.
*/
void putCustomAppWidgets(List<PickAdapter.Item> items) {
final Bundle extras = getIntent().getExtras();
// get and validate the extras they gave us
ArrayList<AppWidgetProviderInfo> customInfo = null;
ArrayList<Bundle> customExtras = null;
try_custom_items: {
customInfo = extras.getParcelableArrayList(AppWidgetManager.EXTRA_CUSTOM_INFO);
if (customInfo == null || customInfo.size() == 0) {
Log.i(TAG, "EXTRA_CUSTOM_INFO not present.");
break try_custom_items;
}
int customInfoSize = customInfo.size();
for (int i=0; i<customInfoSize; i++) {
Parcelable p = customInfo.get(i);
if (p == null || !(p instanceof AppWidgetProviderInfo)) {
customInfo = null;
Log.e(TAG, "error using EXTRA_CUSTOM_INFO index=" + i);
break try_custom_items;
}
}
customExtras = extras.getParcelableArrayList(AppWidgetManager.EXTRA_CUSTOM_EXTRAS);
if (customExtras == null) {
customInfo = null;
Log.e(TAG, "EXTRA_CUSTOM_INFO without EXTRA_CUSTOM_EXTRAS");
break try_custom_items;
}
int customExtrasSize = customExtras.size();
if (customInfoSize != customExtrasSize) {
Log.e(TAG, "list size mismatch: EXTRA_CUSTOM_INFO: " + customInfoSize
+ " EXTRA_CUSTOM_EXTRAS: " + customExtrasSize);
break try_custom_items;
}
for (int i=0; i<customExtrasSize; i++) {
Parcelable p = customExtras.get(i);
if (p == null || !(p instanceof Bundle)) {
customInfo = null;
customExtras = null;
Log.e(TAG, "error using EXTRA_CUSTOM_EXTRAS index=" + i);
break try_custom_items;
}
}
}
if (LOGD) Log.d(TAG, "Using " + customInfo.size() + " custom items");
putAppWidgetItems(customInfo, customExtras, items);
}
/**
* {@inheritDoc}
*/
@Override
public List<ListItem> makeListItems() {
List<AppWidgetProviderInfo> installed = mAppWidgetManager.getInstalledProviders();
PackageManager pm = getPackageManager();
public void onClick(DialogInterface dialog, int which) {
Intent intent = getIntentForPosition(which);
int result;
if (intent.getExtras() != null) {
// If there are any extras, it's because this entry is custom.
// Don't try to bind it, just pass it back to the app.
setResultData(RESULT_OK, intent);
} else {
try {
mAppWidgetManager.bindAppWidgetId(mAppWidgetId, intent.getComponent());
result = RESULT_OK;
} catch (IllegalArgumentException e) {
// This is thrown if they're already bound, or otherwise somehow
// bogus. Set the result to canceled, and exit. The app *should*
// clean up at this point. We could pass the error along, but
// it's not clear that that's useful -- the widget will simply not
// appear.
result = RESULT_CANCELED;
}
setResultData(result, null);
}
finish();
}
Drawable defaultIcon = null;
IconResizer resizer = new IconResizer();
/**
* Create list entries for the given {@link AppWidgetProviderInfo} widgets,
* inserting extras if provided.
*/
void putAppWidgetItems(List<AppWidgetProviderInfo> appWidgets,
List<Bundle> customExtras, List<PickAdapter.Item> items) {
final int size = appWidgets.size();
for (int i = 0; i < size; i++) {
AppWidgetProviderInfo info = appWidgets.get(i);
CharSequence label = info.label;
Drawable icon = null;
ArrayList<ListItem> result = new ArrayList();
final int N = installed.size();
for (int i=0; i<N; i++) {
AppWidgetProviderInfo info = installed.get(i);
LauncherActivity.ListItem item = new LauncherActivity.ListItem();
if (info.icon != 0) {
icon = mPackageManager.getDrawable(info.provider.getPackageName(), info.icon, null);
if (icon == null) {
Log.w(TAG, "Can't load icon drawable 0x" + Integer.toHexString(info.icon)
+ " for provider: " + info.provider);
}
}
PickAdapter.Item item = new PickAdapter.Item(this, label, icon);
item.packageName = info.provider.getPackageName();
item.className = info.provider.getClassName();
item.label = info.label;
if (info.icon != 0) {
Drawable d = pm.getDrawable( item.packageName, info.icon, null);
if (d != null) {
item.icon = resizer.createIconThumbnail(d);
} else {
Log.w(TAG, "Can't load icon drawable 0x" + Integer.toHexString(info.icon)
+ " for package: " + item.packageName);
}
}
if (item.icon == null) {
// (including error case above)
if (defaultIcon == null) {
// TODO: Load standard icon.
}
item.icon = defaultIcon;
if (customExtras != null) {
item.extras = customExtras.get(i);
}
result.add(item);
items.add(item);
}
Collections.sort(result, new Comparator<ListItem>() {
}
/**
* Build and return list of items to be shown in dialog. This will mix both
* installed {@link AppWidgetProviderInfo} and those provided through
* {@link AppWidgetManager#EXTRA_CUSTOM_INFO}, sorting them alphabetically.
*/
@Override
protected List<PickAdapter.Item> getItems() {
List<PickAdapter.Item> items = new ArrayList<PickAdapter.Item>();
putInstalledAppWidgets(items);
putCustomAppWidgets(items);
// Sort all items together by label
Collections.sort(items, new Comparator<PickAdapter.Item>() {
Collator mCollator = Collator.getInstance();
public int compare(ListItem lhs, ListItem rhs) {
public int compare(PickAdapter.Item lhs, PickAdapter.Item rhs) {
return mCollator.compare(lhs.label, rhs.label);
}
});
return result;
return items;
}
void setResultData(int code) {
Intent result = new Intent();
/**
* Create list entries for installed {@link AppWidgetProviderInfo} widgets.
*/
void putInstalledAppWidgets(List<PickAdapter.Item> items) {
List<AppWidgetProviderInfo> installed = mAppWidgetManager.getInstalledProviders();
putAppWidgetItems(installed, null, items);
}
/**
* Convenience method for setting the result code and intent. This method
* correctly injects the {@link AppWidgetManager#EXTRA_APPWIDGET_ID} that
* most hosts expect returned.
*/
void setResultData(int code, Intent intent) {
Intent result = intent != null ? intent : new Intent();
result.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(code, result);
}
}

View File

@@ -43,9 +43,6 @@ public class BatteryInfo extends Activity {
private TextView mTemperature;
private TextView mTechnology;
private TextView mUptime;
private TextView mAwakeBattery;
private TextView mAwakePlugged;
private TextView mScreenOn;
private IBatteryStats mBatteryStats;
private IPowerManager mScreenStats;
@@ -58,6 +55,7 @@ public class BatteryInfo extends Activity {
case EVENT_TICK:
updateBatteryStats();
sendEmptyMessageDelayed(EVENT_TICK, 1000);
break;
}
}
@@ -157,9 +155,6 @@ public class BatteryInfo extends Activity {
mVoltage = (TextView)findViewById(R.id.voltage);
mTemperature = (TextView)findViewById(R.id.temperature);
mUptime = (TextView) findViewById(R.id.uptime);
mAwakeBattery = (TextView) findViewById(R.id.awakeBattery);
mAwakePlugged = (TextView) findViewById(R.id.awakePlugged);
mScreenOn = (TextView) findViewById(R.id.screenOn);
// Get awake time plugged in and on battery
mBatteryStats = IBatteryStats.Stub.asInterface(ServiceManager.getService("batteryinfo"));
@@ -182,27 +177,6 @@ public class BatteryInfo extends Activity {
long uptime = SystemClock.elapsedRealtime();
mUptime.setText(DateUtils.formatElapsedTime(uptime / 1000));
if (mBatteryStats != null) {
try {
long awakeTimeBattery = mBatteryStats.getAwakeTimeBattery() / 1000;
long awakeTimePluggedIn = mBatteryStats.getAwakeTimePlugged() / 1000;
mAwakeBattery.setText(DateUtils.formatElapsedTime(awakeTimeBattery / 1000)
+ " (" + (100 * awakeTimeBattery / uptime) + "%)");
mAwakePlugged.setText(DateUtils.formatElapsedTime(awakeTimePluggedIn / 1000)
+ " (" + (100 * awakeTimePluggedIn / uptime) + "%)");
} catch (RemoteException re) {
mAwakeBattery.setText("Unknown");
mAwakePlugged.setText("Unknown");
}
}
if (mScreenStats != null) {
try {
long screenOnTime = mScreenStats.getScreenOnTime();
mScreenOn.setText(DateUtils.formatElapsedTime(screenOnTime / 1000));
} catch (RemoteException re) {
mScreenOn.setText("Unknown");
}
}
}
}

View File

@@ -93,7 +93,7 @@ public class BrightnessPreference extends SeekBarPreference implements
IHardwareService hardware = IHardwareService.Stub.asInterface(
ServiceManager.getService("hardware"));
if (hardware != null) {
hardware.setScreenBacklight(brightness);
hardware.setBacklights(brightness);
}
} catch (RemoteException doe) {

View File

@@ -481,8 +481,15 @@ public class ChooseLockPattern extends Activity implements View.OnClickListener{
}
private void saveChosenPatternAndFinish() {
final boolean lockVirgin = !mLockPatternUtils.isPatternEverChosen();
mLockPatternUtils.saveLockPattern(mChosenPattern);
mLockPatternUtils.setLockPatternEnabled(true);
if (lockVirgin) {
mLockPatternUtils.setVisiblePatternEnabled(true);
mLockPatternUtils.setTactileFeedbackEnabled(false);
}
setResult(RESULT_FINISHED);
finish();

View File

@@ -1,191 +0,0 @@
/*
* Copyright (C) 2008 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 java.util.HashSet;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.preference.CheckBoxPreference;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
/*
* Displays preferences for input methods.
*/
public class InputMethodsSettings extends PreferenceActivity {
private List<InputMethodInfo> mInputMethodProperties;
final TextUtils.SimpleStringSplitter mStringColonSplitter
= new TextUtils.SimpleStringSplitter(':');
private String mLastInputMethodId;
private String mLastTickedInputMethodId;
static public String getInputMethodIdFromKey(String key) {
return key;
}
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.input_methods_prefs);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mInputMethodProperties = imm.getInputMethodList();
mLastInputMethodId = Settings.Secure.getString(getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD);
int N = (mInputMethodProperties == null ? 0 : mInputMethodProperties
.size());
for (int i = 0; i < N; ++i) {
InputMethodInfo property = mInputMethodProperties.get(i);
String prefKey = property.getId();
CharSequence label = property.loadLabel(getPackageManager());
// Add a check box.
CheckBoxPreference chkbxPref = new CheckBoxPreference(this);
chkbxPref.setKey(prefKey);
chkbxPref.setTitle(label);
getPreferenceScreen().addPreference(chkbxPref);
// If setting activity is available, add a setting screen entry.
if (null != property.getSettingsActivity()) {
PreferenceScreen prefScreen = new PreferenceScreen(this, null);
prefScreen.setKey(property.getSettingsActivity());
prefScreen.setTitle(getResources().getString(
R.string.input_methods_settings_label_format, label));
getPreferenceScreen().addPreference(prefScreen);
}
}
}
@Override
protected void onResume() {
super.onResume();
final HashSet<String> enabled = new HashSet<String>();
String enabledStr = Settings.Secure.getString(getContentResolver(),
Settings.Secure.ENABLED_INPUT_METHODS);
if (enabledStr != null) {
final TextUtils.SimpleStringSplitter splitter = mStringColonSplitter;
splitter.setString(enabledStr);
while (splitter.hasNext()) {
enabled.add(splitter.next());
}
}
// Update the statuses of the Check Boxes.
int N = mInputMethodProperties.size();
for (int i = 0; i < N; ++i) {
final String id = mInputMethodProperties.get(i).getId();
CheckBoxPreference pref = (CheckBoxPreference) findPreference(mInputMethodProperties
.get(i).getId());
pref.setChecked(enabled.contains(id));
}
mLastTickedInputMethodId = null;
}
@Override
protected void onPause() {
super.onPause();
StringBuilder builder = new StringBuilder(256);
boolean haveLastInputMethod = false;
int firstEnabled = -1;
int N = mInputMethodProperties.size();
for (int i = 0; i < N; ++i) {
final String id = mInputMethodProperties.get(i).getId();
CheckBoxPreference pref = (CheckBoxPreference) findPreference(id);
boolean hasIt = id.equals(mLastInputMethodId);
if (pref.isChecked()) {
if (builder.length() > 0) builder.append(':');
builder.append(id);
if (firstEnabled < 0) {
firstEnabled = i;
}
if (hasIt) haveLastInputMethod = true;
} else if (hasIt) {
mLastInputMethodId = mLastTickedInputMethodId;
}
}
// If the last input method is unset, set it as the first enabled one.
if (null == mLastInputMethodId || "".equals(mLastInputMethodId)) {
if (firstEnabled >= 0) {
mLastInputMethodId = mInputMethodProperties.get(firstEnabled).getId();
} else {
mLastInputMethodId = null;
}
}
Settings.Secure.putString(getContentResolver(),
Settings.Secure.ENABLED_INPUT_METHODS, builder.toString());
Settings.Secure.putString(getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD, mLastInputMethodId);
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
// Those monkeys kept committing suicide, so we add this property
// to disable this functionality
if (!TextUtils.isEmpty(SystemProperties.get("ro.monkey"))) {
return false;
}
if (preference instanceof CheckBoxPreference) {
CheckBoxPreference chkPref = (CheckBoxPreference) preference;
String id = getInputMethodIdFromKey(chkPref.getKey());
if (chkPref.isChecked()) {
mLastTickedInputMethodId = id;
} else if (id.equals(mLastTickedInputMethodId)) {
mLastTickedInputMethodId = null;
}
} else if (preference instanceof PreferenceScreen) {
if (preference.getIntent() == null) {
PreferenceScreen pref = (PreferenceScreen) preference;
String activityName = pref.getKey();
String packageName = activityName.substring(0, activityName
.lastIndexOf("."));
if (activityName.length() > 0) {
Intent i = new Intent(Intent.ACTION_MAIN);
i.setClassName(packageName, activityName);
startActivity(i);
}
}
}
return false;
}
}

View File

@@ -16,8 +16,12 @@
package com.android.settings;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Environment;
@@ -29,6 +33,7 @@ import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
@@ -74,12 +79,12 @@ public class LanguageSettings extends PreferenceActivity {
mHaveHardKeyboard = true;
}
mCheckboxes = new ArrayList<CheckBoxPreference>();
mRootDirectory = Environment.getRootDirectory().getAbsolutePath();
onCreateIMM();
}
private boolean isSystemIme(InputMethodInfo property) {
return property.getServiceInfo().applicationInfo.sourceDir.startsWith(mRootDirectory);
return (property.getServiceInfo().applicationInfo.flags
& ApplicationInfo.FLAG_SYSTEM) != 0;
}
private void onCreateIMM() {
@@ -161,8 +166,6 @@ public class LanguageSettings extends PreferenceActivity {
StringBuilder builder = new StringBuilder(256);
boolean haveLastInputMethod = false;
int firstEnabled = -1;
int N = mInputMethodProperties.size();
for (int i = 0; i < N; ++i) {
@@ -178,7 +181,6 @@ public class LanguageSettings extends PreferenceActivity {
if (firstEnabled < 0) {
firstEnabled = i;
}
if (hasIt) haveLastInputMethod = true;
} else if (hasIt) {
mLastInputMethodId = mLastTickedInputMethodId;
}
@@ -196,7 +198,8 @@ public class LanguageSettings extends PreferenceActivity {
Settings.Secure.putString(getContentResolver(),
Settings.Secure.ENABLED_INPUT_METHODS, builder.toString());
Settings.Secure.putString(getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD, mLastInputMethodId);
Settings.Secure.DEFAULT_INPUT_METHOD,
mLastInputMethodId != null ? mLastInputMethodId : "");
}
@Override
@@ -210,10 +213,49 @@ public class LanguageSettings extends PreferenceActivity {
}
if (preference instanceof CheckBoxPreference) {
CheckBoxPreference chkPref = (CheckBoxPreference) preference;
String id = getInputMethodIdFromKey(chkPref.getKey());
final CheckBoxPreference chkPref = (CheckBoxPreference) preference;
final String id = getInputMethodIdFromKey(chkPref.getKey());
if (chkPref.isChecked()) {
mLastTickedInputMethodId = id;
InputMethodInfo selImi = null;
final int N = mInputMethodProperties.size();
for (int i=0; i<N; i++) {
InputMethodInfo imi = mInputMethodProperties.get(i);
if (id.equals(imi.getId())) {
selImi = imi;
if (isSystemIme(imi)) {
// This is a built-in IME, so no need to warn.
mLastTickedInputMethodId = id;
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
}
}
chkPref.setChecked(false);
if (selImi == null) {
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
AlertDialog d = (new AlertDialog.Builder(this))
.setTitle(android.R.string.dialog_alert_title)
.setIcon(android.R.drawable.ic_dialog_alert)
.setMessage(getString(R.string.ime_security_warning,
selImi.getServiceInfo().applicationInfo.loadLabel(
getPackageManager())))
.setCancelable(true)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
chkPref.setChecked(true);
mLastTickedInputMethodId = id;
}
})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
})
.create();
d.show();
} else if (id.equals(mLastTickedInputMethodId)) {
mLastTickedInputMethodId = null;
}

View File

@@ -39,6 +39,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.text.format.Formatter;
import android.util.Config;
import android.util.Log;
@@ -59,11 +60,12 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.CountDownLatch;
/**
* Activity to pick an application that will be used to display installation information and
@@ -97,6 +99,8 @@ public class ManageApplications extends ListActivity implements
// Log information boolean
private boolean localLOGV = Config.LOGV || false;
private static final boolean DEBUG_SIZE = false;
private static final boolean DEBUG_TIME = false;
// attributes used as keys when passing values to InstalledAppDetails activity
public static final String APP_PKG_PREFIX = "com.android.settings.";
@@ -138,8 +142,11 @@ public class ManageApplications extends ListActivity implements
private static final int REORDER_LIST = HANDLER_MESSAGE_BASE+4;
private static final int ADD_PKG_START = HANDLER_MESSAGE_BASE+5;
private static final int ADD_PKG_DONE = HANDLER_MESSAGE_BASE+6;
private static final int REFRESH_ICONS = HANDLER_MESSAGE_BASE+7;
private static final int NEXT_LOAD_STEP = HANDLER_MESSAGE_BASE+8;
private static final int REFRESH_APP_RESOURCE = HANDLER_MESSAGE_BASE+7;
private static final int REFRESH_DONE = HANDLER_MESSAGE_BASE+8;
private static final int NEXT_LOAD_STEP = HANDLER_MESSAGE_BASE+9;
private static final int COMPUTE_END = HANDLER_MESSAGE_BASE+10;
// observer object used for computing pkg sizes
private PkgSizeObserver mObserver;
@@ -159,9 +166,6 @@ public class ManageApplications extends ListActivity implements
private static final int DLG_BASE = 0;
private static final int DLG_LOADING = DLG_BASE + 1;
// compute index used to track the application size computations
private int mComputeIndex;
// Size resource used for packages whose size computation failed for some reason
private CharSequence mInvalidSizeStr;
private CharSequence mComputingSizeStr;
@@ -184,6 +188,7 @@ public class ManageApplications extends ListActivity implements
// Thread to load resources
ResourceLoaderThread mResourceThread;
private TaskRunner mSizeComputor;
String mCurrentPkgName;
@@ -202,6 +207,7 @@ public class ManageApplications extends ListActivity implements
// initiate the first computation and loading of resources
private boolean mJustCreated = true;
private boolean mFirst = false;
private long mLoadTimeStart;
/*
* Handler class to handle messages for various operations
@@ -251,34 +257,7 @@ public class ManageApplications extends ListActivity implements
if (!mJustCreated) {
// Add or delete newly created packages by comparing lists
List<ApplicationInfo> newList = getInstalledApps(FILTER_APPS_ALL);
int oldCount = mAppPropCache.size();
boolean idxArr[] = new boolean[oldCount];
for ( int i = 0; i < oldCount; i++) {
idxArr[i] = false;
}
if (newList != null) {
for (ApplicationInfo app : newList) {
AppInfo aInfo = mAppPropCache.get(app.packageName);
if ( aInfo == null) {
// New package. post an ADD_PKG message
if(localLOGV) Log.i(TAG, "Adding pkg: "+app.packageName);
updatePackageList(Intent.ACTION_PACKAGE_ADDED, app.packageName);
} else {
idxArr[aInfo.index] = true;
}
}
Set<String> keyList = mAppPropCache.keySet();
for (String key : keyList) {
AppInfo aInfo = mAppPropCache.get(key);
int idx = aInfo.index;
if (!idxArr[idx]) {
String pkg = aInfo.pkgName;
if(localLOGV) Log.i(TAG, "Deleting pkg: " + pkg);
updatePackageList(Intent.ACTION_PACKAGE_REMOVED, pkg);
}
}
}
updateAppList(newList);
}
// Retrieve the package list and init some structures
initAppList(mFilterApps);
@@ -294,61 +273,13 @@ public class ManageApplications extends ListActivity implements
if(ps == null) {
Log.i(TAG, "Invalid package stats for package:"+pkgName);
} else {
int pkgId = mAppInfoAdapter.getIndex(pkgName);
if(mComputeIndex != pkgId) {
//spurious call from stale observer
Log.w(TAG, "Stale call back from PkgSizeObserver");
break;
}
mAppInfoAdapter.updateAppSize(pkgName, ps);
}
mComputeIndex++;
if (mComputeIndex < mAppInfoAdapter.getCount()) {
// initiate compute package size for next pkg in list
mObserver.invokeGetSizeInfo(mAppInfoAdapter.getApplicationInfo(
mComputeIndex),
COMPUTE_PKG_SIZE_DONE);
} else {
// check for added/removed packages
Set<String> keys = mAddRemoveMap.keySet();
Iterator<String> iter = keys.iterator();
List<String> removeList = new ArrayList<String>();
boolean added = false;
boolean removed = false;
while (iter.hasNext()) {
String key = iter.next();
if (mAddRemoveMap.get(key) == Boolean.TRUE) {
// add
try {
info = mPm.getApplicationInfo(key, 0);
mAppInfoAdapter.addApplicationInfo(info);
added = true;
} catch (NameNotFoundException e) {
Log.w(TAG, "Invalid added package:"+key+" Ignoring entry");
}
} else {
// remove
removeList.add(key);
removed = true;
}
}
// remove uninstalled packages from list
if (removed) {
mAppInfoAdapter.removeFromList(removeList);
}
// handle newly installed packages
if (added) {
mObserver.invokeGetSizeInfo(mAppInfoAdapter.getApplicationInfo(
mComputeIndex),
COMPUTE_PKG_SIZE_DONE);
} else {
// end computation here
mComputeSizes = true;
mFirst = true;
mAppInfoAdapter.sortList(mSortOrder);
mHandler.sendEmptyMessage(NEXT_LOAD_STEP);
}
}
break;
case COMPUTE_END :
mComputeSizes = true;
mFirst = true;
mHandler.sendEmptyMessage(NEXT_LOAD_STEP);
break;
case REMOVE_PKG:
if(localLOGV) Log.i(TAG, "Message REMOVE_PKG");
@@ -381,8 +312,7 @@ public class ManageApplications extends ListActivity implements
} else if(menuOption != mFilterApps) {
// Option to filter list
mFilterApps = menuOption;
boolean ret = mAppInfoAdapter.resetAppList(mFilterApps,
getInstalledApps(mFilterApps));
boolean ret = mAppInfoAdapter.resetAppList(mFilterApps);
if(!ret) {
// Reset cache
mAppPropCache = null;
@@ -398,7 +328,7 @@ public class ManageApplications extends ListActivity implements
Log.w(TAG, "Ignoring message:ADD_PKG_START for null pkgName");
break;
}
if (!mComputeSizes) {
if (!mComputeSizes || !mLoadLabels) {
Boolean currB = mAddRemoveMap.get(pkgName);
if (currB == null || (currB.equals(Boolean.FALSE))) {
mAddRemoveMap.put(pkgName, Boolean.TRUE);
@@ -406,11 +336,11 @@ public class ManageApplications extends ListActivity implements
break;
}
try {
info = mPm.getApplicationInfo(pkgName, 0);
} catch (NameNotFoundException e) {
Log.w(TAG, "Couldnt find application info for:"+pkgName);
break;
}
info = mPm.getApplicationInfo(pkgName, 0);
} catch (NameNotFoundException e) {
Log.w(TAG, "Couldnt find application info for:"+pkgName);
break;
}
mObserver.invokeGetSizeInfo(info, ADD_PKG_DONE);
break;
case ADD_PKG_DONE:
@@ -422,19 +352,33 @@ public class ManageApplications extends ListActivity implements
ps = data.getParcelable(ATTR_APP_PKG_STATS);
mAppInfoAdapter.addToList(pkgName, ps);
break;
case REFRESH_ICONS:
Map<String, AppInfo> iconMap = (Map<String, AppInfo>) msg.obj;
if(iconMap == null) {
Log.w(TAG, "Error loading icons for applications");
case REFRESH_APP_RESOURCE:
AppInfo aInfo = (AppInfo) msg.obj;
if(aInfo == null) {
Log.w(TAG, "Error loading resources");
} else {
mAppInfoAdapter.updateAppsResourceInfo(iconMap);
mAppInfoAdapter.updateAppsResourceInfo(aInfo);
}
break;
case REFRESH_DONE:
mLoadLabels = true;
mHandler.sendEmptyMessage(NEXT_LOAD_STEP);
break;
case NEXT_LOAD_STEP:
if (mComputeSizes && mLoadLabels) {
doneLoadingData();
// Check for added/removed packages
Set<String> keys = mAddRemoveMap.keySet();
for (String key : keys) {
if (mAddRemoveMap.get(key) == Boolean.TRUE) {
// Add the package
updatePackageList(Intent.ACTION_PACKAGE_ADDED, key);
} else {
// Remove the package
updatePackageList(Intent.ACTION_PACKAGE_REMOVED, key);
}
}
mAddRemoveMap.clear();
} else if (!mComputeSizes && !mLoadLabels) {
// Either load the package labels or initiate get size info
if (mSizesFirst) {
@@ -446,12 +390,13 @@ public class ManageApplications extends ListActivity implements
// Create list view from the adapter here. Wait till the sort order
// of list is defined. its either by label or by size. so atleast one of the
// first steps should be complete before filling the list
mAppInfoAdapter.sortBaseList(mSortOrder);
if (mJustCreated) {
// Set the adapter here.
mJustCreated = false;
mListView.setAdapter(mAppInfoAdapter);
dismissLoadingMsg();
}
}
if (!mComputeSizes) {
initComputeSizes();
} else if (!mLoadLabels) {
@@ -465,7 +410,130 @@ public class ManageApplications extends ListActivity implements
}
};
class SizeObserver extends IPackageStatsObserver.Stub {
private int mMsgId;
private CountDownLatch mCount;
SizeObserver(int msgId) {
mMsgId = msgId;
}
public void invokeGetSize(String packageName, CountDownLatch count) {
mCount = count;
mPm.getPackageSizeInfo(packageName, this);
}
public void onGetStatsCompleted(PackageStats pStats, boolean pSucceeded) {
AppInfo appInfo = null;
Bundle data = new Bundle();
data.putString(ATTR_PKG_NAME, pStats.packageName);
if(pSucceeded && pStats != null) {
if (localLOGV) Log.i(TAG, "onGetStatsCompleted::"+pStats.packageName+", ("+
pStats.cacheSize+","+
pStats.codeSize+", "+pStats.dataSize);
data.putParcelable(ATTR_APP_PKG_STATS, pStats);
} else {
Log.w(TAG, "Invalid package stats from PackageManager");
}
//post message to Handler
Message msg = mHandler.obtainMessage(mMsgId, data);
msg.setData(data);
mHandler.sendMessage(msg);
mCount.countDown();
}
}
class TaskRunner extends Thread {
private List<ApplicationInfo> mPkgList;
private SizeObserver mSizeObserver;
private static final int END_MSG = COMPUTE_END;
private static final int mMsgId = COMPUTE_PKG_SIZE_DONE;
volatile boolean abort = false;
TaskRunner(List<ApplicationInfo> appList) {
mPkgList = appList;
mSizeObserver = new SizeObserver(mMsgId);
start();
}
public void setAbort() {
abort = true;
}
public void run() {
long startTime;
if (DEBUG_SIZE || DEBUG_TIME) {
startTime = SystemClock.elapsedRealtime();
}
int size = mPkgList.size();
for (int i = 0; i < size; i++) {
if (abort) {
// Exit if abort has been set.
break;
}
CountDownLatch count = new CountDownLatch(1);
String packageName = mPkgList.get(i).packageName;
long startPkgTime;
if (DEBUG_SIZE) {
startPkgTime = SystemClock.elapsedRealtime();
}
mSizeObserver.invokeGetSize(packageName, count);
try {
count.await();
} catch (InterruptedException e) {
Log.i(TAG, "Failed computing size for pkg : "+packageName);
}
if (DEBUG_SIZE) Log.i(TAG, "Took "+(SystemClock.elapsedRealtime() - startPkgTime) +
" ms to compute size for pkg : "+packageName);
}
if (DEBUG_SIZE || DEBUG_TIME) Log.i(TAG, "Took "+ (SystemClock.elapsedRealtime() - startTime)+ " ms to compute resources " );
mHandler.sendEmptyMessage(END_MSG);
}
}
/*
* This method compares the current cache against a new list of
* installed applications and tries to update the list with add or remove
* messages.
*/
private boolean updateAppList(List<ApplicationInfo> newList) {
if ((newList == null) || (mAppPropCache == null)) {
return false;
}
Set<String> existingList = new HashSet<String>();
boolean ret = false;
// Loop over new list and find out common elements between old and new lists
for (ApplicationInfo info : newList) {
String pkgName = info.packageName;
AppInfo aInfo = mAppPropCache.get(pkgName);
if (aInfo != null) {
existingList.add(pkgName);
} else {
// New package. update info by refreshing
if (localLOGV) Log.i(TAG, "New pkg :"+pkgName+" installed when paused");
updatePackageList(Intent.ACTION_PACKAGE_ADDED, pkgName);
ret = true;
}
}
// Loop over old list and figure out state entries
List<String> deletedList = null;
Set<String> staleList = mAppPropCache.keySet();
for (String pkgName : staleList) {
if (!existingList.contains(pkgName)) {
if (localLOGV) Log.i(TAG, "Pkg :"+pkgName+" deleted when paused");
if (deletedList == null) {
deletedList = new ArrayList<String>();
deletedList.add(pkgName);
}
ret = true;
}
}
// Delete right away
if (deletedList != null) {
mAppInfoAdapter.removeFromList(deletedList);
}
return ret;
}
private void doneLoadingData() {
setProgressBarIndeterminateVisibility(false);
@@ -524,44 +592,101 @@ public class ManageApplications extends ListActivity implements
}
}
/*
* Utility method used to figure out list of apps based on filterOption
* If the framework supports an additional flag to indicate running apps
* we can get away with some code here.
*/
List<ApplicationInfo> getFilteredApps(List<ApplicationInfo> pAppList, int filterOption) {
List<ApplicationInfo> retList = new ArrayList<ApplicationInfo>();
if(pAppList == null) {
return retList;
}
if (filterOption == FILTER_APPS_THIRD_PARTY) {
List<ApplicationInfo> appList =new ArrayList<ApplicationInfo> ();
for (ApplicationInfo appInfo : pAppList) {
boolean flag = false;
if ((appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
// Updated system app
flag = true;
} else if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
// Non-system app
flag = true;
}
if (flag) {
appList.add(appInfo);
}
}
return appList;
} else if (filterOption == FILTER_APPS_RUNNING) {
List<ApplicationInfo> appList =new ArrayList<ApplicationInfo> ();
List<ActivityManager.RunningAppProcessInfo> procList = getRunningAppProcessesList();
if ((procList == null) || (procList.size() == 0)) {
return appList;
}
// Retrieve running processes from ActivityManager
HashMap<String, ActivityManager.RunningAppProcessInfo> runningMap =
new HashMap<String, ActivityManager.RunningAppProcessInfo>();
for (ActivityManager.RunningAppProcessInfo appProcInfo : procList) {
if ((appProcInfo != null) && (appProcInfo.pkgList != null)){
int size = appProcInfo.pkgList.length;
for (int i = 0; i < size; i++) {
runningMap.put(appProcInfo.pkgList[i], appProcInfo);
}
}
}
// Query list to find running processes in current list
for (ApplicationInfo appInfo : pAppList) {
if (runningMap.get(appInfo.packageName) != null) {
appList.add(appInfo);
}
}
return appList;
} else {
return pAppList;
}
}
private List<ActivityManager.RunningAppProcessInfo> getRunningAppProcessesList() {
ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
return am.getRunningAppProcesses();
}
// some initialization code used when kicking off the size computation
private void initAppList(int filterOption) {
// Initialize lists
List<ApplicationInfo> appList = getInstalledApps(filterOption);
initAppList(appList, filterOption);
initAppList(null, filterOption);
}
// some initialization code used when kicking off the size computation
private void initAppList(List<ApplicationInfo> appList, int filterOption) {
setProgressBarIndeterminateVisibility(true);
mComputeIndex = 0;
mComputeSizes = false;
mLoadLabels = false;
// Initialize lists
mAddRemoveMap = new TreeMap<String, Boolean>();
mAppInfoAdapter.resetAppList(filterOption, appList);
mAppInfoAdapter.initMapFromList(appList, filterOption);
}
// Utility method to start a thread to read application labels and icons
private void initResourceThread() {
//load resources now
if(mResourceThread.isAlive()) {
mResourceThread.interrupt();
if ((mResourceThread != null) && mResourceThread.isAlive()) {
mResourceThread.setAbort();
}
mResourceThread = new ResourceLoaderThread();
List<ApplicationInfo> appList = mAppInfoAdapter.getBaseAppList();
if ((appList != null) && (appList.size()) > 0) {
mResourceThread.loadAllResources(appList);
}
mResourceThread.loadAllResources(mAppInfoAdapter.getAppList());
}
private void initComputeSizes() {
// initiate compute pkg sizes
// Initiate compute package sizes
if (localLOGV) Log.i(TAG, "Initiating compute sizes for first time");
if (mAppInfoAdapter.getCount() > 0) {
mObserver.invokeGetSizeInfo(mAppInfoAdapter.getApplicationInfo(0),
COMPUTE_PKG_SIZE_DONE);
if ((mSizeComputor != null) && (mSizeComputor.isAlive())) {
mSizeComputor.setAbort();
}
List<ApplicationInfo> appList = mAppInfoAdapter.getBaseAppList();
if ((appList != null) && (appList.size()) > 0) {
mSizeComputor = new TaskRunner(appList);
} else {
mComputeSizes = true;
}
@@ -591,27 +716,55 @@ public class ManageApplications extends ListActivity implements
class ResourceLoaderThread extends Thread {
List<ApplicationInfo> mAppList;
volatile boolean abort = false;
public void setAbort() {
abort = true;
}
void loadAllResources(List<ApplicationInfo> appList) {
mAppList = appList;
start();
}
public void run() {
Map<String, AppInfo> iconMap = new HashMap<String, AppInfo>();
if(mAppList == null || mAppList.size() <= 0) {
long start;
if (DEBUG_TIME) {
start = SystemClock.elapsedRealtime();
}
int imax;
if(mAppList == null || (imax = mAppList.size()) <= 0) {
Log.w(TAG, "Empty or null application list");
} else {
for (ApplicationInfo appInfo : mAppList) {
for (int i = 0; i < imax; i++) {
if (abort) {
return;
}
ApplicationInfo appInfo = mAppList.get(i);
CharSequence appName = appInfo.loadLabel(mPm);
Drawable appIcon = appInfo.loadIcon(mPm);
iconMap.put(appInfo.packageName,
new AppInfo(appInfo.packageName, appName, appIcon));
Message msg = mHandler.obtainMessage(REFRESH_APP_RESOURCE);
msg.obj = new AppInfo(appInfo.packageName, appName, null);
mHandler.sendMessage(msg);
}
Message doneMsg = mHandler.obtainMessage(REFRESH_DONE);
mHandler.sendMessage(doneMsg);
if (DEBUG_TIME) Log.i(TAG, "Took "+(SystemClock.elapsedRealtime()-start)+" ms to load app labels");
long startIcons;
if (DEBUG_TIME) {
startIcons = SystemClock.elapsedRealtime();
}
for (int i = (imax-1); i >= 0; i--) {
if (abort) {
return;
}
ApplicationInfo appInfo = mAppList.get(i);
Drawable appIcon = appInfo.loadIcon(mPm);
Message msg = mHandler.obtainMessage(REFRESH_APP_RESOURCE);
msg.obj = new AppInfo(appInfo.packageName, null, appIcon);
mHandler.sendMessage(msg);
}
if (DEBUG_TIME) Log.i(TAG, "Took "+(SystemClock.elapsedRealtime()-startIcons)+" ms to load app icons");
}
Message msg = mHandler.obtainMessage(REFRESH_ICONS);
msg.obj = iconMap;
mHandler.sendMessage(msg);
if (DEBUG_TIME) Log.i(TAG, "Took "+(SystemClock.elapsedRealtime()-start)+" ms to load app resources");
}
}
@@ -625,12 +778,18 @@ public class ManageApplications extends ListActivity implements
public Drawable appIcon;
public CharSequence appSize;
public PackageStats appStats;
public void refreshIcon(AppInfo pInfo) {
appName = pInfo.appName;
appIcon = pInfo.appIcon;
}
public void refreshIcon(AppInfo pInfo) {
if (pInfo == null) {
return;
}
if (pInfo.appName != null) {
appName = pInfo.appName;
}
if (pInfo.appIcon != null) {
appIcon = pInfo.appIcon;
}
}
public AppInfo(String pName, CharSequence aName, Drawable aIcon) {
index = -1;
pkgName = pName;
@@ -700,6 +859,7 @@ public class ManageApplications extends ListActivity implements
*/
class AppInfoAdapter extends BaseAdapter {
private Map<String, AppInfo> mAppPropMap;
private List<ApplicationInfo> mAppList;
private List<ApplicationInfo> mAppLocalList;
ApplicationInfo.DisplayNameComparator mAlphaComparator;
AppInfoComparator mSizeComparator;
@@ -710,34 +870,51 @@ public class ManageApplications extends ListActivity implements
}
return mAppPropCache.get(packageName);
}
public AppInfoAdapter(Context c, List<ApplicationInfo> appList) {
mAppLocalList = appList;
boolean useCache = false;
int sortOrder = SORT_ORDER_ALPHA;
int imax = mAppLocalList.size();
if(mAppPropCache != null) {
useCache = true;
// Activity has been resumed. can use the cache to populate values initially
mAppPropMap = mAppPropCache;
sortOrder = mSortOrder;
// Make sure the cache or map contains entries for all elements
// in appList for a valid sort.
public void initMapFromList(List<ApplicationInfo> appList, int filterOption) {
if (appList == null) {
// Just refresh the list
appList = mAppList;
} else {
mAppList = appList;
}
sortAppList(sortOrder);
// Recreate property map
mAppPropMap = new TreeMap<String, AppInfo>();
if (mAppPropCache != null) {
// Retain previous sort order
int sortOrder = mSortOrder;
mAppPropMap = mAppPropCache;
// TODO is this required?
sortAppList(mAppList, sortOrder);
} else {
// Recreate property map
mAppPropMap = new TreeMap<String, AppInfo>();
}
// Re init the comparators
mAlphaComparator = null;
mSizeComparator = null;
mAppLocalList = getFilteredApps(appList, filterOption);
int imax = appList.size();
for (int i = 0; i < imax; i++) {
ApplicationInfo info = mAppLocalList.get(i);
AppInfo aInfo = getFromCache(info.packageName);
ApplicationInfo info = appList.get(i);
AppInfo aInfo = mAppPropMap.get(info.packageName);
if(aInfo == null){
aInfo = new AppInfo(info.packageName, i,
info.packageName, mDefaultAppIcon, null);
info.packageName, mDefaultAppIcon, null);
if (localLOGV) Log.i(TAG, "Creating entry pkg:"+info.packageName+" to map");
} else {
aInfo.index = i;
if (localLOGV) Log.i(TAG, "Adding pkg:"+info.packageName+" to map");
}
mAppPropMap.put(info.packageName, aInfo);
}
}
public AppInfoAdapter(Context c, List<ApplicationInfo> appList) {
mAppList = appList;
}
public int getCount() {
return mAppLocalList.size();
}
@@ -772,14 +949,6 @@ public class ManageApplications extends ListActivity implements
}
return mAppLocalList.get(position);
}
public void addApplicationInfo(ApplicationInfo info) {
if(info == null) {
Log.w(TAG, "Ignoring null add in List Adapter");
return;
}
mAppLocalList.add(info);
}
public long getItemId(int position) {
int imax = mAppLocalList.size();
@@ -790,8 +959,8 @@ public class ManageApplications extends ListActivity implements
return mAppPropMap.get(mAppLocalList.get(position).packageName).index;
}
public List<ApplicationInfo> getAppList() {
return mAppLocalList;
public List<ApplicationInfo> getBaseAppList() {
return mAppList;
}
public View getView(int position, View convertView, ViewGroup parent) {
@@ -843,33 +1012,46 @@ public class ManageApplications extends ListActivity implements
private void adjustIndex() {
int imax = mAppLocalList.size();
ApplicationInfo info;
for (int i = 0; i < imax; i++) {
info = mAppLocalList.get(i);
ApplicationInfo info = mAppLocalList.get(i);
mAppPropMap.get(info.packageName).index = i;
}
}
public void sortAppList(int sortOrder) {
Collections.sort(mAppLocalList, getAppComparator(sortOrder));
public void sortAppList(List<ApplicationInfo> appList, int sortOrder) {
Collections.sort(appList, getAppComparator(sortOrder));
}
public void sortBaseList(int sortOrder) {
if (localLOGV) Log.i(TAG, "Sorting base list based on sortOrder = "+sortOrder);
sortAppList(mAppList, sortOrder);
mAppLocalList = getFilteredApps(mAppList, mFilterApps);
adjustIndex();
}
public void sortList(int sortOrder) {
sortAppList(sortOrder);
if (localLOGV) Log.i(TAG, "sortOrder = "+sortOrder);
sortAppList(mAppLocalList, sortOrder);
adjustIndex();
notifyDataSetChanged();
}
public boolean resetAppList(int filterOption, List<ApplicationInfo> appList) {
// Create application list based on the filter value
mAppLocalList = appList;
/*
* Reset the application list associated with this adapter.
* @param filterOption Sort the list based on this value
* @param appList the actual application list that is used to reset
* @return Return a boolean value to indicate inconsistency
*/
public boolean resetAppList(int filterOption) {
// Change application list based on filter option
mAppLocalList = getFilteredApps(mAppList, filterOption);
// Check for all properties in map before sorting. Populate values from cache
for(ApplicationInfo applicationInfo : mAppLocalList) {
AppInfo appInfo = mAppPropMap.get(applicationInfo.packageName);
if(appInfo == null) {
AppInfo rInfo = getFromCache(applicationInfo.packageName);
if(rInfo == null) {
// Need to load resources again. Inconsistency somewhere
// Need to load resources again. Inconsistency somewhere
return false;
}
mAppPropMap.put(applicationInfo.packageName, rInfo);
@@ -898,59 +1080,40 @@ public class ManageApplications extends ListActivity implements
}
return mSizeComparator;
}
/*
* This method updates resource information in the package map.
*
* @param iconMap a map of package names and attributes
* @return A boolean value to indicate if the property map has to be
* refreshed completely
*/
public boolean updateAppsResourceInfo(Map<String, AppInfo> iconMap) {
if(iconMap == null) {
Log.w(TAG, "Null iconMap when refreshing icon in List Adapter");
public boolean updateAppsResourceInfo(AppInfo pInfo) {
if((pInfo == null) || (pInfo.pkgName == null)) {
Log.w(TAG, "Null info when refreshing icon in List Adapter");
return false;
}
AppInfo aInfo = mAppPropMap.get(pInfo.pkgName);
if (aInfo != null) {
aInfo.refreshIcon(pInfo);
notifyDataSetChanged();
return true;
}
boolean changed = false;
for (ApplicationInfo info : mAppLocalList) {
AppInfo pInfo = iconMap.get(info.packageName);
if(pInfo != null) {
AppInfo aInfo = mAppPropMap.get(info.packageName);
if (aInfo != null) {
aInfo.refreshIcon(pInfo);
} else {
return false;
}
changed = true;
}
}
if(changed) {
notifyDataSetChanged();
}
return true;
return false;
}
private boolean shouldBeInList(int filterOption, ApplicationInfo info) {
// Match filter here
boolean addToCurrList = false;
if (filterOption == FILTER_APPS_RUNNING) {
List<ApplicationInfo> runningList = getInstalledApps(FILTER_APPS_RUNNING);
for (ApplicationInfo running : runningList) {
if (running.packageName.equalsIgnoreCase(info.packageName)) {
addToCurrList = true;
break;
return true;
}
}
} else if (filterOption == FILTER_APPS_THIRD_PARTY) {
if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
addToCurrList = true;
return true;
} else if ((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {
addToCurrList = true;
return true;
}
} else {
return true;
}
return addToCurrList;
return false;
}
/*
@@ -961,20 +1124,15 @@ public class ManageApplications extends ListActivity implements
* @param ps PackageStats of new package
*/
public void addToList(String pkgName, PackageStats ps) {
if(pkgName == null) {
Log.w(TAG, "Adding null pkg to List Adapter");
if((pkgName == null) || (ps == null)) {
if (pkgName == null) {
Log.w(TAG, "Adding null pkg to List Adapter");
} else {
Log.w(TAG, "Adding pkg : "+pkgName+" with invalid PackageStats");
}
return;
}
boolean notInList = true;
int newIdx = getIndex(pkgName);
if (newIdx != -1) {
notInList = false;
if (mAppPropMap.get(pkgName) != null) {
// weird. just ignore entry
Log.i(TAG, "Package:"+pkgName+" already added");
return;
}
}
// Get ApplicationInfo
ApplicationInfo info = null;
try {
@@ -988,14 +1146,17 @@ public class ManageApplications extends ListActivity implements
Log.i(TAG, "Null ApplicationInfo for package:"+pkgName);
return;
}
// Add entry to map
mAppPropMap.put(pkgName, new AppInfo(pkgName, newIdx,
// Add entry to local list
mAppList.add(info);
// Add entry to map. Note that the index gets adjusted later on based on
// whether the newly added package is part of displayed list
mAppPropMap.put(pkgName, new AppInfo(pkgName, -1,
info.loadLabel(mPm), info.loadIcon(mPm), ps));
// Add to list
if (notInList && (shouldBeInList(mFilterApps, info))) {
// Binary search returns a negative index (ie -index) of the position where
// this might be inserted.
newIdx = Collections.binarySearch(mAppLocalList, info,
int newIdx = Collections.binarySearch(mAppLocalList, info,
getAppComparator(mSortOrder));
if(newIdx >= 0) {
Log.i(TAG, "Strange. Package:"+pkgName+" is not new");
@@ -1010,11 +1171,30 @@ public class ManageApplications extends ListActivity implements
}
}
private void removePkgListBase(List<String> pkgNames) {
for (String pkg : pkgNames) {
removePkgBase(pkg);
}
}
private void removePkgBase(String pkgName) {
int imax = mAppList.size();
for (int i = 0; i < imax; i++) {
ApplicationInfo app = mAppList.get(i);
if (app.packageName.equalsIgnoreCase(pkgName)) {
if (localLOGV) Log.i(TAG, "Removing pkg: "+pkgName+" from base list");
mAppList.remove(i);
return;
}
}
}
public void removeFromList(List<String> pkgNames) {
if(pkgNames == null) {
Log.w(TAG, "Removing null pkg list from List Adapter");
return;
}
removePkgListBase(pkgNames);
int imax = mAppLocalList.size();
boolean found = false;
ApplicationInfo info;
@@ -1042,7 +1222,7 @@ public class ManageApplications extends ListActivity implements
}
// Sort idxArr
Arrays.sort(idxArr);
// remove the packages based on decending indices
// remove the packages based on descending indices
for (k = kmax-1; k >= 0; k--) {
// Check if package has been found in the list of existing apps first
if(idxArr[k] == -1) {
@@ -1051,13 +1231,13 @@ public class ManageApplications extends ListActivity implements
info = mAppLocalList.get(idxArr[k]);
mAppLocalList.remove(idxArr[k]);
mAppPropMap.remove(info.packageName);
if (localLOGV) Log.i(TAG, "Removed pkg:"+info.packageName+ " list");
if (localLOGV) Log.i(TAG, "Removed pkg:"+info.packageName+ " from display list");
}
if (found) {
adjustIndex();
notifyDataSetChanged();
}
}
}
public void updateAppSize(String pkgName, PackageStats ps) {
if(pkgName == null) {
@@ -1098,6 +1278,10 @@ public class ManageApplications extends ListActivity implements
mHandler.removeMessages(REORDER_LIST);
mHandler.removeMessages(ADD_PKG_START);
mHandler.removeMessages(ADD_PKG_DONE);
mHandler.removeMessages(REFRESH_APP_RESOURCE);
mHandler.removeMessages(REFRESH_DONE);
mHandler.removeMessages(NEXT_LOAD_STEP);
mHandler.removeMessages(COMPUTE_END);
}
private void sendMessageToHandler(int msgId, int arg1) {
@@ -1201,8 +1385,8 @@ public class ManageApplications extends ListActivity implements
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent lIntent = getIntent();
String action = lIntent.getAction();
Intent intent = getIntent();
String action = intent.getAction();
if (action.equals(Intent.ACTION_MANAGE_PACKAGE_STORAGE)) {
mSortOrder = SORT_ORDER_SIZE;
mSizesFirst = true;
@@ -1213,6 +1397,7 @@ public class ManageApplications extends ListActivity implements
requestWindowFeature(Window.FEATURE_PROGRESS);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.compute_sizes);
showLoadingMsg();
mDefaultAppIcon =Resources.getSystem().getDrawable(
com.android.internal.R.drawable.sym_def_app_icon);
mInvalidSizeStr = getText(R.string.invalid_size_value);
@@ -1231,7 +1416,6 @@ public class ManageApplications extends ListActivity implements
lv.setItemsCanFocus(true);
lv.setOnItemClickListener(this);
mListView = lv;
showLoadingMsg();
}
@Override
@@ -1249,28 +1433,38 @@ public class ManageApplications extends ListActivity implements
private void showLoadingMsg() {
showDialog(DLG_LOADING);
if (DEBUG_TIME) {
mLoadTimeStart = SystemClock.elapsedRealtime();
}
showDialog(DLG_LOADING);
if(localLOGV) Log.i(TAG, "Displaying Loading message");
}
private void dismissLoadingMsg() {
if(localLOGV) Log.i(TAG, "Dismissing Loading message");
dismissDialog(DLG_LOADING);
if (DEBUG_TIME) Log.i(TAG, "Displayed loading message for "+
(SystemClock.elapsedRealtime() - mLoadTimeStart));
}
@Override
public void onStart() {
super.onStart();
// Create a thread to load resources
mResourceThread = new ResourceLoaderThread();
sendMessageToHandler(INIT_PKG_INFO);
// register receiver
mReceiver.registerReceiver();
sendMessageToHandler(INIT_PKG_INFO);
}
@Override
public void onStop() {
super.onStop();
// Stop the background threads
if (mResourceThread != null) {
mResourceThread.setAbort();
}
if (mSizeComputor != null) {
mSizeComputor.setAbort();
}
// clear all messages related to application list
clearMessagesInHandler();
// register receiver here

View File

@@ -162,6 +162,13 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements
mVibrate.setChecked(vibrateSetting);
}
int silentModeStreams = Settings.System.getInt(getContentResolver(),
Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0);
boolean isAlarmInclSilentMode = (silentModeStreams & (1 << AudioManager.STREAM_ALARM)) != 0;
mSilent.setSummary(isAlarmInclSilentMode ?
R.string.silent_mode_incl_alarm_summary :
R.string.silent_mode_summary);
boolean animations = true;
try {
mAnimationScales = mWindowManager.getAnimationScales();

View File

@@ -18,6 +18,7 @@ package com.android.settings.battery_history;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Formatter;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -73,7 +74,7 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
private BatteryStats mStats;
private int mWhich = BatteryStats.STATS_UNPLUGGED;
private int mType = CPU_USAGE;
private int mType = MISC_USAGE;
private GraphableButton[] mButtons;
IBatteryStats mBatteryInfo;
@@ -401,6 +402,7 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
class MiscUsage extends Graphable {
int mInfoLabelRes;
String mInfoLabel;
double[] mUsage;
double mTotalRealtime;
@@ -415,6 +417,17 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
mTotalRealtime = totalRealtime;
}
public MiscUsage(String name, String infoLabel, long value,
long totalRealtime) {
mName = name;
mInfoLabel = infoLabel;
mUsage = new double[2];
mUsage[0] = value;
mTotalRealtime = totalRealtime;
}
public String getLabel() {
return mName;
}
@@ -432,7 +445,7 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
}
public void getInfo(StringBuilder info) {
info.append(getString(mInfoLabelRes));
info.append(mInfoLabel != null ? mInfoLabel : getString(mInfoLabelRes));
info.append(' ');
formatTime(mUsage[0], info);
info.append(" (");
@@ -656,6 +669,19 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
Collections.sort(mWakelockUsage);
}
private final StringBuilder mFormatBuilder = new StringBuilder(8);
private final Formatter mFormatter = new Formatter(mFormatBuilder);
private final String formatRatio(long num, long den) {
if (den == 0L) {
return "---%";
}
float perc = ((float)num) / ((float)den) * 100;
mFormatBuilder.setLength(0);
mFormatter.format("%.1f%%", perc);
return mFormatBuilder.toString();
}
private void processMiscUsage() {
mMiscUsage.clear();
@@ -666,7 +692,8 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
long time = mStats.computeBatteryUptime(SystemClock.uptimeMillis() * 1000, mWhich) / 1000;
if (time > 0) {
mMiscUsage.add(new MiscUsage(getString(
R.string.battery_history_awake_label),
R.string.battery_history_awake_label)
+ " (" + formatRatio(time, whichRealtime) + ")",
R.string.battery_history_awake,
time, whichRealtime));
}
@@ -674,7 +701,8 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
time = mStats.getScreenOnTime(batteryRealtime, mWhich) / 1000;
if (time > 0) {
mMiscUsage.add(new MiscUsage(getString(
R.string.battery_history_screen_on_label),
R.string.battery_history_screen_on_label)
+ " (" + formatRatio(time, whichRealtime) + ")",
R.string.battery_history_screen_on,
time, whichRealtime));
}
@@ -682,11 +710,36 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
time = mStats.getPhoneOnTime(batteryRealtime, mWhich) / 1000;
if (time > 0) {
mMiscUsage.add(new MiscUsage(getString(
R.string.battery_history_phone_on_label),
R.string.battery_history_phone_on_label)
+ " (" + formatRatio(time, whichRealtime) + ")",
R.string.battery_history_phone_on,
time, whichRealtime));
}
time = mStats.getWifiOnTime(batteryRealtime, mWhich) / 1000;
if (time > 0) {
mMiscUsage.add(new MiscUsage("Wifi On ("
+ formatRatio(time, whichRealtime) + ")",
"Time spent with Wifi on:",
time, whichRealtime));
}
time = mStats.getWifiRunningTime(batteryRealtime, mWhich) / 1000;
if (time > 0) {
mMiscUsage.add(new MiscUsage("Wifi Running ("
+ formatRatio(time, whichRealtime) + ")",
"Time spent with Wifi running:",
time, whichRealtime));
}
time = mStats.getBluetoothOnTime(batteryRealtime, mWhich) / 1000;
if (time > 0) {
mMiscUsage.add(new MiscUsage("Bluetooth On ("
+ formatRatio(time, whichRealtime) + ")",
"Time spent with Bluetooth on:",
time, whichRealtime));
}
Collections.sort(mMiscUsage);
}
@@ -815,12 +868,22 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
setContentView(R.layout.battery_history);
mStats = (BatteryStats)getLastNonConfigurationInstance();
if (icicle != null) {
if (mStats == null) {
mStats = (BatteryStats)icicle.getParcelable("stats");
}
mType = icicle.getInt("type");
mWhich = icicle.getInt("which");
}
mGraphLayout = (LinearLayout) findViewById(R.id.graphLayout);
mTextLayout = (LinearLayout) findViewById(R.id.textLayout);
mDetailsText = (TextView) findViewById(R.id.detailsText);
mMessageText = (TextView) findViewById(R.id.messageText);
mTypeSpinner = (Spinner) findViewById(R.id.typeSpinner);
mTypeSpinner.setSelection(mType);
mTypeSpinner.setOnItemSelectedListener(this);
mWhichSpinner = (Spinner) findViewById(R.id.whichSpinner);
@@ -845,14 +908,6 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
mBatteryInfo = IBatteryStats.Stub.asInterface(
ServiceManager.getService("batteryinfo"));
mStats = (BatteryStats)getLastNonConfigurationInstance();
if (icicle != null) {
if (mStats == null) {
mStats = (BatteryStats)icicle.getParcelable("stats");
}
mType = icicle.getInt("type");
mWhich = icicle.getInt("which");
}
if (mStats == null) {
load();
}

View File

@@ -15,11 +15,11 @@ public class GraphableButton extends Button {
static {
sPaint[0] = new Paint();
sPaint[0].setStyle(Paint.Style.FILL);
sPaint[0].setColor(Color.BLUE);
sPaint[0].setColor(0xFF0080FF);
sPaint[1] = new Paint();
sPaint[1].setStyle(Paint.Style.FILL);
sPaint[1].setColor(Color.RED);
sPaint[1].setColor(0xFFFF6060);
}
double[] mValues;

View File

@@ -92,7 +92,6 @@ public class BluetoothDiscoverableEnabler implements Preference.OnPreferenceChan
}
IntentFilter filter = new IntentFilter(BluetoothIntent.SCAN_MODE_CHANGED_ACTION);
filter.addAction(BluetoothIntent.DISABLED_ACTION);
mContext.registerReceiver(mReceiver, filter);
mCheckBoxPreference.setOnPreferenceChangeListener(this);

View File

@@ -17,8 +17,9 @@
package com.android.settings.bluetooth;
import com.android.settings.R;
import com.android.settings.bluetooth.LocalBluetoothManager.ExtendedBluetoothState;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -70,15 +71,15 @@ public class BluetoothEnabler implements Preference.OnPreferenceChangeListener {
return;
}
ExtendedBluetoothState state = mLocalManager.getBluetoothState();
int state = mLocalManager.getBluetoothState();
// This is the widget enabled state, not the preference toggled state
mCheckBoxPreference.setEnabled(state == ExtendedBluetoothState.ENABLED ||
state == ExtendedBluetoothState.DISABLED);
mCheckBoxPreference.setEnabled(state == BluetoothDevice.BLUETOOTH_STATE_ON ||
state == BluetoothDevice.BLUETOOTH_STATE_OFF);
// BT state is not a sticky broadcast, so set it manually
handleStateChanged(state);
mContext.registerReceiver(mReceiver,
new IntentFilter(LocalBluetoothManager.EXTENDED_BLUETOOTH_STATE_CHANGED_ACTION));
new IntentFilter(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION));
mCheckBoxPreference.setOnPreferenceChangeListener(this);
}
@@ -106,22 +107,24 @@ public class BluetoothEnabler implements Preference.OnPreferenceChangeListener {
mLocalManager.setBluetoothEnabled(enable);
}
private void handleStateChanged(ExtendedBluetoothState state) {
private void handleStateChanged(int state) {
if (state == ExtendedBluetoothState.DISABLED || state == ExtendedBluetoothState.ENABLED) {
mCheckBoxPreference.setChecked(state == ExtendedBluetoothState.ENABLED);
mCheckBoxPreference
.setSummary(state == ExtendedBluetoothState.DISABLED ? mOriginalSummary : null);
if (state == BluetoothDevice.BLUETOOTH_STATE_OFF ||
state == BluetoothDevice.BLUETOOTH_STATE_ON) {
mCheckBoxPreference.setChecked(state == BluetoothDevice.BLUETOOTH_STATE_ON);
mCheckBoxPreference.setSummary(state == BluetoothDevice.BLUETOOTH_STATE_OFF ?
mOriginalSummary :
null);
mCheckBoxPreference.setEnabled(isEnabledByDependency());
} else if (state == ExtendedBluetoothState.ENABLING ||
state == ExtendedBluetoothState.DISABLING) {
mCheckBoxPreference.setSummary(state == ExtendedBluetoothState.ENABLING
} else if (state == BluetoothDevice.BLUETOOTH_STATE_TURNING_ON ||
state == BluetoothDevice.BLUETOOTH_STATE_TURNING_OFF) {
mCheckBoxPreference.setSummary(state == BluetoothDevice.BLUETOOTH_STATE_TURNING_ON
? R.string.wifi_starting
: R.string.wifi_stopping);
} else if (state == ExtendedBluetoothState.UNKNOWN) {
} else {
mCheckBoxPreference.setChecked(false);
mCheckBoxPreference.setSummary(R.string.wifi_error);
mCheckBoxPreference.setEnabled(true);

View File

@@ -16,8 +16,6 @@
package com.android.settings.bluetooth;
import com.android.settings.bluetooth.LocalBluetoothManager.ExtendedBluetoothState;
import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothHeadset;
@@ -50,12 +48,10 @@ public class BluetoothEventRedirector {
String action = intent.getAction();
String address = intent.getStringExtra(BluetoothIntent.ADDRESS);
if (action.equals(BluetoothIntent.ENABLED_ACTION)) {
mManager.setBluetoothStateInt(ExtendedBluetoothState.ENABLED);
} else if (action.equals(BluetoothIntent.DISABLED_ACTION)) {
mManager.setBluetoothStateInt(ExtendedBluetoothState.DISABLED);
if (action.equals(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION)) {
int state = intent.getIntExtra(BluetoothIntent.BLUETOOTH_STATE,
BluetoothError.ERROR);
mManager.setBluetoothStateInt(state);
} else if (action.equals(BluetoothIntent.DISCOVERY_STARTED_ACTION)) {
mManager.onScanningStateChanged(true);
@@ -86,25 +82,29 @@ public class BluetoothEventRedirector {
}
} else if (action.equals(BluetoothIntent.HEADSET_STATE_CHANGED_ACTION)) {
mManager.getLocalDeviceManager().onProfileStateChanged(address);
int newState = intent.getIntExtra(BluetoothIntent.HEADSET_STATE, 0);
int oldState = intent.getIntExtra(BluetoothIntent.HEADSET_PREVIOUS_STATE, 0);
if (newState == BluetoothHeadset.STATE_DISCONNECTED &&
oldState == BluetoothHeadset.STATE_CONNECTING) {
Log.i(TAG, "Failed to connect BT headset");
}
} else if (action.equals(BluetoothA2dp.SINK_STATE_CHANGED_ACTION)) {
mManager.getLocalDeviceManager().onProfileStateChanged(address);
boolean transientState = !(newState == BluetoothHeadset.STATE_CONNECTED
|| newState == BluetoothHeadset.STATE_DISCONNECTED);
mManager.getLocalDeviceManager().onProfileStateChanged(address,transientState);
} else if (action.equals(BluetoothA2dp.SINK_STATE_CHANGED_ACTION)) {
int newState = intent.getIntExtra(BluetoothA2dp.SINK_STATE, 0);
int oldState = intent.getIntExtra(BluetoothA2dp.SINK_PREVIOUS_STATE, 0);
if (newState == BluetoothA2dp.STATE_DISCONNECTED &&
oldState == BluetoothA2dp.STATE_CONNECTING) {
Log.i(TAG, "Failed to connect BT A2DP");
}
boolean transientState = !(newState == BluetoothA2dp.STATE_CONNECTED
|| newState == BluetoothA2dp.STATE_DISCONNECTED);
mManager.getLocalDeviceManager().onProfileStateChanged(address, transientState);
} else if (action.equals(BluetoothIntent.REMOTE_DEVICE_CLASS_UPDATED_ACTION)) {
mManager.getLocalDeviceManager().onBtClassChanged(address);
@@ -120,8 +120,7 @@ public class BluetoothEventRedirector {
IntentFilter filter = new IntentFilter();
// Bluetooth on/off broadcasts
filter.addAction(BluetoothIntent.ENABLED_ACTION);
filter.addAction(BluetoothIntent.DISABLED_ACTION);
filter.addAction(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION);
// Discovery broadcasts
filter.addAction(BluetoothIntent.DISCOVERY_STARTED_ACTION);

View File

@@ -17,6 +17,7 @@
package com.android.settings.bluetooth;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothError;
import android.bluetooth.BluetoothIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -39,7 +40,14 @@ public class BluetoothNamePreference extends EditTextPreference {
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
setSummaryToName();
String action = intent.getAction();
if (action.equals(BluetoothIntent.NAME_CHANGED_ACTION)) {
setSummaryToName();
} else if (action.equals(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION) &&
(intent.getIntExtra(BluetoothIntent.BLUETOOTH_STATE,
BluetoothError.ERROR) == BluetoothDevice.BLUETOOTH_STATE_ON)) {
setSummaryToName();
}
}
};
@@ -53,7 +61,7 @@ public class BluetoothNamePreference extends EditTextPreference {
public void resume() {
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothIntent.ENABLED_ACTION);
filter.addAction(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION);
filter.addAction(BluetoothIntent.NAME_CHANGED_ACTION);
getContext().registerReceiver(mReceiver, filter);
}

View File

@@ -18,11 +18,12 @@ package com.android.settings.bluetooth;
import com.android.settings.ProgressCategory;
import com.android.settings.R;
import com.android.settings.bluetooth.LocalBluetoothManager.ExtendedBluetoothState;
import java.util.List;
import java.util.WeakHashMap;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -117,8 +118,8 @@ public class BluetoothSettings extends PreferenceActivity
mLocalManager.startScanning(false);
registerReceiver(mReceiver,
new IntentFilter(LocalBluetoothManager.EXTENDED_BLUETOOTH_STATE_CHANGED_ACTION));
registerReceiver(mReceiver,
new IntentFilter(BluetoothIntent.BLUETOOTH_STATE_CHANGED_ACTION));
mLocalManager.setForegroundActivity(this);
}
@@ -248,12 +249,12 @@ public class BluetoothSettings extends PreferenceActivity
mDeviceList.setProgress(started);
}
private void onBluetoothStateChanged(ExtendedBluetoothState bluetoothState) {
private void onBluetoothStateChanged(int bluetoothState) {
// When bluetooth is enabled (and we are in the activity, which we are),
// we should start a scan
if (bluetoothState == ExtendedBluetoothState.ENABLED) {
if (bluetoothState == BluetoothDevice.BLUETOOTH_STATE_ON) {
mLocalManager.startScanning(false);
} else if (bluetoothState == ExtendedBluetoothState.DISABLED) {
} else if (bluetoothState == BluetoothDevice.BLUETOOTH_STATE_OFF) {
mDeviceList.setProgress(false);
}
}

View File

@@ -20,22 +20,23 @@ import com.android.settings.R;
import com.android.settings.bluetooth.LocalBluetoothProfileManager.Profile;
import android.app.AlertDialog;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothClass;
import android.bluetooth.IBluetoothDeviceCallback;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.os.IBinder;
import android.os.RemoteException;
import android.text.TextUtils;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
/**
@@ -71,6 +72,193 @@ public class LocalBluetoothDevice implements Comparable<LocalBluetoothDevice> {
*/
private boolean mIsConnectingErrorPossible;
// Max time to hold the work queue if we don't get or missed a response
// from the bt framework.
private static final long MAX_WAIT_TIME_FOR_FRAMEWORK = 25 * 1000;
private enum BluetoothCommand {
CONNECT, DISCONNECT,
}
class BluetoothJob {
final BluetoothCommand command; // CONNECT, DISCONNECT
final LocalBluetoothDevice device;
final Profile profile; // HEADSET, A2DP, etc
// 0 means this command was not been sent to the bt framework.
long timeSent;
public BluetoothJob(BluetoothCommand command,
LocalBluetoothDevice device, Profile profile) {
this.command = command;
this.device = device;
this.profile = profile;
this.timeSent = 0;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(command.name());
sb.append(" Address:").append(device.mAddress);
sb.append(" Profile:").append(profile.name());
sb.append(" TimeSent:");
if (timeSent == 0) {
sb.append("not yet");
} else {
sb.append(DateFormat.getTimeInstance().format(new Date(timeSent)));
}
return sb.toString();
}
}
/**
* We want to serialize connect and disconnect calls. http://b/170538
* This are some headsets that may have L2CAP resource limitation. We want
* to limit the bt bandwidth usage.
*
* A queue to keep track of asynchronous calls to the bt framework. The
* first item, if exist, should be in progress i.e. went to the bt framework
* already, waiting for a notification to come back. The second item and
* beyond have not been sent to the bt framework yet.
*/
private static LinkedList<BluetoothJob> workQueue = new LinkedList<BluetoothJob>();
private void queueCommand(BluetoothJob job) {
Log.d(TAG, workQueue.toString());
synchronized (workQueue) {
boolean processNow = pruneQueue(job);
// Add job to queue
Log.d(TAG, "Adding: " + job.toString());
workQueue.add(job);
// if there's nothing pending from before, send the command to bt
// framework immediately.
if (workQueue.size() == 1 || processNow) {
Log.d(TAG, "workQueue.size() == 1 || TimeOut -> process command now");
// If the failed to process, just drop it from the queue.
// There will be no callback to remove this from the queue.
processCommands();
}
}
}
private boolean pruneQueue(BluetoothJob job) {
boolean removedStaleItems = false;
long now = System.currentTimeMillis();
Iterator<BluetoothJob> it = workQueue.iterator();
while (it.hasNext()) {
BluetoothJob existingJob = it.next();
// Remove any pending CONNECTS when we receive a DISCONNECT
if (job != null && job.command == BluetoothCommand.DISCONNECT) {
if (existingJob.timeSent == 0
&& existingJob.command == BluetoothCommand.CONNECT
&& existingJob.device.mAddress.equals(job.device.mAddress)
&& existingJob.profile == job.profile) {
Log.d(TAG, "Removed because of a pending disconnect. " + existingJob);
it.remove();
continue;
}
}
// Defensive Code: Remove any job that older than a preset time.
// We never got a call back. It is better to have overlapping
// calls than to get stuck.
Log.d(TAG, "Age:" + (now - existingJob.timeSent));
if (existingJob.timeSent != 0
&& (now - existingJob.timeSent) >= MAX_WAIT_TIME_FOR_FRAMEWORK) {
Log.w(TAG, "Timeout. Removing Job:" + existingJob.toString());
it.remove();
removedStaleItems = true;
continue;
}
}
return removedStaleItems;
}
private boolean processCommand(BluetoothJob job) {
boolean successful = false;
if (job.timeSent == 0) {
job.timeSent = System.currentTimeMillis();
switch (job.command) {
case CONNECT:
successful = connectInt(job.device, job.profile);
break;
case DISCONNECT:
successful = disconnectInt(job.device, job.profile);
break;
}
if (successful) {
Log.d(TAG, "Command sent successfully:" + job.toString());
} else {
Log.d(TAG, "Framework rejected command immediately:" + job.toString());
}
} else {
Log.d(TAG, "Job already has a sent time. Skip. " + job.toString());
}
return successful;
}
public void onProfileStateChanged() {
Log.d(TAG, "onProfileStateChanged:" + workQueue.toString());
BluetoothJob job = workQueue.peek();
if (job == null) {
Log.v(TAG, "Yikes, onProfileStateChanged called but job queue is empty. "
+ "(Okay for device initiated actions and BluetoothA2dpService initiated "
+ "Auto-connections)");
return;
} else if (job.device.mAddress != mAddress) {
// This can happen in 2 cases: 1) BT device initiated pairing and
// 2) disconnects of one headset that's triggered by connects of
// another.
Log.v(TAG, "onProfileStateChanged called. The addresses differ. this.mAddress="
+ mAddress + " workQueue.head=" + job.toString());
// Check to see if we need to remove the stale items from the queue
if (!pruneQueue(null)) {
// nothing in the queue was modify. Just ignore the notification and return.
return;
}
} else {
// Remove the first item and process the next one
Log.d(TAG, "LocalBluetoothDevice.onProfileStateChanged() called. MAC addr matched");
workQueue.poll();
}
processCommands();
}
/*
* This method is called in 2 places:
* 1) queryCommand() - when someone or something want to connect or
* disconnect
* 2) onProfileStateChanged() - when the framework sends an intent
* notification when it finishes processing a command
*/
private void processCommands() {
Log.d(TAG, "processCommands:" + workQueue.toString());
Iterator<BluetoothJob> it = workQueue.iterator();
while (it.hasNext()) {
BluetoothJob job = it.next();
if (processCommand(job)) {
// Sent to bt framework. Done for now. Will remove this job
// from queue when we get an event
return;
} else {
/*
* If the command failed immediately, there will be no event
* callbacks. So delete the job immediately and move on to the
* next one
*/
it.remove();
}
}
}
LocalBluetoothDevice(Context context, String address) {
mLocalManager = LocalBluetoothManager.getInstance(context);
if (mLocalManager == null) {
@@ -102,12 +290,19 @@ public class LocalBluetoothDevice implements Comparable<LocalBluetoothDevice> {
}
public void disconnect(Profile profile) {
queueCommand(new BluetoothJob(BluetoothCommand.DISCONNECT, this, profile));
}
private boolean disconnectInt(LocalBluetoothDevice device, Profile profile) {
LocalBluetoothProfileManager profileManager =
LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
int status = profileManager.getConnectionStatus(mAddress);
int status = profileManager.getConnectionStatus(device.mAddress);
if (SettingsBtStatus.isConnectionStatusConnected(status)) {
profileManager.disconnect(mAddress);
if (profileManager.disconnect(device.mAddress) == BluetoothDevice.RESULT_SUCCESS) {
return true;
}
}
return false;
}
public void askDisconnect() {
@@ -153,7 +348,7 @@ public class LocalBluetoothDevice implements Comparable<LocalBluetoothDevice> {
LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
if (profileManager.isPreferred(mAddress)) {
hasAtLeastOnePreferredProfile = true;
connectInt(profile);
queueCommand(new BluetoothJob(BluetoothCommand.CONNECT, this, profile));
}
}
@@ -173,27 +368,30 @@ public class LocalBluetoothDevice implements Comparable<LocalBluetoothDevice> {
LocalBluetoothProfileManager profileManager =
LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
profileManager.setPreferred(mAddress, true);
connectInt(profile);
queueCommand(new BluetoothJob(BluetoothCommand.CONNECT, this, profile));
}
}
public void connect(Profile profile) {
// Reset the only-show-one-error-dialog tracking variable
mIsConnectingErrorPossible = true;
connectInt(profile);
queueCommand(new BluetoothJob(BluetoothCommand.CONNECT, this, profile));
}
public void connectInt(Profile profile) {
if (!ensurePaired()) return;
private boolean connectInt(LocalBluetoothDevice device, Profile profile) {
if (!device.ensurePaired()) return false;
LocalBluetoothProfileManager profileManager =
LocalBluetoothProfileManager.getProfileManager(mLocalManager, profile);
int status = profileManager.getConnectionStatus(mAddress);
int status = profileManager.getConnectionStatus(device.mAddress);
if (!SettingsBtStatus.isConnectionStatusConnected(status)) {
if (profileManager.connect(mAddress) != BluetoothDevice.RESULT_SUCCESS) {
Log.i(TAG, "Failed to connect " + profile.toString() + " to " + mName);
if (profileManager.connect(device.mAddress) == BluetoothDevice.RESULT_SUCCESS) {
return true;
}
Log.i(TAG, "Failed to connect " + profile.toString() + " to " + device.mName);
}
Log.i(TAG, "Not connected");
return false;
}
public void showConnectingError() {
@@ -228,6 +426,24 @@ public class LocalBluetoothDevice implements Comparable<LocalBluetoothDevice> {
}
public void unpair() {
synchronized (workQueue) {
// Remove any pending commands for this device
boolean processNow = false;
Iterator<BluetoothJob> it = workQueue.iterator();
while (it.hasNext()) {
BluetoothJob job = it.next();
if (job.device.mAddress.equals(this.mAddress)) {
it.remove();
if (job.timeSent != 0) {
processNow = true;
}
}
}
if (processNow) {
processCommands();
}
}
BluetoothDevice manager = mLocalManager.getBluetoothManager();
switch (getBondState()) {

View File

@@ -16,11 +16,8 @@
package com.android.settings.bluetooth;
import android.app.AlertDialog;
import android.bluetooth.BluetoothDevice;
import android.util.Log;
import android.widget.Toast;
import android.content.Context;
import com.android.settings.R;
import com.android.settings.bluetooth.LocalBluetoothManager.Callback;
@@ -190,10 +187,13 @@ public class LocalBluetoothDeviceManager {
R.string.bluetooth_pairing_error_message);
}
public synchronized void onProfileStateChanged(String address) {
public synchronized void onProfileStateChanged(String address, boolean transientState) {
LocalBluetoothDevice device = findDevice(address);
if (device == null) return;
if (!transientState) {
device.onProfileStateChanged();
}
device.refresh();
}

View File

@@ -25,6 +25,8 @@ import android.app.Activity;
import android.app.AlertDialog;
import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothError;
import android.bluetooth.BluetoothIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -40,8 +42,6 @@ public class LocalBluetoothManager {
private static final String TAG = "LocalBluetoothManager";
static final boolean V = true;
public static final String EXTENDED_BLUETOOTH_STATE_CHANGED_ACTION =
"com.android.settings.bluetooth.intent.action.EXTENDED_BLUETOOTH_STATE_CHANGED";
private static final String SHARED_PREFERENCES_NAME = "bluetooth_settings";
private static LocalBluetoothManager INSTANCE;
@@ -60,8 +60,7 @@ public class LocalBluetoothManager {
private BluetoothEventRedirector mEventRedirector;
private BluetoothA2dp mBluetoothA2dp;
public static enum ExtendedBluetoothState { ENABLED, ENABLING, DISABLED, DISABLING, UNKNOWN }
private ExtendedBluetoothState mState = ExtendedBluetoothState.UNKNOWN;
private int mState = BluetoothError.ERROR;
private List<Callback> mCallbacks = new ArrayList<Callback>();
@@ -182,34 +181,27 @@ public class LocalBluetoothManager {
}
}
public ExtendedBluetoothState getBluetoothState() {
public int getBluetoothState() {
if (mState == ExtendedBluetoothState.UNKNOWN) {
if (mState == BluetoothError.ERROR) {
syncBluetoothState();
}
return mState;
}
void setBluetoothStateInt(ExtendedBluetoothState state) {
void setBluetoothStateInt(int state) {
mState = state;
/*
* TODO: change to callback method. originally it was broadcast to
* parallel the framework's method, but it just complicates things here.
*/
// If this were a real API, I'd add as an extra
mContext.sendBroadcast(new Intent(EXTENDED_BLUETOOTH_STATE_CHANGED_ACTION));
if (state == ExtendedBluetoothState.ENABLED || state == ExtendedBluetoothState.DISABLED) {
mLocalDeviceManager.onBluetoothStateChanged(state == ExtendedBluetoothState.ENABLED);
if (state == BluetoothDevice.BLUETOOTH_STATE_ON ||
state == BluetoothDevice.BLUETOOTH_STATE_OFF) {
mLocalDeviceManager.onBluetoothStateChanged(state == BluetoothDevice.BLUETOOTH_STATE_ON);
}
}
private void syncBluetoothState() {
setBluetoothStateInt(mManager.isEnabled()
? ExtendedBluetoothState.ENABLED
: ExtendedBluetoothState.DISABLED);
? BluetoothDevice.BLUETOOTH_STATE_ON
: BluetoothDevice.BLUETOOTH_STATE_OFF);
}
public void setBluetoothEnabled(boolean enabled) {
@@ -219,8 +211,8 @@ public class LocalBluetoothManager {
if (wasSetStateSuccessful) {
setBluetoothStateInt(enabled
? ExtendedBluetoothState.ENABLING
: ExtendedBluetoothState.DISABLING);
? BluetoothDevice.BLUETOOTH_STATE_TURNING_ON
: BluetoothDevice.BLUETOOTH_STATE_TURNING_OFF);
} else {
if (V) {
Log.v(TAG,

View File

@@ -72,19 +72,22 @@ public abstract class LocalBluetoothProfileManager {
/**
* Temporary method to fill profiles based on a device's class.
*
* NOTE: This list happens to define the connection order. We should put this logic in a more
* well known place when this method is no longer temporary.
*
* @param btClass The class
* @param profiles The list of profiles to fill
*/
public static void fill(int btClass, List<Profile> profiles) {
profiles.clear();
if (BluetoothA2dp.doesClassMatchSink(btClass)) {
profiles.add(Profile.A2DP);
}
if (BluetoothHeadset.doesClassMatch(btClass)) {
profiles.add(Profile.HEADSET);
}
if (BluetoothA2dp.doesClassMatchSink(btClass)) {
profiles.add(Profile.A2DP);
}
}
protected LocalBluetoothProfileManager(LocalBluetoothManager localManager) {
@@ -214,7 +217,7 @@ public abstract class LocalBluetoothProfileManager {
*/
String address = mService.getHeadsetAddress();
if (TextUtils.isEmpty(address)) return;
mLocalManager.getLocalDeviceManager().onProfileStateChanged(address);
mLocalManager.getLocalDeviceManager().onProfileStateChanged(address, true);
}
});
}

View File

@@ -74,7 +74,6 @@ public class Status extends PreferenceActivity {
private Resources mRes;
private Preference mSignalStrength;
private Preference mUptime;
private Preference mAwakeTime;
private static String sUnknown;
@@ -178,9 +177,9 @@ public class Status extends PreferenceActivity {
}
mPhone = PhoneFactory.getDefaultPhone();
mSignalStrength = findPreference("signal_strength");
// Note - missing in zaku build, be careful later...
mSignalStrength = findPreference("signal_strength");
mUptime = findPreference("up_time");
mAwakeTime = findPreference("awake_time");
setSummaryText("imei", mPhone.getDeviceId());
setSummaryText("imei_sv",
@@ -238,11 +237,13 @@ public class Status extends PreferenceActivity {
}
private void setSummaryText(String preference, String text) {
if (TextUtils.isEmpty(text)) {
text = sUnknown;
}
findPreference(preference).setSummary(text);
if (TextUtils.isEmpty(text)) {
text = sUnknown;
}
// some preferences may be missing
if (findPreference(preference) != null) {
findPreference(preference).setSummary(text);
}
}
private void updateNetworkType() {
@@ -300,27 +301,30 @@ public class Status extends PreferenceActivity {
}
void updateSignalStrength() {
int state =
mPhoneStateReceiver.getServiceState().getState();
Resources r = getResources();
// not loaded in some versions of the code (e.g., zaku)
if (mSignalStrength != null) {
int state =
mPhoneStateReceiver.getServiceState().getState();
Resources r = getResources();
if ((ServiceState.STATE_OUT_OF_SERVICE == state) ||
(ServiceState.STATE_POWER_OFF == state)) {
mSignalStrength.setSummary("0");
if ((ServiceState.STATE_OUT_OF_SERVICE == state) ||
(ServiceState.STATE_POWER_OFF == state)) {
mSignalStrength.setSummary("0");
}
int signalDbm = mPhoneStateReceiver.getSignalStrengthDbm();
if (-1 == signalDbm) signalDbm = 0;
int signalAsu = mPhoneStateReceiver.getSignalStrength();
if (-1 == signalAsu) signalAsu = 0;
mSignalStrength.setSummary(String.valueOf(signalDbm) + " "
+ r.getString(R.string.radioInfo_display_dbm) + " "
+ String.valueOf(signalAsu) + " "
+ r.getString(R.string.radioInfo_display_asu));
}
int signalDbm = mPhoneStateReceiver.getSignalStrengthDbm();
if (-1 == signalDbm) signalDbm = 0;
int signalAsu = mPhoneStateReceiver.getSignalStrength();
if (-1 == signalAsu) signalAsu = 0;
mSignalStrength.setSummary(String.valueOf(signalDbm) + " "
+ r.getString(R.string.radioInfo_display_dbm) + " "
+ String.valueOf(signalAsu) + " "
+ r.getString(R.string.radioInfo_display_asu));
}
private void setWifiStatus() {
@@ -357,7 +361,6 @@ public class Status extends PreferenceActivity {
}
mUptime.setSummary(convert(ut));
mAwakeTime.setSummary(convert(at) + " (" + (((1000 * at / ut) + 5) / 10) + "%)");
}
private String pad(int n) {