diff options
27 files changed, 171 insertions, 119 deletions
diff --git a/res/layout-sw600dp/crypt_keeper_password_entry.xml b/res/layout-sw600dp/crypt_keeper_password_entry.xml index fe6edaf..f8c113d 100644 --- a/res/layout-sw600dp/crypt_keeper_password_entry.xml +++ b/res/layout-sw600dp/crypt_keeper_password_entry.xml @@ -16,7 +16,8 @@ ** limitations under the License. */ --> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > @@ -25,7 +26,7 @@ <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_centerHorizontal="true" + android:layout_gravity="center_horizontal" android:layout_marginTop="318dip" > <ImageView android:id="@+id/encroid" @@ -53,10 +54,11 @@ android:layout_width="320dip" android:layout_toRightOf="@+id/passwordLabel" android:layout_marginTop="26dip" + android:layout_centerVertical="true" android:orientation="horizontal" > <include layout="@layout/crypt_keeper_password_field" /> </LinearLayout> </RelativeLayout> -</RelativeLayout> +</LinearLayout> diff --git a/res/layout/app_percentage_item.xml b/res/layout/app_percentage_item.xml index e5710e4..949999a 100644 --- a/res/layout/app_percentage_item.xml +++ b/res/layout/app_percentage_item.xml @@ -18,8 +18,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" - android:paddingLeft="@*android:dimen/preference_item_padding_side" - android:paddingRight="@*android:dimen/preference_item_padding_side" + android:paddingLeft="?android:attr/listPreferredItemPaddingLeft" + android:paddingRight="?android:attr/listPreferredItemPaddingRight" android:paddingTop="8dip" android:paddingBottom="8dip" android:columnCount="3"> diff --git a/res/layout/crypt_keeper_status.xml b/res/layout/crypt_keeper_status.xml index d94e66d..b92bbe8 100644 --- a/res/layout/crypt_keeper_status.xml +++ b/res/layout/crypt_keeper_status.xml @@ -23,6 +23,7 @@ android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" > <com.android.internal.widget.DigitalClock android:id="@+id/time" @@ -31,6 +32,7 @@ android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_marginTop="8dip" + android:layout_gravity="center" android:layout_marginBottom="8dip" > diff --git a/res/layout/data_usage_cycles.xml b/res/layout/data_usage_cycles.xml index 136fec6..c9647c8 100644 --- a/res/layout/data_usage_cycles.xml +++ b/res/layout/data_usage_cycles.xml @@ -20,8 +20,8 @@ android:layout_height="40dip" android:orientation="horizontal" android:gravity="center_vertical" - android:paddingLeft="@*android:dimen/preference_item_padding_side" - android:paddingRight="@*android:dimen/preference_item_padding_side"> + android:paddingLeft="?android:attr/listPreferredItemPaddingLeft" + android:paddingRight="?android:attr/listPreferredItemPaddingRight"> <TextView android:layout_width="wrap_content" diff --git a/res/layout/data_usage_detail.xml b/res/layout/data_usage_detail.xml index 639fcf5..0ce17d2 100644 --- a/res/layout/data_usage_detail.xml +++ b/res/layout/data_usage_detail.xml @@ -18,20 +18,22 @@ android:id="@+id/app_detail" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical"> + android:orientation="vertical" + android:visibility="gone"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginLeft="@*android:dimen/preference_item_padding_side" - android:layout_marginRight="@*android:dimen/preference_item_padding_side" + android:layout_marginLeft="?android:attr/listPreferredItemPaddingLeft" + android:layout_marginRight="?android:attr/listPreferredItemPaddingRight" android:orientation="horizontal"> <LinearLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" - android:layout_marginRight="@*android:dimen/preference_item_padding_inner" + android:layout_marginTop="8dip" + android:layout_marginRight="8dip" android:orientation="vertical"> <ImageView @@ -82,8 +84,8 @@ android:id="@+id/app_settings" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginLeft="@*android:dimen/preference_item_padding_side" - android:layout_marginRight="@*android:dimen/preference_item_padding_side" + android:layout_marginLeft="?android:attr/listPreferredItemPaddingLeft" + android:layout_marginRight="?android:attr/listPreferredItemPaddingRight" android:layout_marginTop="16dip" android:layout_marginBottom="16dip" android:text="@string/data_usage_app_settings" /> diff --git a/res/layout/data_usage_header.xml b/res/layout/data_usage_header.xml index a7b12b7..619956d 100644 --- a/res/layout/data_usage_header.xml +++ b/res/layout/data_usage_header.xml @@ -41,8 +41,8 @@ android:id="@+id/usage_summary" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingLeft="@*android:dimen/preference_item_padding_side" - android:paddingRight="@*android:dimen/preference_item_padding_side" + android:paddingLeft="?android:attr/listPreferredItemPaddingLeft" + android:paddingRight="?android:attr/listPreferredItemPaddingRight" android:paddingTop="8dip" android:paddingBottom="8dip" android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -52,8 +52,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="gone" - android:paddingLeft="@*android:dimen/preference_item_padding_side" - android:paddingRight="@*android:dimen/preference_item_padding_side" + android:paddingLeft="?android:attr/listPreferredItemPaddingLeft" + android:paddingRight="?android:attr/listPreferredItemPaddingRight" android:paddingBottom="8dip" android:text="@string/data_usage_empty" android:textAppearance="?android:attr/textAppearanceSmall" /> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index b8c584d..7e2ca00 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -1505,7 +1505,7 @@ <string name="show_hw_screen_updates_summary" msgid="5280716513731970663">"Destaca les zones de pantalla en actual. amb GPU"</string> <string name="disable_overlays" msgid="3645736086368449005">"Desactiva superposicions"</string> <string name="disable_overlays_summary" msgid="7111098018524381234">"No utilitzis superpos. per a composició pantalla"</string> - <string name="debug_layout" msgid="5981361776594526155">"Mostra límits format"</string> + <string name="debug_layout" msgid="5981361776594526155">"Mostra límits de format"</string> <string name="debug_layout_summary" msgid="978411395294379156">"Mostra la informació sobre límits, separació, etc."</string> <string name="show_cpu_usage" msgid="2389212910758076024">"Mostra l\'ús de la CPU"</string> <string name="show_cpu_usage_summary" msgid="2113341923988958266">"Superposició de pantalla mostra ús actual de CPU"</string> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 2a5adaf..e5aa821 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -815,7 +815,7 @@ <string name="menu_delete" msgid="6981294422841124659">"Smazat název přístupového bodu"</string> <string name="menu_new" msgid="3014205883303921729">"Nový název AP"</string> <string name="menu_save" msgid="8109345640668285399">"Uložit"</string> - <string name="menu_cancel" msgid="2194502410474697474">"Zrušit"</string> + <string name="menu_cancel" msgid="2194502410474697474">"Zahodit"</string> <string name="error_title" msgid="7631322303341024692"></string> <string name="error_name_empty" msgid="8418502878620394756">"Pole Název nesmí být prázdné."</string> <string name="error_apn_empty" msgid="6056233831214537267">"Název přístupového bodu (APN) nesmí být prázdný."</string> @@ -1657,7 +1657,7 @@ <string name="user_max_content_rating" msgid="8297759970216482772">"Klasifikace obsahu"</string> <string name="user_system_apps_heading" msgid="2408331798732183682">"Systémové aplikace"</string> <string name="user_market_apps_heading" msgid="4657387297168308251">"Nainstalované aplikace"</string> - <string name="user_discard_user_menu" msgid="6638388031088461242">"Zrušit"</string> + <string name="user_discard_user_menu" msgid="6638388031088461242">"Zahodit"</string> <string name="user_remove_user_menu" msgid="3210146886949340574">"Odebrat uživatele"</string> <string name="user_new_user_name" msgid="7603010274765911161">"Uličník"</string> <string name="user_confirm_remove_title" msgid="3856148232937245711">"Chcete uživatele odebrat?"</string> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 1652483..4b7cad4 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -1356,10 +1356,8 @@ <string name="credentials_reset_summary" msgid="3369361230171260282">"Κατάργηση όλων των πιστοποιητικών"</string> <string name="trusted_credentials" msgid="4266945289534242402">"Αξιόπιστα διαπιστευτήρια"</string> <string name="trusted_credentials_summary" msgid="6735221351155686632">"Προβολή αξιόπιστων πιστοποιητικών CA"</string> - <!-- no translation found for credentials_install_gesture_prompt (2207390278112395082) --> - <skip /> - <!-- no translation found for credentials_install_gesture_explanation (7408921172253634829) --> - <skip /> + <string name="credentials_install_gesture_prompt" msgid="2207390278112395082">"Σχεδιάστε το μοτίβο ξεκλειδώματος"</string> + <string name="credentials_install_gesture_explanation" msgid="7408921172253634829">"Πρέπει να σχεδιάσετε το μοτίβο ξεκλειδώματος για να επιβεβαιώσετε την εγκατάσταση των διαπιστευτηρίων."</string> <string name="credentials_unlock" msgid="385427939577366499"></string> <string name="credentials_unlock_hint" msgid="2301301378040499348">"Πληκτρολογήστε τον κωδικό πρόσβασης του αποθηκευτικού χώρου διαπιστευτηρίων."</string> <string name="credentials_old_password" msgid="7553393815538684028">"Τρέχον κωδικός πρόσβασης:"</string> diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 16564fc..9e349b8 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -1356,10 +1356,8 @@ <string name="credentials_reset_summary" msgid="3369361230171260282">"Remove all certificates"</string> <string name="trusted_credentials" msgid="4266945289534242402">"Trusted credentials"</string> <string name="trusted_credentials_summary" msgid="6735221351155686632">"Display trusted CA certificates"</string> - <!-- no translation found for credentials_install_gesture_prompt (2207390278112395082) --> - <skip /> - <!-- no translation found for credentials_install_gesture_explanation (7408921172253634829) --> - <skip /> + <string name="credentials_install_gesture_prompt" msgid="2207390278112395082">"Draw your unlock pattern"</string> + <string name="credentials_install_gesture_explanation" msgid="7408921172253634829">"You need to draw your unlock pattern to confirm credential installation."</string> <string name="credentials_unlock" msgid="385427939577366499"></string> <string name="credentials_unlock_hint" msgid="2301301378040499348">"Type the password for credential storage."</string> <string name="credentials_old_password" msgid="7553393815538684028">"Current password:"</string> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 254463a..233367d 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -1356,10 +1356,8 @@ <string name="credentials_reset_summary" msgid="3369361230171260282">"Supprimer tous les certificats"</string> <string name="trusted_credentials" msgid="4266945289534242402">"Certificats de confiance"</string> <string name="trusted_credentials_summary" msgid="6735221351155686632">"Afficher les certificats d\'autorité de confiance"</string> - <!-- no translation found for credentials_install_gesture_prompt (2207390278112395082) --> - <skip /> - <!-- no translation found for credentials_install_gesture_explanation (7408921172253634829) --> - <skip /> + <string name="credentials_install_gesture_prompt" msgid="2207390278112395082">"Dessinez votre schéma de déverrouillage."</string> + <string name="credentials_install_gesture_explanation" msgid="7408921172253634829">"Pour confirmer l\'installation des certificats, vous devez dessiner votre schéma de déverrouillage."</string> <string name="credentials_unlock" msgid="385427939577366499"></string> <string name="credentials_unlock_hint" msgid="2301301378040499348">"Saisir le mot de passe de stockage des identifiants"</string> <string name="credentials_old_password" msgid="7553393815538684028">"Mot de passe actuel :"</string> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index dd24fa2..4285389 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -992,7 +992,7 @@ <string name="clear_user_data_text" msgid="5597622864770098388">"Izbriši podatke"</string> <string name="app_factory_reset" msgid="6635744722502563022">"Deinstaliraj ažuriranja"</string> <string name="auto_launch_enable_text" msgid="2652825923953591251">"Odlučili ste da se ta aplikacija pokreće prema zadanim postavkama za neke radnje."</string> - <string name="always_allow_bind_appwidgets_text" msgid="3368654672141202604">"Odlučili ste dopustiti ovoj aplikaciji stvaranje widgeta i pristupanje njihovim podacima."</string> + <string name="always_allow_bind_appwidgets_text" msgid="3368654672141202604">"Odlučili ste dopustiti ovoj aplikaciji izradu widgeta i pristupanje njihovim podacima."</string> <string name="auto_launch_disable_text" msgid="7800385822185540166">"Nema zadanih postavki."</string> <string name="clear_activities" msgid="7408923511535174430">"Izbriši zadane postavke"</string> <string name="screen_compatibility_text" msgid="1616155457673106022">"Ta aplikacija možda nije dizajnirana za vaš zaslon. Ovdje možete provjeriti kako se prilagođava vašem zaslonu."</string> @@ -1179,9 +1179,9 @@ <string name="dev_settings_warning_message" msgid="2298337781139097964">"Ove su postavke namijenjene samo razvojnim programerima. One mogu uzrokovati kvar ili neželjeno ponašanje vašeg uređaja i aplikacija na njemu."</string> <string name="gadget_picker_title" msgid="98374951396755811">"Odaberi gadget"</string> <string name="widget_picker_title" msgid="9130684134213467557">"Odaberite widget"</string> - <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Napraviti widget i dozvoliti pristup?"</string> - <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"Kada stvorite widget, aplikacija <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> može pristupiti svim podacima koje taj widget prikazuje."</string> - <string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"Uvijek dopusti aplikaciji <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> stvaranje widgeta i pristupanje njihovim podacima"</string> + <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Želite izraditi widget i dozvoliti pristup?"</string> + <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"Kada izradite widget, aplikacija <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> može pristupiti svim podacima koje taj widget prikazuje."</string> + <string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"Uvijek dopusti aplikaciji <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> izradu widgeta i pristupanje njihovim podacima"</string> <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g> d <xliff:g id="HOURS">%2$d</xliff:g> h <xliff:g id="MINUTES">%3$d</xliff:g> min <xliff:g id="SECONDS">%4$d</xliff:g> s"</string> <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g>min <xliff:g id="SECONDS">%3$d</xliff:g> s"</string> <string name="battery_history_minutes" msgid="1467775596084148610">"<xliff:g id="MINUTES">%1$d</xliff:g> min <xliff:g id="SECONDS">%2$d</xliff:g> s"</string> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 1957c97..7618c5b 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -1356,10 +1356,8 @@ <string name="credentials_reset_summary" msgid="3369361230171260282">"Rimuovi tutti i certificati"</string> <string name="trusted_credentials" msgid="4266945289534242402">"Credenziali attendibili"</string> <string name="trusted_credentials_summary" msgid="6735221351155686632">"Visualizza certificati CA attendibili"</string> - <!-- no translation found for credentials_install_gesture_prompt (2207390278112395082) --> - <skip /> - <!-- no translation found for credentials_install_gesture_explanation (7408921172253634829) --> - <skip /> + <string name="credentials_install_gesture_prompt" msgid="2207390278112395082">"Inserisci la sequenza di sblocco"</string> + <string name="credentials_install_gesture_explanation" msgid="7408921172253634829">"Per confermare l\'installazione delle credenziali devi inserire la sequenza di sblocco."</string> <string name="credentials_unlock" msgid="385427939577366499"></string> <string name="credentials_unlock_hint" msgid="2301301378040499348">"Digita la password per l\'archivio credenziali."</string> <string name="credentials_old_password" msgid="7553393815538684028">"Password attuale:"</string> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index dd199d6..91c1c78 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -1529,7 +1529,7 @@ <string name="data_usage_menu_split_4g" msgid="5322857680792601899">"4G 사용 구분"</string> <string name="data_usage_menu_show_wifi" msgid="8266875319417201085">"Wi-Fi 사용량 표시"</string> <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"이더넷 사용량 표시"</string> - <string name="data_usage_menu_metered" msgid="8386567111915152271">"요금이 부과되는 네트워크"</string> + <string name="data_usage_menu_metered" msgid="8386567111915152271">"종량제 네트워크"</string> <string name="data_usage_change_cycle" msgid="7776556448920114866">"주기 변경..."</string> <string name="data_usage_pick_cycle_day" msgid="4470796861757050966">"데이터 사용 주기를 재설정할 날짜:"</string> <string name="data_usage_empty" msgid="8621855507876539282">"이 기간 동안 데이터를 사용한 앱이 없습니다."</string> @@ -1553,10 +1553,10 @@ <string name="data_usage_enable_4g" msgid="3635854097335036738">"4G 데이터"</string> <string name="data_usage_app_settings" msgid="8430240158135453271">"앱 설정 보기"</string> <string name="data_usage_app_restrict_background" msgid="9149728936265100841">"백그라운드 데이터 제한"</string> - <string name="data_usage_app_restrict_background_summary" msgid="7414394653383835260">"요금이 부과되는 네트워크에서 백그라운드 데이터를 사용하지 않도록 설정합니다. 가능한 경우 무제한 네트워크가 사용됩니다."</string> + <string name="data_usage_app_restrict_background_summary" msgid="7414394653383835260">"종량제 네트워크에서 백그라운드 데이터를 사용하지 않도록 설정합니다. 가능한 경우 무제한 네트워크가 사용됩니다."</string> <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"이 앱에 대해 백그라운드 데이터를 제한하려면 먼저 모바일 데이터 제한을 설정하세요."</string> <string name="data_usage_app_restrict_dialog_title" msgid="1613108390242737923">"백그라운드 데이터 사용 제한"</string> - <string name="data_usage_app_restrict_dialog" msgid="1551946513417839948">"요금이 부과되는 네트워크만 사용할 수 있는 경우 백그라운드 데이터에 의존하는 앱이 중단될 수 있습니다. "\n\n"앱 설정에서 데이터 사용을 더 적절하게 관리할 수 있는 컨트롤을 찾아 볼 수 있습니다."</string> + <string name="data_usage_app_restrict_dialog" msgid="1551946513417839948">"종량제 네트워크만 사용할 수 있는 경우 백그라운드 데이터에 의존하는 앱이 중단될 수 있습니다. "\n\n"앱 설정에서 데이터 사용을 더 적절하게 관리할 수 있는 컨트롤을 찾아 볼 수 있습니다."</string> <string name="data_usage_restrict_denied_dialog" msgid="7086969103661420799">"백그라운드 데이터는 모바일 데이터 한도를 설정한 경우에만 제한할 수 있습니다."</string> <string name="data_usage_cycle_editor_title" msgid="1373797281540188533">"사용 주기 재설정"</string> <string name="data_usage_cycle_editor_subtitle" msgid="5512903797979928416">"날짜:"</string> @@ -1575,8 +1575,8 @@ <string name="data_usage_total_during_range" msgid="4091294280619255237">"<xliff:g id="RANGE">%2$s</xliff:g>: 약 <xliff:g id="TOTAL">%1$s</xliff:g> 사용됨"</string> <string name="data_usage_total_during_range_mobile" product="tablet" msgid="5961720793603268572">"<xliff:g id="RANGE">%2$s</xliff:g>: 약 <xliff:g id="TOTAL">%1$s</xliff:g> 사용됨 - 태블릿을 기준으로 측정된 데이터 사용량이며 이동통신사에서는 사용량을 다르게 계산할 수 있습니다."</string> <string name="data_usage_total_during_range_mobile" product="default" msgid="1625833170144610767">"<xliff:g id="RANGE">%2$s</xliff:g>: 약 <xliff:g id="TOTAL">%1$s</xliff:g> 사용됨 - 휴대전화를 기준으로 측정된 데이터 사용량이며 이동통신사에서는 사용량을 다르게 계산할 수 있습니다."</string> - <string name="data_usage_metered_title" msgid="311250454694217878">"요금 부과 네트워크"</string> - <string name="data_usage_metered_body" msgid="1616820728096597564">"데이터 사용 요금이 부과되는 네트워크를 선택하세요. 앱이 백그라운드에 있을 때 해당 네트워크를 사용할 수 없도록 제한할 수 있습니다. 또한 네트워크를 사용하여 대용량 다운로드를 하기 전에 앱에서 경고해 줍니다."</string> + <string name="data_usage_metered_title" msgid="311250454694217878">"종량제 네트워크"</string> + <string name="data_usage_metered_body" msgid="1616820728096597564">"종량제 네트워크를 선택하세요. 앱이 백그라운드에 있을 때 해당 네트워크를 사용할 수 없도록 제한할 수 있습니다. 또한 네트워크를 사용하여 대용량 다운로드를 하기 전에 앱에서 경고해 줍니다."</string> <string name="data_usage_metered_mobile" msgid="5423305619126978393">"모바일 네트워크"</string> <string name="data_usage_metered_wifi" msgid="4151511616349458705">"Wi-Fi 네트워크"</string> <string name="cryptkeeper_emergency_call" msgid="198578731586097145">"긴급 전화"</string> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index e036a8c..7e81c77 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -1179,7 +1179,7 @@ <string name="dev_settings_warning_message" msgid="2298337781139097964">"Disse innstillingene er bare beregnet for bruk under programutvikling. De kan forårsake problemer med enheten din og tilhørende apper."</string> <string name="gadget_picker_title" msgid="98374951396755811">"Velg gadget"</string> <string name="widget_picker_title" msgid="9130684134213467557">"Velg skrivebordselement"</string> - <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Opprette modul og gi tilgang?"</string> + <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Vil du opprette modulen og gi tilgang?"</string> <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"Når du har opprettet modulen, kan <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> lese alle dataene den viser."</string> <string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"Gi alltid <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> tillatelse til å opprette moduler og lese moduldata"</string> <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g>d <xliff:g id="HOURS">%2$d</xliff:g>t <xliff:g id="MINUTES">%3$d</xliff:g>m <xliff:g id="SECONDS">%4$d</xliff:g>s"</string> @@ -1556,7 +1556,7 @@ <string name="data_usage_app_restrict_background_summary" msgid="7414394653383835260">"Deaktiver bakgrunnsdata på målte nettverk. Umålte nettverk brukes når det er mulig."</string> <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"Hvis du ønsker å begrense bakgrunnsdata for denne appen, må du først angi en grense for bruk av mobildata."</string> <string name="data_usage_app_restrict_dialog_title" msgid="1613108390242737923">"Vil du begrense bruken av bakgrunnsdata?"</string> - <string name="data_usage_app_restrict_dialog" msgid="1551946513417839948">"Denne funksjonen kan gjøre at en app som er avhengig av bakgrunnsdata slutter å fungere når bare målte nettverk er tilgjengelige."\n\n"Du finner bedre egnede alternativer for databruk i appens innstillinger."</string> + <string name="data_usage_app_restrict_dialog" msgid="1551946513417839948">"Denne funksjonen kan gjøre at apper som er avhengig av bakgrunnsdata slutter å fungere når bare målte nettverk er tilgjengelige."\n\n"Du finner bedre egnede alternativer for databruk i appens innstillinger."</string> <string name="data_usage_restrict_denied_dialog" msgid="7086969103661420799">"Du kan begrense bakgrunnsdata, men bare hvis du har angitt en grense for bruk av mobildata."</string> <string name="data_usage_cycle_editor_title" msgid="1373797281540188533">"Tilbakestillingsdato for brukssyklus"</string> <string name="data_usage_cycle_editor_subtitle" msgid="5512903797979928416">"Dato for hver måned:"</string> diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 8296e16..899051d 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -582,8 +582,7 @@ <string name="wifi_p2p_menu_rename" msgid="8448896306960060415">"Pea kifaa jina jipya"</string> <string name="wifi_p2p_peer_devices" msgid="299526878463303432">"Vifaa shiriki"</string> <string name="wifi_p2p_failed_connect_message" msgid="8921447388048243547">"Haikuweza kuunganisha."</string> - <!-- no translation found for wifi_p2p_failed_rename_message (2562182284946936380) --> - <skip /> + <string name="wifi_p2p_failed_rename_message" msgid="2562182284946936380">"Imeshindwa kubadili jina la kifaa."</string> <string name="wifi_p2p_disconnect_title" msgid="3216846049677448420">"Tenganisha?"</string> <string name="wifi_p2p_disconnect_message" msgid="8227342771610125771">"Ukitenganisha, muunganisho wako na <xliff:g id="PEER_NAME">%1$s</xliff:g> utakoma."</string> <string name="wifi_p2p_disconnect_multiple_message" msgid="3283805371034883105">"Ukitenganisha, muunganisho wako na <xliff:g id="PEER_NAME">%1$s</xliff:g> na vifaa vingine <xliff:g id="PEER_COUNT">%2$s</xliff:g> utakoma."</string> @@ -1492,24 +1491,18 @@ <string name="show_touches_summary" msgid="6684407913145150041">"Onyesha mwitikio wa kuonekana wa miguso"</string> <string name="show_screen_updates" msgid="8282711794220426931">"Onyesha sasisho za skrini"</string> <string name="show_screen_updates_summary" msgid="1716122382094924596">"Mulika maeneo ya skrini wakati yanasasisha"</string> - <!-- no translation found for show_hw_screen_updates (1066779731201521925) --> - <skip /> - <!-- no translation found for show_hw_screen_updates_summary (5280716513731970663) --> - <skip /> + <string name="show_hw_screen_updates" msgid="1066779731201521925">"Onyesha visasishi vya skrini ya GPU"</string> + <string name="show_hw_screen_updates_summary" msgid="5280716513731970663">"Mweka maeneo ya skrini wakati wanaposasisha na GPU"</string> <string name="disable_overlays" msgid="3645736086368449005">"Lemaza gaga"</string> <string name="disable_overlays_summary" msgid="7111098018524381234">"Usitumie gaga za utungaji skrini"</string> - <!-- no translation found for debug_layout (5981361776594526155) --> - <skip /> - <!-- no translation found for debug_layout_summary (978411395294379156) --> - <skip /> + <string name="debug_layout" msgid="5981361776594526155">"Onyesha midundo ya mipangilio"</string> + <string name="debug_layout_summary" msgid="978411395294379156">"Onyesha mipangilio kuhusu midundo, kujaza, na kadhalika."</string> <string name="show_cpu_usage" msgid="2389212910758076024">"Onyesha matumizi ya CPU"</string> <string name="show_cpu_usage_summary" msgid="2113341923988958266">"Kuegeshwa kwa skrini ikionyesha matumizi ya sasa ya CPU"</string> <string name="force_hw_ui" msgid="6426383462520888732">"Lazimisha kutungiliza GPU"</string> <string name="force_hw_ui_summary" msgid="8642000962902609976">"Tumia maunzi ya kasi ya 2P katika programu"</string> - <!-- no translation found for track_frame_time (6146354853663863443) --> - <skip /> - <!-- no translation found for track_frame_time_summary (447577515813970287) --> - <skip /> + <string name="track_frame_time" msgid="6146354853663863443">"Utungilizaji wa GPU ya maelezo mafupi"</string> + <string name="track_frame_time_summary" msgid="447577515813970287">"Pima muda wa kutungiliza katika adp shell dumpys gfxinfo"</string> <string name="window_animation_scale_title" msgid="6162587588166114700">"Kipimo cha uhiani wa Window"</string> <string name="transition_animation_scale_title" msgid="387527540523595875">"Mageuzi ya kipimo cha huiani"</string> <string name="animator_duration_scale_title" msgid="3406722410819934083">"Mizani ya muda wa uhuishaji"</string> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 5280d56..66ea90e 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -496,7 +496,7 @@ <string name="wifi_settings_category" msgid="2810363951104753710">"การตั้งค่า Wi-Fi"</string> <string name="wifi_settings_title" msgid="4351120897298124250">"Wi-Fi"</string> <string name="wifi_settings_summary" msgid="668767638556052820">"ตั้งค่าและจัดการจุดเข้าใช้งานระบบไร้สาย"</string> - <string name="wifi_setup_wizard_title" msgid="8794440659600351945">"เลือกเครือข่าย Wi-Fi"</string> + <string name="wifi_setup_wizard_title" msgid="8794440659600351945">"เลือกเครือข่าย WiFi"</string> <string name="wifi_starting" msgid="6716593470710880000">"เปิด Wi-Fi…"</string> <string name="wifi_stopping" msgid="244864762599017659">"กำลังปิด Wi-Fi..."</string> <string name="wifi_error" msgid="3207971103917128179">"ข้อผิดพลาด"</string> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 4a2dd9f..4727516 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -592,8 +592,7 @@ <string name="wifi_p2p_menu_rename" msgid="8448896306960060415">"Đổi tên thiết bị"</string> <string name="wifi_p2p_peer_devices" msgid="299526878463303432">"Thiết bị ngang hàng"</string> <string name="wifi_p2p_failed_connect_message" msgid="8921447388048243547">"Không thể kết nối."</string> - <!-- no translation found for wifi_p2p_failed_rename_message (2562182284946936380) --> - <skip /> + <string name="wifi_p2p_failed_rename_message" msgid="2562182284946936380">"Không thể đổi tên thiết bị."</string> <string name="wifi_p2p_disconnect_title" msgid="3216846049677448420">"Ngắt kết nối?"</string> <string name="wifi_p2p_disconnect_message" msgid="8227342771610125771">"Nếu bạn ngắt kết nối, kết nối của bạn với <xliff:g id="PEER_NAME">%1$s</xliff:g> sẽ kết thúc."</string> <string name="wifi_p2p_disconnect_multiple_message" msgid="3283805371034883105">"Nếu bạn ngắt kết nối, kết nối của bạn với <xliff:g id="PEER_NAME">%1$s</xliff:g> và <xliff:g id="PEER_COUNT">%2$s</xliff:g> thiết bị khác sẽ kết thúc."</string> @@ -1502,24 +1501,18 @@ <string name="show_touches_summary" msgid="6684407913145150041">"Hiển thị phản hồi trực quan cho các lần chạm"</string> <string name="show_screen_updates" msgid="8282711794220426931">"H.thị t.tin cập nhật màn hình"</string> <string name="show_screen_updates_summary" msgid="1716122382094924596">"Vùng flash của màn hình khi chúng cập nhật"</string> - <!-- no translation found for show_hw_screen_updates (1066779731201521925) --> - <skip /> - <!-- no translation found for show_hw_screen_updates_summary (5280716513731970663) --> - <skip /> + <string name="show_hw_screen_updates" msgid="1066779731201521925">"Hiển thị cập nhật màn hình GPU"</string> + <string name="show_hw_screen_updates_summary" msgid="5280716513731970663">"Các khu vực flash của màn hình khi chúng cập nhật với GPU"</string> <string name="disable_overlays" msgid="3645736086368449005">"Vô hiệu lớp phủ"</string> <string name="disable_overlays_summary" msgid="7111098018524381234">"Không sử dụng lớp phủ cho tổng hợp màn hình"</string> - <!-- no translation found for debug_layout (5981361776594526155) --> - <skip /> - <!-- no translation found for debug_layout_summary (978411395294379156) --> - <skip /> + <string name="debug_layout" msgid="5981361776594526155">"Hiển thị ranh giới bố cục"</string> + <string name="debug_layout_summary" msgid="978411395294379156">"Hiển thị thông tin về ranh giới, hình đệm, v.v."</string> <string name="show_cpu_usage" msgid="2389212910758076024">"Hiển thị mức sử dụng CPU"</string> <string name="show_cpu_usage_summary" msgid="2113341923988958266">"Lớp phủ màn hình hiển thị mức sử dụng CPU hiện tại"</string> <string name="force_hw_ui" msgid="6426383462520888732">"Bắt buộc kết xuất GPU"</string> <string name="force_hw_ui_summary" msgid="8642000962902609976">"Sử dụng tăng tốc phần cứng 2D trong các ứng dụng"</string> - <!-- no translation found for track_frame_time (6146354853663863443) --> - <skip /> - <!-- no translation found for track_frame_time_summary (447577515813970287) --> - <skip /> + <string name="track_frame_time" msgid="6146354853663863443">"Kết xuất GPU cấu hình"</string> + <string name="track_frame_time_summary" msgid="447577515813970287">"Đo thời gian kết xuất trong adb shell dumpsys gfxinfo"</string> <string name="window_animation_scale_title" msgid="6162587588166114700">"Tỷ lệ hình động của cửa sổ"</string> <string name="transition_animation_scale_title" msgid="387527540523595875">"Tỷ lệ hình động chuyển đổi"</string> <string name="animator_duration_scale_title" msgid="3406722410819934083">"T.lệ th.lượng tr.tạo h.đ"</string> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 0e18bb5..0ac121a 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -972,7 +972,7 @@ <string name="application_info_label" msgid="5736524913065714880">"应用信息"</string> <string name="storage_label" msgid="8700867073480107253">"存储"</string> <string name="auto_launch_label" msgid="3012617472833815382">"默认启动"</string> - <string name="auto_launch_label_generic" msgid="3230569852551968694">"默认设置"</string> + <string name="auto_launch_label_generic" msgid="3230569852551968694">"默认操作"</string> <string name="screen_compatibility_label" msgid="663250687205465394">"屏幕兼容性"</string> <string name="permissions_label" msgid="2605296874922726203">"权限"</string> <string name="cache_header_label" msgid="1877197634162461830">"缓存"</string> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index d818b94..48a6da3 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -1529,7 +1529,7 @@ <string name="data_usage_menu_split_4g" msgid="5322857680792601899">"獨立顯示 4G 用量"</string> <string name="data_usage_menu_show_wifi" msgid="8266875319417201085">"顯示 Wi-Fi 用量"</string> <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"顯示乙太網路使用量"</string> - <string name="data_usage_menu_metered" msgid="8386567111915152271">"有限網路"</string> + <string name="data_usage_menu_metered" msgid="8386567111915152271">"按傳輸量計費網路"</string> <string name="data_usage_change_cycle" msgid="7776556448920114866">"變更週期..."</string> <string name="data_usage_pick_cycle_day" msgid="4470796861757050966">"資料用量週期的重設日期:"</string> <string name="data_usage_empty" msgid="8621855507876539282">"這段期間沒有應用程式使用數據。"</string> @@ -1553,10 +1553,10 @@ <string name="data_usage_enable_4g" msgid="3635854097335036738">"4G 數據"</string> <string name="data_usage_app_settings" msgid="8430240158135453271">"查看應用程式設定"</string> <string name="data_usage_app_restrict_background" msgid="9149728936265100841">"限制背景資料"</string> - <string name="data_usage_app_restrict_background_summary" msgid="7414394653383835260">"停用有限網路的背景數據傳輸,盡可能使用吃到飽費率網路。"</string> + <string name="data_usage_app_restrict_background_summary" msgid="7414394653383835260">"停用按傳輸量計費網路的背景數據傳輸,儘可能使用傳輸量無限 (吃到飽費率) 網路。"</string> <string name="data_usage_app_restrict_background_summary_disabled" msgid="7401927377070755054">"您必須設定行動數據限制,才能限制這個應用程式的背景資料。"</string> <string name="data_usage_app_restrict_dialog_title" msgid="1613108390242737923">"限制背景資料?"</string> - <string name="data_usage_app_restrict_dialog" msgid="1551946513417839948">"如果採用這項功能,當只有有限網路可供使用時,需要背景數據傳輸的應用程式可能會停止運作。"\n\n"您可以前往應用程式內的設定,發掘更多適當的數據用量控制項。"</string> + <string name="data_usage_app_restrict_dialog" msgid="1551946513417839948">"如果採用這項功能,當只有按傳輸量計費網路可供使用時,需要背景數據傳輸的應用程式可能會停止運作。"\n\n"您可以前往應用程式內的設定,找出更多適當的數據用量控制項。"</string> <string name="data_usage_restrict_denied_dialog" msgid="7086969103661420799">"您必須設定行動數據限制,才能限制背景資料。"</string> <string name="data_usage_cycle_editor_title" msgid="1373797281540188533">"用量週期重設日期"</string> <string name="data_usage_cycle_editor_subtitle" msgid="5512903797979928416">"每月固定日期:"</string> @@ -1575,8 +1575,8 @@ <string name="data_usage_total_during_range" msgid="4091294280619255237">"<xliff:g id="RANGE">%2$s</xliff:g>:已使用約 <xliff:g id="TOTAL">%1$s</xliff:g>。"</string> <string name="data_usage_total_during_range_mobile" product="tablet" msgid="5961720793603268572">"<xliff:g id="RANGE">%2$s</xliff:g>:根據平板電腦計算,已使用約 <xliff:g id="TOTAL">%1$s</xliff:g>。您的行動通訊業者採用的計費方式可能有所不同。"</string> <string name="data_usage_total_during_range_mobile" product="default" msgid="1625833170144610767">"<xliff:g id="RANGE">%2$s</xliff:g>:根據手機計算,已使用約 <xliff:g id="TOTAL">%1$s</xliff:g>。您的行動通訊業者採用的計費方式可能有所不同。"</string> - <string name="data_usage_metered_title" msgid="311250454694217878">"有限網路"</string> - <string name="data_usage_metered_body" msgid="1616820728096597564">"請選取數據用量設有限制的網路。背景應用程式可能無法使用這些網路;如要透過這些網路下載大量資料,應用程式可能會先發出警告。"</string> + <string name="data_usage_metered_title" msgid="311250454694217878">"按傳輸量計費網路"</string> + <string name="data_usage_metered_body" msgid="1616820728096597564">"請選取按傳輸量計費網路。背景應用程式可能無法使用這些網路;如要透過這些網路下載大量資料,應用程式可能會先發出警告。"</string> <string name="data_usage_metered_mobile" msgid="5423305619126978393">"行動網路"</string> <string name="data_usage_metered_wifi" msgid="4151511616349458705">"WiFi 網路"</string> <string name="cryptkeeper_emergency_call" msgid="198578731586097145">"緊急電話"</string> diff --git a/res/values/strings.xml b/res/values/strings.xml index 8ee96e4..b119f2a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3784,6 +3784,8 @@ <string name="data_usage_metered_mobile">Mobile networks</string> <!-- Header for list of Wi-Fi networks. [CHAR LIMIT=32] --> <string name="data_usage_metered_wifi">Wi-Fi networks</string> + <!-- Body text prompting user to enable Wi-Fi to configure metered networks. [CHAR LIMIT=64] --> + <string name="data_usage_metered_wifi_disabled">To select metered Wi-Fi networks, turn Wi-Fi on.</string> <!-- Button at the bottom of the CryptKeeper screen to make an emergency call. --> <string name="cryptkeeper_emergency_call">Emergency call</string> diff --git a/res/xml/data_usage_metered_prefs.xml b/res/xml/data_usage_metered_prefs.xml index 7ec3059..a0c6df4 100644 --- a/res/xml/data_usage_metered_prefs.xml +++ b/res/xml/data_usage_metered_prefs.xml @@ -29,6 +29,14 @@ <PreferenceCategory android:key="wifi" android:title="@string/data_usage_metered_wifi" - android:persistent="false" /> + android:persistent="false"> + + <Preference + android:key="wifi_disabled" + android:summary="@string/data_usage_metered_wifi_disabled" + android:persistent="false" + android:selectable="false" /> + + </PreferenceCategory> </PreferenceScreen> diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java index 6795e28..928b45b 100644 --- a/src/com/android/settings/CryptKeeper.java +++ b/src/com/android/settings/CryptKeeper.java @@ -478,6 +478,16 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList mPasswordEntry.setOnEditorActionListener(this); mPasswordEntry.requestFocus(); + // Disable the Emergency call button if the device has no voice telephone capability + final TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); + if (!tm.isVoiceCapable()) { + final View emergencyCall = findViewById(R.id.emergencyCallButton); + if (emergencyCall != null) { + Log.d(TAG, "Removing the emergency Call button"); + emergencyCall.setVisibility(View.GONE); + } + } + final View imeSwitcher = findViewById(R.id.switch_ime_button); final InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE); diff --git a/src/com/android/settings/DataUsageSummary.java b/src/com/android/settings/DataUsageSummary.java index 7d45461..3b0ce59 100644 --- a/src/com/android/settings/DataUsageSummary.java +++ b/src/com/android/settings/DataUsageSummary.java @@ -278,6 +278,12 @@ public class DataUsageSummary extends Fragment { mShowWifi = mPrefs.getBoolean(PREF_SHOW_WIFI, false); mShowEthernet = mPrefs.getBoolean(PREF_SHOW_ETHERNET, false); + // override preferences when no mobile radio + if (!hasReadyMobileRadio(context)) { + mShowWifi = hasWifiRadio(context); + mShowEthernet = hasEthernet(context); + } + setHasOptionsMenu(true); } @@ -388,9 +394,6 @@ public class DataUsageSummary extends Fragment { mUsageSummary = (TextView) mHeader.findViewById(R.id.usage_summary); mEmpty = (TextView) mHeader.findViewById(android.R.id.empty); - // only assign layout transitions once first layout is finished - mListView.getViewTreeObserver().addOnGlobalLayoutListener(mFirstLayoutListener); - mAdapter = new DataUsageAdapter(mUidDetailProvider, mInsetSide); mListView.setOnItemClickListener(mListListener); mListView.setAdapter(mAdapter); @@ -461,7 +464,6 @@ public class DataUsageSummary extends Fragment { showWifi.setChecked(mShowWifi); } else { showWifi.setVisible(false); - mShowWifi = true; } final MenuItem showEthernet = menu.findItem(R.id.data_usage_menu_show_ethernet); @@ -470,7 +472,6 @@ public class DataUsageSummary extends Fragment { showEthernet.setChecked(mShowEthernet); } else { showEthernet.setVisible(false); - mShowEthernet = true; } final MenuItem metered = menu.findItem(R.id.data_usage_menu_metered); @@ -570,25 +571,22 @@ public class DataUsageSummary extends Fragment { } /** - * Listener to setup {@link LayoutTransition} after first layout pass. + * Build and assign {@link LayoutTransition} to various containers. Should + * only be assigned after initial layout is complete. */ - private OnGlobalLayoutListener mFirstLayoutListener = new OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - mListView.getViewTreeObserver().removeOnGlobalLayoutListener(mFirstLayoutListener); - - mTabsContainer.setLayoutTransition(buildLayoutTransition()); - mHeader.setLayoutTransition(buildLayoutTransition()); - mNetworkSwitchesContainer.setLayoutTransition(buildLayoutTransition()); - - final LayoutTransition chartTransition = buildLayoutTransition(); - chartTransition.setStartDelay(LayoutTransition.APPEARING, 0); - chartTransition.setStartDelay(LayoutTransition.DISAPPEARING, 0); - chartTransition.setAnimator(LayoutTransition.APPEARING, null); - chartTransition.setAnimator(LayoutTransition.DISAPPEARING, null); - mChart.setLayoutTransition(chartTransition); - } - }; + private void ensureLayoutTransitions() { + // skip when already setup + if (mChart.getLayoutTransition() != null) return; + + mTabsContainer.setLayoutTransition(buildLayoutTransition()); + mHeader.setLayoutTransition(buildLayoutTransition()); + mNetworkSwitchesContainer.setLayoutTransition(buildLayoutTransition()); + + final LayoutTransition chartTransition = buildLayoutTransition(); + chartTransition.disableTransitionType(LayoutTransition.APPEARING); + chartTransition.disableTransitionType(LayoutTransition.DISAPPEARING); + mChart.setLayoutTransition(chartTransition); + } private static LayoutTransition buildLayoutTransition() { final LayoutTransition transition = new LayoutTransition(); @@ -1172,6 +1170,9 @@ public class DataUsageSummary extends Fragment { } mUsageSummary.setText(getString(summaryRes, totalPhrase, rangePhrase)); + + // initial layout is finished above, ensure we have transitions + ensureLayoutTransitions(); } private final LoaderCallbacks<ChartData> mChartDataCallbacks = new LoaderCallbacks< diff --git a/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java b/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java index cb4058f..c7d8c89 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java +++ b/src/com/android/settings/inputmethod/InputMethodAndSubtypeUtil.java @@ -22,6 +22,7 @@ import android.content.ContentResolver; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import android.content.res.Resources; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceScreen; @@ -36,6 +37,7 @@ import android.view.inputmethod.InputMethodSubtype; import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Locale; import java.util.Map; public class InputMethodAndSubtypeUtil { @@ -46,6 +48,7 @@ public class InputMethodAndSubtypeUtil { private static final char INPUT_METHOD_SEPARATER = ':'; private static final char INPUT_METHOD_SUBTYPE_SEPARATER = ';'; private static final int NOT_A_SUBTYPE_ID = -1; + private static final Locale ENGLISH_LOCALE = new Locale("en"); private static final TextUtils.SimpleStringSplitter sStringInputMethodSplitter = new TextUtils.SimpleStringSplitter(INPUT_METHOD_SEPARATER); @@ -183,7 +186,7 @@ public class InputMethodAndSubtypeUtil { getEnabledInputMethodsAndSubtypeList(resolver); HashSet<String> disabledSystemIMEs = getDisabledSystemIMEs(resolver); - final boolean onlyOneIME = inputMethodInfos.size() == 1; + final int imiCount = inputMethodInfos.size(); boolean needsToResetSelectedSubtype = false; for (InputMethodInfo imi : inputMethodInfos) { final String imiId = imi.getId(); @@ -193,11 +196,11 @@ public class InputMethodAndSubtypeUtil { // pref is instance of CheckBoxPreference in the Configure input method screen. final boolean isImeChecked = (pref instanceof CheckBoxPreference) ? ((CheckBoxPreference) pref).isChecked() - : enabledIMEAndSubtypesMap.containsKey(imiId); + : enabledIMEAndSubtypesMap.containsKey(imiId); final boolean isCurrentInputMethod = imiId.equals(currentInputMethodId); - final boolean auxIme = isAuxiliaryIme(imi); final boolean systemIme = isSystemIme(imi); - if (((onlyOneIME || (systemIme && !auxIme)) && !hasHardKeyboard) || isImeChecked) { + if ((!hasHardKeyboard && isAlwaysCheckedIme(imi, context.getActivity(), imiCount)) + || isImeChecked) { if (!enabledIMEAndSubtypesMap.containsKey(imiId)) { // imiId has just been enabled enabledIMEAndSubtypesMap.put(imiId, new HashSet<String>()); @@ -373,4 +376,47 @@ public class InputMethodAndSubtypeUtil { public static boolean isAuxiliaryIme(InputMethodInfo imi) { return imi.isAuxiliaryIme(); } + + public static boolean isAlwaysCheckedIme(InputMethodInfo imi, Context context, int imiCount) { + if (imiCount <= 1) { + return true; + } + if (!isSystemIme(imi)) { + return false; + } + if (isAuxiliaryIme(imi)) { + return false; + } + if (isValidDefaultIme(imi, context)) { + return true; + } + return containsSubtypeOf(imi, ENGLISH_LOCALE.getLanguage()); + } + + private static boolean isValidDefaultIme(InputMethodInfo imi, Context context) { + if (imi.getIsDefaultResourceId() != 0) { + try { + Resources res = context.createPackageContext( + imi.getPackageName(), 0).getResources(); + if (res.getBoolean(imi.getIsDefaultResourceId()) + && containsSubtypeOf(imi, context.getResources().getConfiguration(). + locale.getLanguage())) { + return true; + } + } catch (PackageManager.NameNotFoundException ex) { + } catch (Resources.NotFoundException ex) { + } + } + return false; + } + + private static boolean containsSubtypeOf(InputMethodInfo imi, String language) { + final int N = imi.getSubtypeCount(); + for (int i = 0; i < N; ++i) { + if (imi.getSubtypeAt(i).getLocale().startsWith(language)) { + return true; + } + } + return false; + } } diff --git a/src/com/android/settings/inputmethod/InputMethodPreference.java b/src/com/android/settings/inputmethod/InputMethodPreference.java index 4ecdb8e..90eef85 100644 --- a/src/com/android/settings/inputmethod/InputMethodPreference.java +++ b/src/com/android/settings/inputmethod/InputMethodPreference.java @@ -51,7 +51,7 @@ public class InputMethodPreference extends CheckBoxPreference private final InputMethodInfo mImi; private final InputMethodManager mImm; private final Intent mSettingsIntent; - private final boolean mIsSystemIme; + private final boolean mAlwaysChecked; private AlertDialog mDialog = null; private ImageView mInputMethodSettingsButton; @@ -68,7 +68,7 @@ public class InputMethodPreference extends CheckBoxPreference if (isChecked()) { setChecked(false); } else { - if (mIsSystemIme) { + if (mAlwaysChecked) { setChecked(true); } else { showSecurityWarnDialog(mImi, InputMethodPreference.this); @@ -87,9 +87,9 @@ public class InputMethodPreference extends CheckBoxPreference mImm = imm; mImi = imi; updateSummary(); - mIsSystemIme = InputMethodAndSubtypeUtil.isSystemIme(imi); - final boolean isAuxIme = InputMethodAndSubtypeUtil.isAuxiliaryIme(imi); - if (imiCount <= 1 || (mIsSystemIme && !isAuxIme)) { + mAlwaysChecked = InputMethodAndSubtypeUtil.isAlwaysCheckedIme( + imi, fragment.getActivity(), imiCount); + if (mAlwaysChecked) { setEnabled(false); } } diff --git a/src/com/android/settings/net/DataUsageMeteredSettings.java b/src/com/android/settings/net/DataUsageMeteredSettings.java index fea8a12..69326bc 100644 --- a/src/com/android/settings/net/DataUsageMeteredSettings.java +++ b/src/com/android/settings/net/DataUsageMeteredSettings.java @@ -48,6 +48,7 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment { private PreferenceCategory mMobileCategory; private PreferenceCategory mWifiCategory; + private Preference mWifiDisabled; @Override public void onCreate(Bundle icicle) { @@ -63,9 +64,9 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment { addPreferencesFromResource(R.xml.data_usage_metered_prefs); mMobileCategory = (PreferenceCategory) findPreference("mobile"); mWifiCategory = (PreferenceCategory) findPreference("wifi"); + mWifiDisabled = findPreference("wifi_disabled"); updateNetworks(context); - } private void updateNetworks(Context context) { @@ -76,15 +77,15 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment { getPreferenceScreen().removePreference(mMobileCategory); } - if (hasWifiRadio(context)) { - mWifiCategory.removeAll(); + mWifiCategory.removeAll(); + if (hasWifiRadio(context) && mWifiManager.isWifiEnabled()) { for (WifiConfiguration config : mWifiManager.getConfiguredNetworks()) { if (config.SSID != null) { mWifiCategory.addPreference(buildWifiPref(context, config)); } } } else { - getPreferenceScreen().removePreference(mWifiCategory); + mWifiCategory.addPreference(mWifiDisabled); } } |