auto import from //branches/cupcake/...@131421

This commit is contained in:
The Android Open Source Project
2009-02-13 12:57:53 -08:00
parent 1feaa85791
commit b9f5851434
11 changed files with 259 additions and 1448 deletions

View File

@@ -479,7 +479,7 @@
<activity android:name="GadgetPickActivity" android:label="@string/gadget_picker_title"> <activity android:name="GadgetPickActivity" android:label="@string/gadget_picker_title">
<intent-filter> <intent-filter>
<action android:name="android.gadget.action.PICK_GADGET" /> <action android:name="android.gadget.action.GADGET_PICK" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
</activity> </activity>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -20,19 +20,17 @@
android:layout_height="fill_parent"> android:layout_height="fill_parent">
<ListView <ListView
android:id="@android:id/list" android:id="@android:id/list"
android:layout_weight="1"
android:drawSelectorOnTop="false" android:drawSelectorOnTop="false"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent"> android:layout_height="wrap_content" />
</ListView> <TextView android:id="@+id/empty_view"
<TextView android:id="@android:id/empty"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingLeft="20dip" android:paddingLeft="20dip"
android:paddingTop="5dip" android:paddingTop="5dip"
android:text="@string/empty_list_msg" android:text="@string/empty_list_msg"
android:textSize="15sp" /> android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout> </LinearLayout>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,19 @@
<?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.
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="applications_settings_summary">"Installerte applikasjoner, hurtigtaster"</string>
</resources>

View File

@@ -49,8 +49,7 @@
<string name="radioInfo_lac">"LAC"</string> <string name="radioInfo_lac">"LAC"</string>
<string name="radioInfo_cid">"CID"</string> <string name="radioInfo_cid">"CID"</string>
<string name="sdcard_unmount">"Unmount SD card"</string> <string name="sdcard_unmount">"Unmount SD card"</string>
<!-- no translation found for sdcard_format (362497552060004057) --> <string name="sdcard_format">"Format SD card"</string>
<skip />
<string name="small_font">"Liten"</string> <string name="small_font">"Liten"</string>
<string name="medium_font">"Middels"</string> <string name="medium_font">"Middels"</string>
<string name="large_font">"Stor"</string> <string name="large_font">"Stor"</string>
@@ -160,8 +159,7 @@
<string name="radio_info_smsc_label">"SMSC:"</string> <string name="radio_info_smsc_label">"SMSC:"</string>
<string name="radio_info_smsc_update_label">"Update"</string> <string name="radio_info_smsc_update_label">"Update"</string>
<string name="radio_info_smsc_refresh_label">"Refresh"</string> <string name="radio_info_smsc_refresh_label">"Refresh"</string>
<!-- no translation found for radio_info_toggle_dns_check_label (8292252930563286858) --> <string name="radio_info_toggle_dns_check_label">"Toggle DNS check"</string>
<skip />
<string name="band_mode_title">"Velg GSM/UMTS-bånd"</string> <string name="band_mode_title">"Velg GSM/UMTS-bånd"</string>
<string name="band_mode_loading">"Henter båndliste…"</string> <string name="band_mode_loading">"Henter båndliste…"</string>
<string name="band_mode_set">"Velg"</string> <string name="band_mode_set">"Velg"</string>
@@ -184,8 +182,7 @@
<string name="activity_picker_label">"Velg aktivitet"</string> <string name="activity_picker_label">"Velg aktivitet"</string>
<string name="device_info_label">"Enhetsinformasjon"</string> <string name="device_info_label">"Enhetsinformasjon"</string>
<string name="battery_info_label">"Batteriinformasjon"</string> <string name="battery_info_label">"Batteriinformasjon"</string>
<!-- no translation found for battery_history_label (8242244969757414501) --> <string name="battery_history_label">"Batterihistorikk"</string>
<skip />
<string name="display_label">"Skjerm"</string> <string name="display_label">"Skjerm"</string>
<string name="phone_info_label">"Telefoninformasjon"</string> <string name="phone_info_label">"Telefoninformasjon"</string>
<string name="sd_card_settings_label">"Minnekort"</string> <string name="sd_card_settings_label">"Minnekort"</string>
@@ -317,12 +314,9 @@
<string name="wifi_setting_num_channels_summary">"Velg antall kanaler som skal brukes"</string> <string name="wifi_setting_num_channels_summary">"Velg antall kanaler som skal brukes"</string>
<string name="wifi_setting_num_channels_error">"Kunne ikke velge juridisk område."</string> <string name="wifi_setting_num_channels_error">"Kunne ikke velge juridisk område."</string>
<string name="wifi_setting_num_channels_channel_phrase">"<xliff:g id="NUM_CHANNELS">%1$d</xliff:g> kanaler"</string> <string name="wifi_setting_num_channels_channel_phrase">"<xliff:g id="NUM_CHANNELS">%1$d</xliff:g> kanaler"</string>
<!-- no translation found for wifi_setting_sleep_policy_title (1367731352485585528) --> <string name="wifi_setting_sleep_policy_title">"Soveinnstillinger for trådløst nett"</string>
<skip /> <string name="wifi_setting_sleep_policy_summary">"Spesifiser når telefonen skal bytte fra trådløsnett til mobiltelefonidata"</string>
<!-- no translation found for wifi_setting_sleep_policy_summary (7573693311804602041) --> <string name="wifi_setting_sleep_policy_error">"Det oppsto et problem under setting av soveinnstilling."</string>
<skip />
<!-- no translation found for wifi_setting_sleep_policy_error (5103670439972135148) -->
<skip />
<string name="wifi_advanced_mac_address_title">"MAC-adresse"</string> <string name="wifi_advanced_mac_address_title">"MAC-adresse"</string>
<string name="fragment_status_scanning">"Søker…"</string> <string name="fragment_status_scanning">"Søker…"</string>
<string name="fragment_status_connecting">"Kobler til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</string> <string name="fragment_status_connecting">"Kobler til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</string>
@@ -365,12 +359,9 @@
<string name="sound_effects_enable_title">"Hørbart valg"</string> <string name="sound_effects_enable_title">"Hørbart valg"</string>
<string name="sound_effects_enable_summary_on">"Lag lyd under skjermvalg"</string> <string name="sound_effects_enable_summary_on">"Lag lyd under skjermvalg"</string>
<string name="sound_effects_enable_summary_off">"Lag lyd under skjermvalg"</string> <string name="sound_effects_enable_summary_off">"Lag lyd under skjermvalg"</string>
<!-- no translation found for play_media_notification_sounds_enable_title (1008791464029179529) --> <string name="play_media_notification_sounds_enable_title">"Varsling for minnekort"</string>
<skip /> <string name="play_media_notification_sounds_enable_summary_on">"Deaktiver varslingslyder for minnekort"</string>
<!-- no translation found for play_media_notification_sounds_enable_summary_on (426729807044947187) --> <string name="play_media_notification_sounds_enable_summary_off">"Aktiver varslingslyder for minnekort"</string>
<skip />
<!-- no translation found for play_media_notification_sounds_enable_summary_off (803791141563778934) -->
<skip />
<string name="sync_settings">"Datasynkronisering"</string> <string name="sync_settings">"Datasynkronisering"</string>
<string name="sync_settings_summary">"Applikasjoner som skal synkroniseres"</string> <string name="sync_settings_summary">"Applikasjoner som skal synkroniseres"</string>
<string name="display_settings">"Skjerminnstillinger"</string> <string name="display_settings">"Skjerminnstillinger"</string>
@@ -378,11 +369,9 @@
<string name="animations_summary_on">"Vis animasjon når vinduer åpnes/lukkes"</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> <string name="animations_summary_off">"Vis animasjon når vinduer åpnes/lukkes"</string>
<string name="brightness">"Lysstyrke"</string> <string name="brightness">"Lysstyrke"</string>
<!-- no translation found for brightness_summary (838917350127550703) --> <string name="brightness_summary">"Juster skjermens lysstyrke"</string>
<skip />
<string name="screen_timeout">"Skjermsparer"</string> <string name="screen_timeout">"Skjermsparer"</string>
<!-- no translation found for screen_timeout_summary (2905757633140605334) --> <string name="screen_timeout_summary">"Juster hvor lang tid som skal gå før skjermen slås av automatisk"</string>
<skip />
<string name="sim_lock_settings">"Innstillinger for SIM-kort-lås"</string> <string name="sim_lock_settings">"Innstillinger for SIM-kort-lås"</string>
<string name="sim_lock_settings_category">"Sett opp SIM-kort-lås"</string> <string name="sim_lock_settings_category">"Sett opp SIM-kort-lås"</string>
<string name="sim_lock_settings_title">"SIM-kort-lås"</string> <string name="sim_lock_settings_title">"SIM-kort-lås"</string>
@@ -428,10 +417,8 @@
<string name="status_wifi_mac_address">"MAC-adresse for WLAN"</string> <string name="status_wifi_mac_address">"MAC-adresse for WLAN"</string>
<string name="status_bt_address">"Bluetooth-adresse"</string> <string name="status_bt_address">"Bluetooth-adresse"</string>
<string name="status_unavailable">"Ikke tilgjengelig"</string> <string name="status_unavailable">"Ikke tilgjengelig"</string>
<!-- no translation found for status_network_traffic_stats (2089739529980224804) --> <string name="status_network_traffic_stats">"Nettverksbruk"</string>
<skip /> <string name="status_network_traffic_summary">"Sendt: <xliff:g id="NETWORK_TRAFFIC_0">%1$d packets, %2$d bytes%n</xliff:g>Mottatt: <xliff:g id="NETWORK_TRAFFIC_1">%3$d packets, %4$d bytes</xliff:g>"</string>
<!-- no translation found for status_network_traffic_summary (1456797220417923108) -->
<skip />
<string name="status_up_time">"Oppetid"</string> <string name="status_up_time">"Oppetid"</string>
<string name="status_awake_time">"Våken tid"</string> <string name="status_awake_time">"Våken tid"</string>
<string name="internal_memory">"Intern lagringsplass"</string> <string name="internal_memory">"Intern lagringsplass"</string>
@@ -439,12 +426,9 @@
<string name="memory_available">"Tilgjengelig plass"</string> <string name="memory_available">"Tilgjengelig plass"</string>
<string name="memory_size">"Total plass"</string> <string name="memory_size">"Total plass"</string>
<string name="sd_eject">"Avmonter/løs ut minnekort"</string> <string name="sd_eject">"Avmonter/løs ut minnekort"</string>
<!-- no translation found for sd_eject_summary (3315557796211542962) --> <string name="sd_eject_summary">"Løs ut minnekortet for trygg fjerning"</string>
<skip /> <string name="sd_format">"Formater minnekort"</string>
<!-- no translation found for sd_format (5448738337382712203) --> <string name="sd_format_summary">"Formater (fjern alt fra) minnekortet"</string>
<skip />
<!-- no translation found for sd_format_summary (6616491027883134004) -->
<skip />
<string name="sd_unavailable">"Ikke tilgjengelig"</string> <string name="sd_unavailable">"Ikke tilgjengelig"</string>
<string name="read_only">"(skrivebeskyttet)"</string> <string name="read_only">"(skrivebeskyttet)"</string>
<string name="battery_status_title">"Batteristatus"</string> <string name="battery_status_title">"Batteristatus"</string>
@@ -483,22 +467,14 @@
<string name="master_clear_gesture_prompt">"Tegn opplåsingsmønsteret"</string> <string name="master_clear_gesture_prompt">"Tegn opplåsingsmønsteret"</string>
<string name="master_clear_gesture_explanation">"Du må tegne opplåsingsmønsteret for å bekrefte nullstilling av telefonen."</string> <string name="master_clear_gesture_explanation">"Du må tegne opplåsingsmønsteret for å bekrefte nullstilling av telefonen."</string>
<string name="master_clear_failed">"Telefonen ble ikke nullstilt fordi nullstillingstjenesten ikke er tilgjengelig."</string> <string name="master_clear_failed">"Telefonen ble ikke nullstilt fordi nullstillingstjenesten ikke er tilgjengelig."</string>
<!-- no translation found for media_format_title (4671276096695789895) --> <string name="media_format_title">"Formater minnekort"</string>
<skip /> <string name="media_format_summary">"Sletter alle data fra minnekortet"</string>
<!-- no translation found for media_format_summary (3805714639375830120) --> <string name="media_format_desc">"Dette valget vil slette alle data fra minnekortet i telefonen. Du vil miste ALLE data på kortet!"</string>
<skip /> <string name="media_format_button_text">"Formater minnekort"</string>
<!-- no translation found for media_format_desc (1142563222357820834) --> <string name="media_format_final_desc">"Formater minnekortet? Dette vil fjerne alle data, og kan ikke gjøres om!"</string>
<skip /> <string name="media_format_final_button_text">"Slett alt"</string>
<!-- no translation found for media_format_button_text (370856400090190151) --> <string name="media_format_gesture_prompt">"Tegn opplåsingsmønsteret"</string>
<skip /> <string name="media_format_gesture_explanation">"Du må tegne opplåsingsmønsteret for å bekrefte formatering av minnekortet."</string>
<!-- no translation found for media_format_final_desc (1776666694910717198) -->
<skip />
<!-- no translation found for media_format_final_button_text (4881713344315923175) -->
<skip />
<!-- no translation found for media_format_gesture_prompt (3109349468816856670) -->
<skip />
<!-- no translation found for media_format_gesture_explanation (4239529439389660159) -->
<skip />
<string name="call_settings_title">"Samtaleinnstillinger"</string> <string name="call_settings_title">"Samtaleinnstillinger"</string>
<string name="call_settings_summary">"Telefonsvarer, viderekobling, samtale venter, nummervisning"</string> <string name="call_settings_summary">"Telefonsvarer, viderekobling, samtale venter, nummervisning"</string>
<string name="network_settings_title">"Mobile nettverk"</string> <string name="network_settings_title">"Mobile nettverk"</string>
@@ -552,8 +528,7 @@
<string name="lock_example_title">"Eksempelmønster"</string> <string name="lock_example_title">"Eksempelmønster"</string>
<string name="lock_example_message">"Tegn over minst fire prikker."\n" "\n"Velg «Neste» når du er klar til å tegne ditt eget mønster."</string> <string name="lock_example_message">"Tegn over minst fire prikker."\n" "\n"Velg «Neste» når du er klar til å tegne ditt eget mønster."</string>
<string name="manageapplications_settings_title">"Installerte applikasjoner"</string> <string name="manageapplications_settings_title">"Installerte applikasjoner"</string>
<!-- no translation found for manageapplications_settings_summary (6097117021500651232) --> <string name="manageapplications_settings_summary">"Hold orden på og fjern installerte applikasjoner"</string>
<skip />
<string name="applications_settings">"Applikasjoner"</string> <string name="applications_settings">"Applikasjoner"</string>
<string name="applications_settings_summary">"Installerte applikasjoner, hurtigtaster"</string> <string name="applications_settings_summary">"Installerte applikasjoner, hurtigtaster"</string>
<string name="applications_settings_header">"Innstillinger for applikasjoner"</string> <string name="applications_settings_header">"Innstillinger for applikasjoner"</string>
@@ -567,10 +542,8 @@
<string name="cache_header_label">"Hurtiglager"</string> <string name="cache_header_label">"Hurtiglager"</string>
<string name="clear_cache_btn_text">"Fjern hurtiglager"</string> <string name="clear_cache_btn_text">"Fjern hurtiglager"</string>
<string name="cache_size_label">"Hurtiglager"</string> <string name="cache_size_label">"Hurtiglager"</string>
<!-- no translation found for controls_label (7611113077086853799) --> <string name="controls_label">"Kontroller"</string>
<skip /> <string name="force_stop">"Tving avslutning"</string>
<!-- no translation found for force_stop (7435006169872876756) -->
<skip />
<string name="total_size_label">"Totalt"</string> <string name="total_size_label">"Totalt"</string>
<string name="application_size_label">"Applikasjon"</string> <string name="application_size_label">"Applikasjon"</string>
<string name="data_size_label">"Data"</string> <string name="data_size_label">"Data"</string>
@@ -583,10 +556,8 @@
<string name="sort_order_alpha">"Sorter"</string> <string name="sort_order_alpha">"Sorter"</string>
<string name="sort_order_size">"Sorter etter størrelse"</string> <string name="sort_order_size">"Sorter etter størrelse"</string>
<string name="manage_space_text">"Styr plass"</string> <string name="manage_space_text">"Styr plass"</string>
<!-- no translation found for filter (2018011724373033887) --> <string name="filter">"Filter"</string>
<skip /> <string name="filter_dlg_title">"Velg filtreringsinnstillinger"</string>
<!-- no translation found for filter_dlg_title (6507663329723966854) -->
<skip />
<string name="filter_apps_all">"Alle"</string> <string name="filter_apps_all">"Alle"</string>
<string name="filter_apps_third_party">"Tredjeparts"</string> <string name="filter_apps_third_party">"Tredjeparts"</string>
<string name="filter_apps_running">"Kjører"</string> <string name="filter_apps_running">"Kjører"</string>
@@ -608,39 +579,28 @@
<string name="language_category">"Innstillinger for språk"</string> <string name="language_category">"Innstillinger for språk"</string>
<string name="text_category">"Tekstinnstillinger"</string> <string name="text_category">"Tekstinnstillinger"</string>
<string name="phone_language">"Språk"</string> <string name="phone_language">"Språk"</string>
<!-- no translation found for phone_language_summary (1809580675831352352) --> <string name="phone_language_summary">"Velg språk og region"</string>
<skip />
<string name="auto_replace">"Automatisk erstatting"</string> <string name="auto_replace">"Automatisk erstatting"</string>
<string name="auto_replace_summary">"Rett opp stavefeil"</string> <string name="auto_replace_summary">"Rett opp stavefeil"</string>
<string name="auto_caps">"Stor forbokstav"</string> <string name="auto_caps">"Stor forbokstav"</string>
<string name="auto_caps_summary">"Start automatisk setninger med stor bokstav"</string> <string name="auto_caps_summary">"Start automatisk setninger med stor bokstav"</string>
<string name="auto_punctuate">"Autopunktum"</string> <string name="auto_punctuate">"Autopunktum"</string>
<!-- no translation found for hardkeyboard_category (5957168411305769899) --> <string name="hardkeyboard_category">"Innstillinger for fysisk tastatur"</string>
<skip />
<string name="auto_punctuate_summary">"Trykk mellomromstasten to ganger for å skrive punktum"</string> <string name="auto_punctuate_summary">"Trykk mellomromstasten to ganger for å skrive punktum"</string>
<string name="show_password">"Synlige passord"</string> <string name="show_password">"Synlige passord"</string>
<string name="show_password_summary">"Vis passord mens de skrives inn"</string> <string name="show_password_summary">"Vis passord mens de skrives inn"</string>
<!-- no translation found for user_dict_settings_titlebar (765659257455000490) --> <string name="user_dict_settings_titlebar">"Ordliste"</string>
<skip /> <string name="user_dict_settings_title">"Ordliste"</string>
<!-- no translation found for user_dict_settings_title (8357027437499042191) --> <string name="user_dict_settings_summary">"Legg til og fjern ord fra ordlisten"</string>
<skip /> <string name="user_dict_settings_add_menu_title">"Legg til"</string>
<!-- no translation found for user_dict_settings_summary (2460427065601355471) --> <string name="user_dict_settings_add_dialog_title">"Legg til ordliste"</string>
<skip /> <string name="user_dict_settings_context_menu_edit_title">"Rediger"</string>
<!-- no translation found for user_dict_settings_add_menu_title (4056762757149923551) --> <string name="user_dict_settings_context_menu_delete_title">"Slett"</string>
<skip /> <string name="user_dict_settings_empty_text">"Ordlisten er tom. Du kan legge til ord i menyen."</string>
<!-- no translation found for user_dict_settings_add_dialog_title (4702613990174126482) -->
<skip />
<!-- no translation found for user_dict_settings_context_menu_edit_title (2210564879320004837) -->
<skip />
<!-- no translation found for user_dict_settings_context_menu_delete_title (9140703913776549054) -->
<skip />
<!-- no translation found for user_dict_settings_empty_text (6209268025109242806) -->
<skip />
<string name="testing">"Testing"</string> <string name="testing">"Testing"</string>
<string name="testing_phone_info">"Telefoninformasjon"</string> <string name="testing_phone_info">"Telefoninformasjon"</string>
<string name="testing_battery_info">"Batteriinformasjon"</string> <string name="testing_battery_info">"Batteriinformasjon"</string>
<!-- no translation found for testing_battery_history (3043329445810695647) --> <string name="testing_battery_history">"Batterihistorikk"</string>
<skip />
<string name="quick_launch_title">"Hurtigtaster"</string> <string name="quick_launch_title">"Hurtigtaster"</string>
<string name="quick_launch_summary">"Tastatursnarveier for å starte applikasjoner"</string> <string name="quick_launch_summary">"Tastatursnarveier for å starte applikasjoner"</string>
<string name="quick_launch_assign_application">"Tilordne applikasjon"</string> <string name="quick_launch_assign_application">"Tilordne applikasjon"</string>
@@ -654,8 +614,7 @@
<string name="quick_launch_display_mode_shortcuts">"Snarveier"</string> <string name="quick_launch_display_mode_shortcuts">"Snarveier"</string>
<string name="input_methods_settings_title">"Skriving av tekst"</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_summary">"Innstillinger for skriving av tekst"</string>
<!-- no translation found for input_methods_settings_label_format (4882768027634191074) --> <string name="input_methods_settings_label_format">"Innstillinger for %s"</string>
<skip />
<string name="development_settings_title">"Utvikling"</string> <string name="development_settings_title">"Utvikling"</string>
<string name="development_settings_summary">"Innstillinger for applikasjonsutvikling"</string> <string name="development_settings_summary">"Innstillinger for applikasjonsutvikling"</string>
<string name="enable_adb">"USB-debugging"</string> <string name="enable_adb">"USB-debugging"</string>
@@ -664,68 +623,36 @@
<string name="keep_screen_on_summary">"Skjermen vil aldri blankes under lading"</string> <string name="keep_screen_on_summary">"Skjermen vil aldri blankes under lading"</string>
<string name="allow_mock_location">"Tillat manuell plassering"</string> <string name="allow_mock_location">"Tillat manuell plassering"</string>
<string name="allow_mock_location_summary">"Tillat manuell plassering"</string> <string name="allow_mock_location_summary">"Tillat manuell plassering"</string>
<!-- no translation found for battery_history_known_apps (6907374478255786240) --> <string name="battery_history_known_apps">"Android System;Dialer;Calendar;Camera;Google Apps;Contacts;"</string>
<skip /> <string name="gadget_picker_title">"Velg gadget"</string>
<!-- no translation found for gadget_picker_title (4335873961457985189) --> <string name="battery_history_details_for">"Detaljer for UID %d"</string>
<skip /> <string name="battery_history_uid">"UID <xliff:g id="USER_ID">%1$d</xliff:g>"</string>
<!-- no translation found for battery_history_details_for (5189636461798594740) --> <string name="battery_history_network_usage">"Nettbruk av <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
<skip /> <string name="battery_history_bytes_received">"Byte mottatt: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
<!-- no translation found for battery_history_uid (1016606150528436298) --> <string name="battery_history_bytes_sent">"Byte sendt: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
<skip /> <string name="battery_history_bytes_total">"Totalt antall byte: <xliff:g id="BYTES">%1$d</xliff:g>"</string>
<!-- no translation found for battery_history_network_usage (8010852371665217020) --> <string name="battery_history_cpu_usage">"CPU-bruk av <xliff:g id="APP_NAME">%1$s</xliff:g>:"</string>
<skip /> <string name="battery_history_user_time">"Brukertid:"</string>
<!-- no translation found for battery_history_bytes_received (980307569180518302) --> <string name="battery_history_system_time">"Systemtid:"</string>
<skip /> <string name="battery_history_total_time">"Total tid:"</string>
<!-- no translation found for battery_history_bytes_sent (2501748768602119159) --> <string name="battery_history_starts">"Oppstarter: <xliff:g id="STARTS">%1$d</xliff:g>"</string>
<skip /> <string name="battery_history_days">"<xliff:g id="DAYS">%1$d</xliff:g> dager, <xliff:g id="HOURS">%2$d</xliff:g> timer, <xliff:g id="MINUTES">%3$d</xliff:g> minutter, <xliff:g id="SECONDS">%4$d</xliff:g> sekunder"</string>
<!-- no translation found for battery_history_bytes_total (4444807574361642753) --> <string name="battery_history_hours">"<xliff:g id="HOURS">%1$d</xliff:g> timer, <xliff:g id="MINUTES">%2$d</xliff:g> minutter, <xliff:g id="SECONDS">%3$d</xliff:g> sekunder"</string>
<skip /> <string name="battery_history_minutes">"<xliff:g id="MINUTES">%1$d</xliff:g> minutter, <xliff:g id="SECONDS">%2$d</xliff:g> sekunder"</string>
<!-- no translation found for battery_history_cpu_usage (2597353713014790877) --> <string name="battery_history_seconds">"<xliff:g id="SECONDS">%1$d</xliff:g> sekunder"</string>
<skip /> <string name="battery_history_packages_sharing_this_uid">"Pakker som deler denne UID-en:"</string>
<!-- no translation found for battery_history_user_time (6227507614894791359) --> <string name="battery_history_no_data">"Ingen batterihistorikk tilgjengelig"</string>
<skip /> <string name="battery_history_sensor">"Sensor:"</string>
<!-- no translation found for battery_history_system_time (2015862072724507547) --> <string name="battery_history_used_by_packages">"Sensor brukt av pakker:"</string>
<skip /> <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>
<!-- no translation found for battery_history_total_time (3618703970098556104) --> <string name="battery_history_sensor_usage_multi">"Brukt <xliff:g id="COUNT">%1$d</xliff:g> ganger av en av:"</string>
<skip /> <string name="battery_history_screen_on">"Tid brukt med skjermen på:"</string>
<!-- no translation found for battery_history_starts (9137453931978571696) --> <string name="battery_history_screen_on_battery">"På batteri:"</string>
<skip /> <string name="battery_history_screen_on_plugged">"På nettstrøm:"</string>
<!-- no translation found for battery_history_days (6387593985264923377) --> <string name="usage_stats_label">"Bruksstatistikk"</string>
<skip /> <string name="testing_usage_stats">"Bruksstatistikk"</string>
<!-- no translation found for battery_history_hours (2593055276272350197) --> <string name="display_order_text">"Sorter etter:"</string>
<skip /> <string name="app_name_label">"Applikasjon"</string>
<!-- no translation found for battery_history_minutes (5608990219891318138) --> <string name="launch_count_label">"Antall"</string>
<skip /> <string name="usage_time_label">"Brukstid"</string>
<!-- no translation found for battery_history_seconds (7397664460929461350) -->
<skip />
<!-- no translation found for battery_history_packages_sharing_this_uid (4101596071379250050) -->
<skip />
<!-- no translation found for battery_history_no_data (1177238743237067617) -->
<skip />
<!-- no translation found for battery_history_sensor (2333488996028993982) -->
<skip />
<!-- no translation found for battery_history_used_by_packages (3000711380023436470) -->
<skip />
<!-- no translation found for battery_history_sensor_usage (3593133338613209024) -->
<skip />
<!-- no translation found for battery_history_sensor_usage_multi (4536084375991014508) -->
<skip />
<!-- no translation found for battery_history_screen_on (1377240025275657277) -->
<skip />
<!-- no translation found for battery_history_screen_on_battery (536058210445081888) -->
<skip />
<!-- no translation found for battery_history_screen_on_plugged (5019127390021871260) -->
<skip />
<!-- no translation found for usage_stats_label (5890846333487083609) -->
<skip />
<!-- no translation found for testing_usage_stats (7823048598893937339) -->
<skip />
<!-- no translation found for display_order_text (8592776965827565271) -->
<skip />
<!-- no translation found for app_name_label (2000949925256858308) -->
<skip />
<!-- no translation found for launch_count_label (4019444833263957024) -->
<skip />
<!-- no translation found for usage_time_label (295954901452833058) -->
<skip />
</resources> </resources>

View File

@@ -65,18 +65,24 @@ public class DeviceInfoSettings extends PreferenceActivity {
* Settings is a generic app and should not contain any device-specific * Settings is a generic app and should not contain any device-specific
* info. * info.
*/ */
// These are contained in the "container" preference group
PreferenceGroup parentPreference = (PreferenceGroup) findPreference(KEY_CONTAINER); PreferenceGroup parentPreference = (PreferenceGroup) findPreference(KEY_CONTAINER);
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_TERMS, Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_TERMS,
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY); Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_LICENSE, Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_LICENSE,
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY); Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_CONTRIBUTORS,
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_COPYRIGHT, Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_COPYRIGHT,
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY); Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_TEAM, Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_TEAM,
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY); Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_SYSTEM_UPDATE_SETTINGS,
// These are contained by the root preference screen
parentPreference = getPreferenceScreen();
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference,
KEY_SYSTEM_UPDATE_SETTINGS,
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
Utils.updatePreferenceToSpecificActivityOrRemove(this, parentPreference, KEY_CONTRIBUTORS,
Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY); Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
} }

View File

@@ -20,7 +20,7 @@ import android.app.LauncherActivity;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.gadget.GadgetInfo; import android.gadget.GadgetProviderInfo;
import android.gadget.GadgetManager; import android.gadget.GadgetManager;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
@@ -28,8 +28,11 @@ import android.view.View;
import android.widget.ListView; import android.widget.ListView;
import android.util.Log; import android.util.Log;
import java.text.Collator;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class GadgetPickActivity extends LauncherActivity public class GadgetPickActivity extends LauncherActivity
{ {
@@ -37,7 +40,6 @@ public class GadgetPickActivity extends LauncherActivity
GadgetManager mGadgetManager; GadgetManager mGadgetManager;
int mGadgetId; int mGadgetId;
int mHostId;
public GadgetPickActivity() { public GadgetPickActivity() {
mGadgetManager = GadgetManager.getInstance(this); mGadgetManager = GadgetManager.getInstance(this);
@@ -48,7 +50,6 @@ public class GadgetPickActivity extends LauncherActivity
super.onCreate(icicle); super.onCreate(icicle);
Bundle extras = getIntent().getExtras(); Bundle extras = getIntent().getExtras();
mHostId = extras.getInt(GadgetManager.EXTRA_HOST_ID);
mGadgetId = extras.getInt(GadgetManager.EXTRA_GADGET_ID); mGadgetId = extras.getInt(GadgetManager.EXTRA_GADGET_ID);
setResultData(RESULT_CANCELED); setResultData(RESULT_CANCELED);
@@ -65,7 +66,7 @@ public class GadgetPickActivity extends LauncherActivity
@Override @Override
public List<ListItem> makeListItems() { public List<ListItem> makeListItems() {
List<GadgetInfo> installed = mGadgetManager.getInstalledProviders(); List<GadgetProviderInfo> installed = mGadgetManager.getInstalledProviders();
PackageManager pm = getPackageManager(); PackageManager pm = getPackageManager();
Drawable defaultIcon = null; Drawable defaultIcon = null;
@@ -74,7 +75,7 @@ public class GadgetPickActivity extends LauncherActivity
ArrayList<ListItem> result = new ArrayList(); ArrayList<ListItem> result = new ArrayList();
final int N = installed.size(); final int N = installed.size();
for (int i=0; i<N; i++) { for (int i=0; i<N; i++) {
GadgetInfo info = installed.get(i); GadgetProviderInfo info = installed.get(i);
LauncherActivity.ListItem item = new LauncherActivity.ListItem(); LauncherActivity.ListItem item = new LauncherActivity.ListItem();
item.packageName = info.provider.getPackageName(); item.packageName = info.provider.getPackageName();
@@ -100,9 +101,16 @@ public class GadgetPickActivity extends LauncherActivity
result.add(item); result.add(item);
} }
Collections.sort(result, new Comparator<ListItem>() {
Collator mCollator = Collator.getInstance();
public int compare(ListItem lhs, ListItem rhs) {
return mCollator.compare(lhs.label, rhs.label);
}
});
return result; return result;
} }
void setResultData(int code) { void setResultData(int code) {
Intent result = new Intent(); Intent result = new Intent();
result.putExtra(GadgetManager.EXTRA_GADGET_ID, mGadgetId); result.putExtra(GadgetManager.EXTRA_GADGET_ID, mGadgetId);

View File

@@ -133,13 +133,14 @@ public class ManageApplications extends ListActivity implements
// messages posted to the handler // messages posted to the handler
private static final int HANDLER_MESSAGE_BASE = 0; private static final int HANDLER_MESSAGE_BASE = 0;
private static final int COMPUTE_PKG_SIZE_START = HANDLER_MESSAGE_BASE+1; private static final int INIT_PKG_INFO = HANDLER_MESSAGE_BASE+1;
private static final int COMPUTE_PKG_SIZE_DONE = HANDLER_MESSAGE_BASE+2; private static final int COMPUTE_PKG_SIZE_DONE = HANDLER_MESSAGE_BASE+2;
private static final int REMOVE_PKG = HANDLER_MESSAGE_BASE+3; private static final int REMOVE_PKG = HANDLER_MESSAGE_BASE+3;
private static final int REORDER_LIST = HANDLER_MESSAGE_BASE+4; 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_START = HANDLER_MESSAGE_BASE+5;
private static final int ADD_PKG_DONE = HANDLER_MESSAGE_BASE+6; 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 REFRESH_ICONS = HANDLER_MESSAGE_BASE+7;
private static final int NEXT_LOAD_STEP = HANDLER_MESSAGE_BASE+8;
// observer object used for computing pkg sizes // observer object used for computing pkg sizes
private PkgSizeObserver mObserver; private PkgSizeObserver mObserver;
@@ -150,7 +151,7 @@ public class ManageApplications extends ListActivity implements
private PackageIntentReceiver mReceiver; private PackageIntentReceiver mReceiver;
// atomic variable used to track if computing pkg sizes is in progress. should be volatile? // atomic variable used to track if computing pkg sizes is in progress. should be volatile?
private boolean mDoneIniting = false; private boolean mComputeSizes = false;
// default icon thats used when displaying applications initially before resource info is // default icon thats used when displaying applications initially before resource info is
// retrieved // retrieved
private Drawable mDefaultAppIcon; private Drawable mDefaultAppIcon;
@@ -189,6 +190,13 @@ public class ManageApplications extends ListActivity implements
//TODO implement a cache system //TODO implement a cache system
private Map<String, AppInfo> mAppPropCache; private Map<String, AppInfo> mAppPropCache;
// empty message displayed when list is empty
private TextView mEmptyView;
// Boolean variables indicating state
private boolean mLoadLabels = false;
private boolean mSizesFirst = false;
/* /*
* Handler class to handle messages for various operations * Handler class to handle messages for various operations
* Most of the operations that effect Application related data * Most of the operations that effect Application related data
@@ -232,11 +240,13 @@ public class ManageApplications extends ListActivity implements
pkgName = data.getString(ATTR_PKG_NAME); pkgName = data.getString(ATTR_PKG_NAME);
} }
switch (msg.what) { switch (msg.what) {
case COMPUTE_PKG_SIZE_START: case INIT_PKG_INFO:
if(localLOGV) Log.i(TAG, "Message COMPUTE_PKG_SIZE_START"); if(localLOGV) Log.i(TAG, "Message INIT_PKG_INFO");
setProgressBarIndeterminateVisibility(true); setProgressBarIndeterminateVisibility(true);
mComputeIndex = 0; mComputeIndex = 0;
// Retrieve the package list and init some structures
initAppList(mFilterApps); initAppList(mFilterApps);
mHandler.sendEmptyMessage(NEXT_LOAD_STEP);
break; break;
case COMPUTE_PKG_SIZE_DONE: case COMPUTE_PKG_SIZE_DONE:
if(localLOGV) Log.i(TAG, "Message COMPUTE_PKG_SIZE_DONE"); if(localLOGV) Log.i(TAG, "Message COMPUTE_PKG_SIZE_DONE");
@@ -297,9 +307,9 @@ public class ManageApplications extends ListActivity implements
COMPUTE_PKG_SIZE_DONE); COMPUTE_PKG_SIZE_DONE);
} else { } else {
// end computation here // end computation here
mDoneIniting = true; mComputeSizes = true;
mAppInfoAdapter.sortList(mSortOrder); mAppInfoAdapter.sortList(mSortOrder);
setProgressBarIndeterminateVisibility(false); mHandler.sendEmptyMessage(NEXT_LOAD_STEP);
} }
} }
break; break;
@@ -309,7 +319,7 @@ public class ManageApplications extends ListActivity implements
Log.w(TAG, "Ignoring message:REMOVE_PKG for null pkgName"); Log.w(TAG, "Ignoring message:REMOVE_PKG for null pkgName");
break; break;
} }
if (!mDoneIniting) { if (!mComputeSizes) {
Boolean currB = mAddRemoveMap.get(pkgName); Boolean currB = mAddRemoveMap.get(pkgName);
if (currB == null || (currB.equals(Boolean.TRUE))) { if (currB == null || (currB.equals(Boolean.TRUE))) {
mAddRemoveMap.put(pkgName, Boolean.FALSE); mAddRemoveMap.put(pkgName, Boolean.FALSE);
@@ -340,7 +350,7 @@ public class ManageApplications extends ListActivity implements
// Reset cache // Reset cache
mAppPropCache = null; mAppPropCache = null;
mFilterApps = FILTER_APPS_ALL; mFilterApps = FILTER_APPS_ALL;
mHandler.sendEmptyMessage(COMPUTE_PKG_SIZE_START); mHandler.sendEmptyMessage(INIT_PKG_INFO);
sendMessageToHandler(REORDER_LIST, menuOption); sendMessageToHandler(REORDER_LIST, menuOption);
} }
} }
@@ -351,7 +361,7 @@ public class ManageApplications extends ListActivity implements
Log.w(TAG, "Ignoring message:ADD_PKG_START for null pkgName"); Log.w(TAG, "Ignoring message:ADD_PKG_START for null pkgName");
break; break;
} }
if (!mDoneIniting) { if (!mComputeSizes) {
Boolean currB = mAddRemoveMap.get(pkgName); Boolean currB = mAddRemoveMap.get(pkgName);
if (currB == null || (currB.equals(Boolean.FALSE))) { if (currB == null || (currB.equals(Boolean.FALSE))) {
mAddRemoveMap.put(pkgName, Boolean.TRUE); mAddRemoveMap.put(pkgName, Boolean.TRUE);
@@ -380,23 +390,43 @@ public class ManageApplications extends ListActivity implements
if(iconMap == null) { if(iconMap == null) {
Log.w(TAG, "Error loading icons for applications"); Log.w(TAG, "Error loading icons for applications");
} else { } else {
mAppInfoAdapter.updateAppsResourceInfo(iconMap); mAppInfoAdapter.updateAppsResourceInfo(iconMap);
} }
// initiate compute pkg sizes mLoadLabels = true;
if (localLOGV) Log.i(TAG, "Initiating compute sizes for first time"); mHandler.sendEmptyMessage(NEXT_LOAD_STEP);
mObserver = new PkgSizeObserver(); break;
if (mAppInfoAdapter.getCount() > 0) { case NEXT_LOAD_STEP:
mObserver.invokeGetSizeInfo(mAppInfoAdapter.getApplicationInfo(0), if (mComputeSizes && mLoadLabels) {
COMPUTE_PKG_SIZE_DONE); doneLoadingData();
} else if (!mComputeSizes && !mLoadLabels) {
// Either load the package labels or initiate get size info
if (mSizesFirst) {
initComputeSizes();
} else {
initResourceThread();
}
} else { } else {
mDoneIniting = true; // 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 creating the list
createListView();
if (!mComputeSizes) {
initComputeSizes();
} else if (!mLoadLabels) {
initResourceThread();
}
} }
break;
default: default:
break; break;
} }
} }
}; };
private void doneLoadingData() {
setProgressBarIndeterminateVisibility(false);
}
List<ApplicationInfo> getInstalledApps(int filterOption) { List<ApplicationInfo> getInstalledApps(int filterOption) {
List<ApplicationInfo> installedAppList = mPm.getInstalledApplications( List<ApplicationInfo> installedAppList = mPm.getInstalledApplications(
PackageManager.GET_UNINSTALLED_PACKAGES); PackageManager.GET_UNINSTALLED_PACKAGES);
@@ -457,27 +487,54 @@ public class ManageApplications extends ListActivity implements
// some initialization code used when kicking off the size computation // some initialization code used when kicking off the size computation
private void initAppList(int filterOption) { private void initAppList(int filterOption) {
mDoneIniting = false; mComputeSizes = false;
// Initialize lists // Initialize lists
List<ApplicationInfo> appList = getInstalledApps(filterOption); List<ApplicationInfo> appList = getInstalledApps(filterOption);
mAddRemoveMap = new TreeMap<String, Boolean>(); mAddRemoveMap = new TreeMap<String, Boolean>();
mAppInfoAdapter = new AppInfoAdapter(this, appList); mAppInfoAdapter = new AppInfoAdapter(this, appList);
dismissLoadingMsg();
// get list and set listeners and adapter
ListView lv= (ListView) findViewById(android.R.id.list);
lv.setOnItemClickListener(this);
lv.setSaveEnabled(true);
lv.setItemsCanFocus(true);
lv.setOnItemClickListener(this);
lv.setAdapter(mAppInfoAdapter);
// register receiver // register receiver
mReceiver = new PackageIntentReceiver();
mReceiver.registerReceiver(); mReceiver.registerReceiver();
}
// Utility method to start a thread to read application labels and icons
private void initResourceThread() {
//load resources now //load resources now
if(mResourceThread.isAlive()) { if(mResourceThread.isAlive()) {
mResourceThread.interrupt(); mResourceThread.interrupt();
} }
mResourceThread.loadAllResources(appList); mResourceThread.loadAllResources(mAppInfoAdapter.getAppList());
}
private void initComputeSizes() {
// initiate compute pkg 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);
} else {
mComputeSizes = true;
}
}
private void showEmptyViewIfListEmpty() {
if (localLOGV) Log.i(TAG, "Checking for empty view");
if (mAppInfoAdapter.getCount() > 0) {
mEmptyView.setVisibility(View.GONE);
} else {
mEmptyView.setVisibility(View.VISIBLE);
}
}
private void createListView() {
dismissLoadingMsg();
// get list and set listeners and adapter
ListView lv= (ListView) findViewById(android.R.id.list);
lv.setAdapter(mAppInfoAdapter);
lv.setOnItemClickListener(this);
lv.setSaveEnabled(true);
lv.setItemsCanFocus(true);
lv.setOnItemClickListener(this);
showEmptyViewIfListEmpty();
} }
// internal structure used to track added and deleted packages when // internal structure used to track added and deleted packages when
@@ -495,21 +552,21 @@ public class ManageApplications extends ListActivity implements
List<ApplicationInfo> mAppList; List<ApplicationInfo> mAppList;
void loadAllResources(List<ApplicationInfo> appList) { void loadAllResources(List<ApplicationInfo> appList) {
if(appList == null || appList.size() <= 0) {
Log.w(TAG, "Empty or null application list");
return;
}
mAppList = appList; mAppList = appList;
start(); start();
} }
public void run() { public void run() {
Map<String, AppInfo> iconMap = new HashMap<String, AppInfo>(); Map<String, AppInfo> iconMap = new HashMap<String, AppInfo>();
for (ApplicationInfo appInfo : mAppList) { if(mAppList == null || mAppList.size() <= 0) {
CharSequence appName = appInfo.loadLabel(mPm); Log.w(TAG, "Empty or null application list");
Drawable appIcon = appInfo.loadIcon(mPm); } else {
iconMap.put(appInfo.packageName, for (ApplicationInfo appInfo : mAppList) {
new AppInfo(appInfo.packageName, appName, appIcon)); 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_ICONS); Message msg = mHandler.obtainMessage(REFRESH_ICONS);
msg.obj = iconMap; msg.obj = iconMap;
@@ -697,6 +754,10 @@ public class ManageApplications extends ListActivity implements
} }
public View getView(int position, View convertView, ViewGroup parent) { public View getView(int position, View convertView, ViewGroup parent) {
if (position >= mAppLocalList.size()) {
Log.w(TAG, "Invalid view position:"+position+", actual size is:"+mAppLocalList.size());
return null;
}
// A ViewHolder keeps references to children views to avoid unneccessary calls // A ViewHolder keeps references to children views to avoid unneccessary calls
// to findViewById() on each row. // to findViewById() on each row.
AppViewHolder holder; AppViewHolder holder;
@@ -773,7 +834,12 @@ public class ManageApplications extends ListActivity implements
mAppPropMap.put(applicationInfo.packageName, rInfo); mAppPropMap.put(applicationInfo.packageName, rInfo);
} }
} }
sortList(mSortOrder); if (mAppLocalList.size() > 0) {
sortList(mSortOrder);
} else {
notifyDataSetChanged();
}
showEmptyViewIfListEmpty();
return true; return true;
} }
@@ -927,7 +993,7 @@ public class ManageApplications extends ListActivity implements
* posts a message, we do a cursory check of validity on mAppInfoAdapter's applist * posts a message, we do a cursory check of validity on mAppInfoAdapter's applist
*/ */
private void clearMessagesInHandler() { private void clearMessagesInHandler() {
mHandler.removeMessages(COMPUTE_PKG_SIZE_START); mHandler.removeMessages(INIT_PKG_INFO);
mHandler.removeMessages(COMPUTE_PKG_SIZE_DONE); mHandler.removeMessages(COMPUTE_PKG_SIZE_DONE);
mHandler.removeMessages(REMOVE_PKG); mHandler.removeMessages(REMOVE_PKG);
mHandler.removeMessages(REORDER_LIST); mHandler.removeMessages(REORDER_LIST);
@@ -1040,12 +1106,14 @@ public class ManageApplications extends ListActivity implements
String action = lIntent.getAction(); String action = lIntent.getAction();
if (action.equals(Intent.ACTION_MANAGE_PACKAGE_STORAGE)) { if (action.equals(Intent.ACTION_MANAGE_PACKAGE_STORAGE)) {
mSortOrder = SORT_ORDER_SIZE; mSortOrder = SORT_ORDER_SIZE;
mSizesFirst = true;
} }
mPm = getPackageManager(); mPm = getPackageManager();
// initialize some window features // initialize some window features
requestWindowFeature(Window.FEATURE_RIGHT_ICON); requestWindowFeature(Window.FEATURE_RIGHT_ICON);
requestWindowFeature(Window.FEATURE_PROGRESS); requestWindowFeature(Window.FEATURE_PROGRESS);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.compute_sizes);
// init mLoadingDlg // init mLoadingDlg
mLoadingDlg = new ProgressDialog(this); mLoadingDlg = new ProgressDialog(this);
mLoadingDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER); mLoadingDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);
@@ -1058,6 +1126,9 @@ public class ManageApplications extends ListActivity implements
mComputingSizeStr = getText(R.string.computing_size); mComputingSizeStr = getText(R.string.computing_size);
// initialize the inflater // initialize the inflater
mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mReceiver = new PackageIntentReceiver();
mEmptyView = (TextView) findViewById(R.id.empty_view);
mObserver = new PkgSizeObserver();
} }
private void showLoadingMsg() { private void showLoadingMsg() {
@@ -1077,11 +1148,10 @@ public class ManageApplications extends ListActivity implements
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
setContentView(R.layout.compute_sizes);
showLoadingMsg(); showLoadingMsg();
// Create a thread to load resources // Create a thread to load resources
mResourceThread = new ResourceLoaderThread(); mResourceThread = new ResourceLoaderThread();
sendMessageToHandler(COMPUTE_PKG_SIZE_START); sendMessageToHandler(INIT_PKG_INFO);
} }
@Override @Override
@@ -1138,13 +1208,14 @@ public class ManageApplications extends ListActivity implements
.setIcon(android.R.drawable.ic_menu_sort_alphabetically); .setIcon(android.R.drawable.ic_menu_sort_alphabetically);
menu.add(0, SORT_ORDER_SIZE, 2, R.string.sort_order_size) menu.add(0, SORT_ORDER_SIZE, 2, R.string.sort_order_size)
.setIcon(android.R.drawable.ic_menu_sort_by_size); .setIcon(android.R.drawable.ic_menu_sort_by_size);
menu.add(0, FILTER_OPTIONS, 3, R.string.filter); menu.add(0, FILTER_OPTIONS, 3, R.string.filter)
.setIcon(R.drawable.ic_menu_filter_settings);
return true; return true;
} }
@Override @Override
public boolean onPrepareOptionsMenu(Menu menu) { public boolean onPrepareOptionsMenu(Menu menu) {
if (mDoneIniting) { if (mComputeSizes) {
menu.findItem(SORT_ORDER_ALPHA).setVisible(mSortOrder != SORT_ORDER_ALPHA); menu.findItem(SORT_ORDER_ALPHA).setVisible(mSortOrder != SORT_ORDER_ALPHA);
menu.findItem(SORT_ORDER_SIZE).setVisible(mSortOrder != SORT_ORDER_SIZE); menu.findItem(SORT_ORDER_SIZE).setVisible(mSortOrder != SORT_ORDER_SIZE);
menu.findItem(FILTER_OPTIONS).setVisible(true); menu.findItem(FILTER_OPTIONS).setVisible(true);

View File

@@ -44,6 +44,7 @@ import java.util.Locale;
public class UserDictionarySettings extends ListActivity { public class UserDictionarySettings extends ListActivity {
private static final String INSTANCE_KEY_DIALOG_EDITING_WORD = "DIALOG_EDITING_WORD"; private static final String INSTANCE_KEY_DIALOG_EDITING_WORD = "DIALOG_EDITING_WORD";
private static final String INSTANCE_KEY_ADDED_WORD = "DIALOG_ADDED_WORD";
private static final String[] QUERY_PROJECTION = { private static final String[] QUERY_PROJECTION = {
UserDictionary.Words._ID, UserDictionary.Words.WORD UserDictionary.Words._ID, UserDictionary.Words.WORD
@@ -70,6 +71,9 @@ public class UserDictionarySettings extends ListActivity {
private Cursor mCursor; private Cursor mCursor;
private boolean mAddedWordAlready;
private boolean mAutoReturn;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@@ -85,15 +89,17 @@ public class UserDictionarySettings extends ListActivity {
ListView listView = getListView(); ListView listView = getListView();
listView.setFastScrollEnabled(true); listView.setFastScrollEnabled(true);
listView.setEmptyView(emptyView); listView.setEmptyView(emptyView);
registerForContextMenu(listView); registerForContextMenu(listView);
} }
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
if (getIntent().getAction().equals("com.android.settings.USER_DICTIONARY_INSERT")) { if (!mAddedWordAlready
&& getIntent().getAction().equals("com.android.settings.USER_DICTIONARY_INSERT")) {
String word = getIntent().getStringExtra(EXTRA_WORD); String word = getIntent().getStringExtra(EXTRA_WORD);
mAutoReturn = true;
if (word != null) { if (word != null) {
showAddOrEditDialog(word); showAddOrEditDialog(word);
} }
@@ -103,12 +109,14 @@ public class UserDictionarySettings extends ListActivity {
protected void onRestoreInstanceState(Bundle state) { protected void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state); super.onRestoreInstanceState(state);
mDialogEditingWord = state.getString(INSTANCE_KEY_DIALOG_EDITING_WORD); mDialogEditingWord = state.getString(INSTANCE_KEY_DIALOG_EDITING_WORD);
mAddedWordAlready = state.getBoolean(INSTANCE_KEY_ADDED_WORD, false);
} }
@Override @Override
protected void onSaveInstanceState(Bundle outState) { protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
outState.putString(INSTANCE_KEY_DIALOG_EDITING_WORD, mDialogEditingWord); outState.putString(INSTANCE_KEY_DIALOG_EDITING_WORD, mDialogEditingWord);
outState.putBoolean(INSTANCE_KEY_ADDED_WORD, mAddedWordAlready);
} }
private Cursor createCursor() { private Cursor createCursor() {
@@ -196,9 +204,13 @@ public class UserDictionarySettings extends ListActivity {
.setView(content) .setView(content)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
onAddOrEditFinished(editText.getText().toString()); onAddOrEditFinished(editText.getText().toString());
if (mAutoReturn) finish();
}})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (mAutoReturn) finish();
}}) }})
.setNegativeButton(android.R.string.cancel, null)
.create(); .create();
} }
@@ -220,8 +232,9 @@ public class UserDictionarySettings extends ListActivity {
// TODO: present UI for picking whether to add word to all locales, or current. // TODO: present UI for picking whether to add word to all locales, or current.
UserDictionary.Words.addWord(this, word.toString(), UserDictionary.Words.addWord(this, word.toString(),
128, UserDictionary.Words.LOCALE_TYPE_ALL); 250, UserDictionary.Words.LOCALE_TYPE_ALL);
mCursor.requery(); mCursor.requery();
mAddedWordAlready = true;
} }
private void deleteWord(String word) { private void deleteWord(String word) {

View File

@@ -229,9 +229,12 @@ public class ConnectSpecificProfilesActivity extends PreferenceActivity
for (Profile profile : mDevice.getProfiles()) { for (Profile profile : mDevice.getProfiles()) {
CheckBoxPreference profilePref = CheckBoxPreference profilePref =
(CheckBoxPreference) findPreference(profile.toString()); (CheckBoxPreference) findPreference(profile.toString());
if (profilePref == null) continue; if (profilePref == null) {
profilePref = createProfilePreference(profile);
refreshProfilePreference(profilePref, profile); mProfileContainer.addPreference(profilePref);
} else {
refreshProfilePreference(profilePref, profile);
}
} }
} }