diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 7879d0c..7e7bf1d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -138,7 +138,6 @@
                   android:theme="@android:style/Theme.Holo.NoActionBar"
                   android:windowBackground="@drawable/setups_bg_default"
                   android:clearTaskOnLaunch="true"
-                  android:screenOrientation="sensorLandscape"
                   android:windowSoftInputMode="adjustResize"
                   android:exported="true" />
 
diff --git a/res/layout-xlarge/date_time_settings_setupwizard.xml b/res/layout-sw600dp-land/date_time_settings_setupwizard.xml
similarity index 96%
rename from res/layout-xlarge/date_time_settings_setupwizard.xml
rename to res/layout-sw600dp-land/date_time_settings_setupwizard.xml
index ee425eb..b31462d 100644
--- a/res/layout-xlarge/date_time_settings_setupwizard.xml
+++ b/res/layout-sw600dp-land/date_time_settings_setupwizard.xml
@@ -19,10 +19,10 @@
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:paddingTop="154dip"
-    android:paddingLeft="128dip"
-    android:paddingRight="128dip"
-    android:paddingBottom="96dip">
+    android:paddingTop="@dimen/datetime_margin_top"
+    android:paddingLeft="@dimen/screen_margin_sides"
+    android:paddingRight="@dimen/screen_margin_sides"
+    android:paddingBottom="@dimen/datetime_margin_bottom">
 
     <!-- Title: Set date & time-->
     <TextView
diff --git a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml b/res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml
similarity index 98%
rename from res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
rename to res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml
index f755563..7c5b274 100644
--- a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
+++ b/res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml
@@ -21,8 +21,8 @@
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:paddingTop="60dip"
-    android:paddingLeft="128dip"
-    android:paddingRight="128dip"
+    android:paddingLeft="@dimen/screen_margin_sides"
+    android:paddingRight="@dimen/screen_margin_sides"
     android:paddingBottom="0dip" >
 
     <FrameLayout
diff --git a/res/layout-xlarge/access_point_category_for_setup_wizard_xl.xml b/res/layout-sw600dp/access_point_category_for_setup_wizard_xl.xml
similarity index 100%
rename from res/layout-xlarge/access_point_category_for_setup_wizard_xl.xml
rename to res/layout-sw600dp/access_point_category_for_setup_wizard_xl.xml
diff --git a/res/layout-xlarge/date_time_settings_setupwizard.xml b/res/layout-sw600dp/date_time_settings_setupwizard.xml
similarity index 96%
copy from res/layout-xlarge/date_time_settings_setupwizard.xml
copy to res/layout-sw600dp/date_time_settings_setupwizard.xml
index ee425eb..b31462d 100644
--- a/res/layout-xlarge/date_time_settings_setupwizard.xml
+++ b/res/layout-sw600dp/date_time_settings_setupwizard.xml
@@ -19,10 +19,10 @@
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:paddingTop="154dip"
-    android:paddingLeft="128dip"
-    android:paddingRight="128dip"
-    android:paddingBottom="96dip">
+    android:paddingTop="@dimen/datetime_margin_top"
+    android:paddingLeft="@dimen/screen_margin_sides"
+    android:paddingRight="@dimen/screen_margin_sides"
+    android:paddingBottom="@dimen/datetime_margin_bottom">
 
     <!-- Title: Set date & time-->
     <TextView
diff --git a/res/layout-xlarge/settings_top_level.xml b/res/layout-sw600dp/settings_top_level.xml
similarity index 100%
rename from res/layout-xlarge/settings_top_level.xml
rename to res/layout-sw600dp/settings_top_level.xml
diff --git a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml b/res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml
similarity index 76%
copy from res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
copy to res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml
index f755563..d6df897 100644
--- a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
+++ b/res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml
@@ -21,8 +21,8 @@
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:paddingTop="60dip"
-    android:paddingLeft="128dip"
-    android:paddingRight="128dip"
+    android:paddingLeft="@dimen/screen_margin_sides"
+    android:paddingRight="@dimen/screen_margin_sides"
     android:paddingBottom="0dip" >
 
     <FrameLayout
@@ -177,52 +177,62 @@
         android:layout_alignLeft="@id/content"
         android:background="@color/divider_color" />  <!-- TODO: fix this -->
 
-    <RelativeLayout
+    <LinearLayout
         android:id="@+id/bottom_buttons"
+        android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_below="@id/bottom_divider"
-        android:layout_alignLeft="@id/bottom_divider"
-        android:layout_alignParentRight="true"
-        android:layout_alignParentBottom="true">
+        android:layout_alignLeft="@id/bottom_divider">
 
-        <Button
-            android:id="@+id/wifi_setup_add_network"
-            style="@style/setup_wizard_button"
-            android:layout_alignParentLeft="true"
-            android:text="@string/wifi_setup_add_network"
-            android:enabled="false" />
-
-        <LinearLayout
-            android:layout_width="wrap_content"
+        <RelativeLayout
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_below="@id/bottom_divider"
+            android:layout_alignLeft="@id/bottom_divider"
             android:layout_alignParentRight="true"
-            android:orientation="horizontal">
+            android:layout_alignParentBottom="true">
 
-            <!-- This misleading name is for keeping consistency between non-XL
-                 layouts -->
-            <Button android:id="@+id/wifi_setup_cancel"
-                    style="@style/setup_wizard_button"
-                    android:text="@string/wifi_setup_back"
-                    android:visibility="gone" />
+            <Button
+                android:id="@+id/wifi_setup_add_network"
+                style="@style/setup_wizard_button"
+                android:layout_alignParentLeft="true"
+                android:text="@string/wifi_setup_add_network"
+                android:enabled="false" />
 
-            <Button android:id="@+id/wifi_setup_connect"
-                    style="@style/setup_wizard_button"
-                    android:layout_marginLeft="16dip"
-                    android:text="@string/wifi_setup_connect"
-                    android:enabled="false"
-                    android:visibility="gone" />
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:orientation="horizontal">
 
-            <Button android:id="@+id/wifi_setup_refresh_list"
-                    style="@style/setup_wizard_button"
-                    android:layout_marginLeft="16dip"
-                    android:text="@string/wifi_setup_refresh_list"
-                    android:enabled="false" />
+                <!-- This misleading name is for keeping consistency between non-XL
+                     layouts -->
+                <Button android:id="@+id/wifi_setup_cancel"
+                        style="@style/setup_wizard_button"
+                        android:text="@string/wifi_setup_back"
+                        android:visibility="gone" />
 
-            <Button android:id="@+id/wifi_setup_skip_or_next"
-                    style="@style/setup_wizard_button"
-                    android:layout_marginLeft="16dip"
-                    android:text="@string/wifi_setup_skip" />
-        </LinearLayout>
-    </RelativeLayout>
+                <Button android:id="@+id/wifi_setup_connect"
+                        style="@style/setup_wizard_button"
+                        android:layout_marginLeft="16dip"
+                        android:text="@string/wifi_setup_connect"
+                        android:enabled="false"
+                        android:visibility="gone" />
+
+                <Button android:id="@+id/wifi_setup_skip_or_next"
+                        style="@style/setup_wizard_button"
+                        android:layout_marginLeft="16dip"
+                        android:text="@string/wifi_setup_skip" />
+            </LinearLayout>
+
+        </RelativeLayout>
+
+        <Button android:id="@+id/wifi_setup_refresh_list"
+                style="@style/setup_wizard_button"
+                android:layout_alignParentRight="true"
+                android:text="@string/wifi_setup_refresh_list"
+                android:enabled="false" />
+
+    </LinearLayout>
 </RelativeLayout>
diff --git a/res/layout/add_account_screen.xml b/res/layout/add_account_screen.xml
index 67cb7aa..b6305a0 100644
--- a/res/layout/add_account_screen.xml
+++ b/res/layout/add_account_screen.xml
@@ -20,7 +20,9 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:orientation="vertical"
+    android:paddingLeft="16dip"
+    android:paddingRight="16dip">
 
     <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/list"
         android:layout_width="match_parent"
diff --git a/res/layout/installed_app_details.xml b/res/layout/installed_app_details.xml
index 0b68d47..6392ee9 100644
--- a/res/layout/installed_app_details.xml
+++ b/res/layout/installed_app_details.xml
@@ -52,6 +52,7 @@
 
         <TextView
             style="?android:attr/listSeparatorTextViewStyle"
+            android:layout_marginTop="8dip"
             android:text="@string/storage_label" />
 
         <LinearLayout
@@ -223,6 +224,7 @@
             <TextView
                 android:id="@+id/cache_header"
                 style="?android:attr/listSeparatorTextViewStyle"
+                android:layout_marginTop="8dip"
                 android:text="@string/cache_header_label" />
             <LinearLayout
                 android:id="@+id/cache_size"
@@ -265,7 +267,7 @@
                 android:layout_alignParentRight="true"
                 android:layout_below="@id/cache_size"
                 android:layout_centerHorizontal="true"
-                android:layout_width="150dip"
+                android:layout_width="200dip"
                 android:text="@string/clear_cache_btn_text"
                 android:layout_height="wrap_content" />
         </RelativeLayout>
@@ -273,6 +275,7 @@
         <!-- Prefered activities section -->
         <TextView
             style="?android:attr/listSeparatorTextViewStyle"
+            android:layout_marginTop="8dip"
             android:text="@string/auto_launch_label" />
 
         <RelativeLayout 
@@ -291,11 +294,43 @@
                 android:layout_alignParentRight="true"
                 android:layout_below="@id/auto_launch"
                 android:layout_centerHorizontal="true"
-                android:layout_width="150dip"
+                android:layout_width="200dip"
                 android:text="@string/clear_activities"
                 android:layout_height="wrap_content" />
         </RelativeLayout>
 
+        <!-- Screen compatibility section -->
+        <LinearLayout android:id="@+id/screen_compatibility_section"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+            <TextView
+                style="?android:attr/listSeparatorTextViewStyle"
+                android:layout_marginTop="8dip"
+                android:text="@string/screen_compatibility_label" />
+
+            <TextView android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_alignParentLeft="true"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:paddingTop="6dip"
+                android:paddingRight="6dip"
+                android:paddingLeft="6dip"
+                android:text="@string/screen_compatibility_text"/>
+            <CheckBox android:id="@+id/ask_compatibility_cb"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dip"
+                android:layout_gravity="left"
+                android:text="@string/ask_compatibility" />
+            <CheckBox android:id="@+id/enable_compatibility_cb"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dip"
+                android:layout_gravity="left"
+                android:text="@string/enable_compatibility" />
+        </LinearLayout>
+
         <!-- Permissions section -->
         <LinearLayout
             android:id="@+id/permissions_section"
@@ -304,6 +339,7 @@
             android:orientation="vertical">
             <TextView
                 style="?android:attr/listSeparatorTextViewStyle"
+                android:layout_marginTop="8dip"
                 android:text="@string/permissions_label" />
             <TextView
                 android:text="@string/security_settings_desc"
diff --git a/res/layout/ownerinfo.xml b/res/layout/ownerinfo.xml
index a6ff904..14cdbcb 100644
--- a/res/layout/ownerinfo.xml
+++ b/res/layout/ownerinfo.xml
@@ -53,7 +53,7 @@
                 />
 
             <EditText android:id="@+id/owner_info_edit_text"
-                android:layout_width="480dip"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="62dip"
                 android:layout_marginTop="40dip"
diff --git a/res/layout/preference_powergauge.xml b/res/layout/preference_powergauge.xml
index 7de2e20..1d6b237 100644
--- a/res/layout/preference_powergauge.xml
+++ b/res/layout/preference_powergauge.xml
@@ -19,8 +19,7 @@
     android:layout_height="wrap_content"
     android:minHeight="?android:attr/listPreferredItemHeight"
     android:gravity="center_vertical"
-    android:paddingLeft="12dip"
-    android:id="@+android:id/widget_frame"
+    android:paddingLeft="16dip"
     android:paddingRight="?android:attr/scrollbarSize">
 
     <ImageView
diff --git a/res/layout/preference_progress_category.xml b/res/layout/preference_progress_category.xml
index 5956296..af411ee 100644
--- a/res/layout/preference_progress_category.xml
+++ b/res/layout/preference_progress_category.xml
@@ -25,7 +25,7 @@
     <TextView
         style="?android:attr/listSeparatorTextViewStyle"
         android:background="@null"
-        android:paddingLeft="32dip"
+        android:paddingLeft="16dip"
         android:id="@+android:id/title"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
diff --git a/res/layout/two_buttons_panel.xml b/res/layout/two_buttons_panel.xml
index d76855c..05ad35d 100755
--- a/res/layout/two_buttons_panel.xml
+++ b/res/layout/two_buttons_panel.xml
@@ -39,7 +39,7 @@
             android:id="@+id/buttons_spacer_left"
             android:layout_width="0dip"
             android:layout_height="wrap_content"
-            android:visibility="gone"
+            android:visibility="invisible"
             android:layout_weight="0.2" />
         <Button
             android:id="@+id/right_button"
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 35cf737..3d9937b 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"تعيين خادم HTTP الوكيل وقوائم الاستبعاد"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"محو"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"منفذ الخادم الوكيل"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"تجاوز الخادم الوكيل لـ"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"استعادة الإعدادات الافتراضية"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"الحالة"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"سرعة الربط"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"عنوان IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"طريقة EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"مصادقة المرحلة الثانية"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"شهادة CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"الرجاء كتابة عنوان نظام أسماء نطاقات صالح."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"الرجاء كتابة بادئة شبكة يترواح طولها بين 0 و32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"نظام أسماء النطاقات 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"نظام أسماء النطاقات 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"البوابة"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"طول بادئة الشبكة"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"نقطة اتصال Wi-Fi المحمولة"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"نقطة الاتصال المحمولة <xliff:g id="NETWORK_SSID">%1$s</xliff:g> نشطة"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"خطأ في نقطة اتصال Wi-Fi المتنقلة"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"إدراج بطاقة SD للتحميل"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"تركيب وحدة تخزين USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"تحميل بطاقة SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"تركيب وحدة تخزين USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"تحميل بطاقة SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"محو وحدة تخزين USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"محو بطاقة SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"محو كل البيانات على وحدة تخزين USB الداخلية، مثل الموسيقى والصور"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"محو كل البيانات على بطاقة SD، مثل الموسيقى والصور"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"غير متاح"</string>
     <string name="read_only" msgid="6702420168629076340">" (للقراءة فقط)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"إلغاء تركيب وحدة تخزين USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"إلغاء تحميل بطاقة SD"</string>
@@ -753,7 +740,7 @@
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"تم تسجيل دخولك حاليًا في الحسابات التالية:"\n</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"الموسيقى"</li>\n<li>"الصور"</li>\n<li>"بيانات المستخدم الأخرى"</li></string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="4740866328425123395">\n\n"لمسح الموسيقى والصور وبيانات المستخدم الأخرى أيضًا، يلزم محو "<b>"وحدة تخزين USB"</b>"."</string>
-    <!-- syntax error in translation for master_clear_desc_erase_external_storage (7339100478676372901) org.xmlpull.v1.XmlPullParserException: expected: /string read: b (position:END_TAG </b>@1:177 in java.io.StringReader@2e8f4fb3)  -->
+    <!-- syntax error in translation for master_clear_desc_erase_external_storage (7339100478676372901) org.xmlpull.v1.XmlPullParserException: expected: /string read: b (position:END_TAG </b>@1:177 in java.io.StringReader@7d29f3b5)  -->
     <string name="erase_external_storage" product="nosdcard" msgid="969364037450286809">"محو وحدة تخزين USB"</string>
     <string name="erase_external_storage" product="default" msgid="1397239046334307625">"محو بطاقة SD"</string>
     <string name="erase_external_storage_description" product="nosdcard" msgid="444834593696342279">"محو كل البيانات على وحدة تخزين USB الداخلية، مثل الموسيقى والصور."</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index f52f396..0b5dbb0 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Задаване на общия HTTP прокси сървър и списъците за изключване"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Изчистване"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Порт на прокси сървъра"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Заобикаляне на прокси сървъра за"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Възстановяване на стандартните"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Състояние"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Скорост на връзка"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP адрес"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Метод за редактиране на точка за достъп"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Фаза 2 на удостоверяване"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"сертификат от сертифициращ орган"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Моля, въведете валиден адрес за DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Въведете дължина на мрежовия префикс между 0 и 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Шлюз"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Дължина на мрежов префикс"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Преносима гореща точка за Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Активна преносима гореща точка <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Грешка на преносимата гореща точка за Wi-Fi"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Поставете SD карта за активиране"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Свързване на USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Активиране на SD карта"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Свързване на USB хранилището"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Активиране на SD картата"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Изтриване на USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Изтриване на SD картата"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Изтрива всички данни във вътрешното USB хранилище, като музика и снимки"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Изтрива всички данни в SD картата, като музика и снимки"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Няма достъп"</string>
     <string name="read_only" msgid="6702420168629076340">" (Само за четене)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Спиране на USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Деактивиране на SD карта"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 926a48e..7d49741 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Defineix el servidor intermediari HTTP i les llistes d\'exclusió"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Esborra"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Port del servidor intermediari"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Servidor intermediari de derivació de"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restauració del valors predeterminats"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Estat"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocitat d\'enllaç"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adreça IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Mètode EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticació de fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat de CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Escriu una adreça DNS vàlida."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Escriu una longitud de prefix de xarxa entre 0 i 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Passarel·la"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Longitud de prefix de xarxa"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Punt de connexió Wi-fi portàtil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Punt de connexió portàtil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> actiu"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error de punt de connexió Wi-fi portàtil"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Inseriu una targeta SD per muntar-la"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Instal·la emmagatzematge USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Munta la targeta SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Instal·la l\'emmagatzematge USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Munta la targeta SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Esborra l\'emmagatzematge USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Esborra la targeta SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Esborra totes les dades de l\'emmagatzematge USB intern, com música i fotos."</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Esborra totes les dades de la targeta SD, com ara la música i les fotos"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"No disponible"</string>
     <string name="read_only" msgid="6702420168629076340">" (Només de lectura)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Desmunta emmag. USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Desmunta la targeta SD"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 6eaa176..d6a5600 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Nastavení globálního proxy serveru protokolu HTTP a seznamu vyloučení"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Vymazat"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Port proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Nepoužívat server proxy pro"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Obnovit výchozí nastavení"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stav"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Rychlost připojení"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adresa IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metoda EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Ověření Phase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certifikát CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Zadejte platnou adresu DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Zadejte prosím délku síťové předpony v rozsahu 0 až 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"Server DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"Server DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Brána"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Délka síťové předpony"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Přenosný hotspot Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Přenosný hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> je aktivní"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Chyba přenosného hotspotu Wi-Fi"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Vložte kartu SD, kterou chcete připojit."</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Připojit úložiště USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Připojit kartu SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Připojit úložiště USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Připojit kartu SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Smazat úložiště USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Smazat kartu SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Smaže všechna data v interním úložišti USB, například hudbu a fotografie"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Smaže všechna data na kartě SD, například hudbu nebo fotografie"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Nedostupný údaj"</string>
     <string name="read_only" msgid="6702420168629076340">" (Pouze pro čtení)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Odpojit úložiště USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Odpojit kartu SD"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 18b8c1e..43aeae3 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Angiv den globale HTTP-proxy og udeladelseslister"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Ryd"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Proxy-port"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Brug ikke proxy til"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Gendan standarder"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Linkhastighed"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-adresse"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-metode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Fase 2-godkendelse"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-certifikat"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Indtast en gyldig DNS-adresse."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Angiv et gyldigt netværkspræfiks fra 0 til 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Længde på netværkspræfiks"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Bærbart Wi-Fi-hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Det bærbare hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> er aktivt"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fejl ved bærbart Wi-Fi-hotspot"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Insæt et SD-kort, der skal monteres"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Isæt USB-lager"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Montér SD-kort"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Monter USB-lager"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Montér SD-kortet"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Slet USB-lager"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Slet SD-kort"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Sletter alle data på det interne USB-lager, f.eks. musik og billeder"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Sletter alle data på telefonens SD-kort, f.eks. musik og billeder"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Utilgængelig"</string>
     <string name="read_only" msgid="6702420168629076340">" (Skrivebeskyttet)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Demonter USB-lager"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Demonter SD-kort"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index f2e2622..1b87a53 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Globalen HTTP-Proxy und Ausschlusslisten festlegen"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Löschen"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Proxy-Port"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Umgehung des Proxys für"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Standard wiederherstellen"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Verbindungsgeschwindigkeit"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-Adresse"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-Methode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Phase 2-Authentifizierung"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-Zertifikat"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Geben Sie eine gültige DNS-Adresse ein."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Netzwerkpräfix darf max. 32 Zeichen enthalten."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Länge Netzwerkpräfix"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Mobiler WLAN-Hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Mobiler Hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> aktiv"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fehler beim mobilen WLAN-Hotspot"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"SD-Karte zur Bereitstellung einlegen"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"USB-Speicher bereitst."</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"SD-Karte bereitstellen"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"USB-Speicher bereitstellen"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"SD-Karte bereitstellen"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"USB-Speicher löschen"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"SD-Karte löschen"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Löscht alle Daten, z. B. Musik und Fotos, aus dem internen USB-Speicher"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Löscht sämtliche Daten wie Musik und Fotos von der SD-Karte"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Nicht verfügbar"</string>
     <string name="read_only" msgid="6702420168629076340">" (schreibgeschützt)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"USB-Speicher trennen"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"SD-Karte entnehmen"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 6e33c0c..729abe5 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Ορίστε το γενικό διακομιστή μεσολάβησης HTTP και τις λίστες εξαιρέσεων"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Εκκαθάριση"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Θύρα διακομιστή μεσολάβησης"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Διακομιστής μεσολάβησης παράκαμψης για"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Επαναφορά προεπιλογών"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Κατάσταση"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Ταχύτητα σύνδεσης"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Διεύθυνση IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Μέθοδος EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2η φάση ελέγχου ταυτότητας"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Πιστοποιητικό CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Πληκτρολογήστε μια έγκυρη διεύθυνση DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Εισαγάγετε μήκος προθέματος δικτύου από 0 έως 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Πύλη"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Μήκος προθέματος δικτύου"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Φορητό σημείο πρόσβασης Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Το φορητό σημείο πρόσβασης <xliff:g id="NETWORK_SSID">%1$s</xliff:g> είναι ενεργό"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Σφάλμα φορητού σημείου πρόσβασης Wi-Fi"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Εισαγάγετε μια κάρτα SD για τοποθέτηση"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Προσάρτ. χώρου αποθ. USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Τοποθέτηση κάρτας SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Προσάρτηση αποθηκευτικού χώρου USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Τοποθέτηση κάρτας SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Διαγρ. αποθ. χώρου USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Διαγραφή κάρτας SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Διαγραφή των δεδομένων στον εσωτερικό χώρο USB όπως μουσική και φωτογραφίες"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Διαγράφει όλα τα δεδ. που υπάρχουν στην κάρτα SD, όπως αρχ. μουσ. και φωτογ."</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Μη διαθέσιμο"</string>
     <string name="read_only" msgid="6702420168629076340">" (Μόνο για ανάγνωση)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Αποπροσ. αποθ. χώρου USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Αφαίρεση κάρτας SD"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index e5016f6..2f9ab07 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Set the global HTTP proxy and exclusion lists"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Clear"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Proxy port"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Bypass proxy for"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restore defaults"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Link speed"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP address"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP method"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Phase-2 authentication"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA certificate"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Please type a valid DNS address."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Please type a network prefix length of between 0 and 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Network prefix length"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Portable Wi-Fi hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Portable hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> active"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Portable Wi-Fi hotspot error"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Insert an SD card for mounting"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Mount USB storage"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Mount SD card"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Mount the USB storage"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Mount the SD card"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Erase USB storage"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Erase SD card"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Erases all data on the internal USB storage, such as music and photos"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Erases all data on the SD card, such as music and photos"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Unavailable"</string>
     <string name="read_only" msgid="6702420168629076340">" (Read-only)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Unmount USB storage"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Unmount SD card"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 1ff7825..b4d851a 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Establece el proxy HTTP global y las listas de exclusión"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Borrar"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Puerto proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Saltar proxy para"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar configuraciones predeterminadas"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Estado"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocidad del vínculo"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Dirección IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Método EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticación de fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificado de CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Escribe una dirección DNS válida."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Escribe una longitud de prefijo de red entre 0 y 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Acceso"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Longitud de prefijo de red"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Zona activa Wi-Fi portátil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Zona activa portátil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> conectada"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error en la zona activa Wi-Fi portátil"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Insertar una tarjeta SD para el montaje"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Activar el almacenamiento USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Montar tarjeta SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Activar el almacenamiento USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Montar la tarjeta SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Borrar almacenamiento USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Borrar la tarjeta SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Borra todos los datos del almacenamiento USB interno, como la música y las fotos"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Borra todos los datos de la tarjeta SD, como la música y las fotos"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"No disponible"</string>
     <string name="read_only" msgid="6702420168629076340">" (Sólo lectura)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Desmontar almacenamiento USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Desmontar la tarjeta SD"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 7cc2878..7e7241f 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Definir el proxy HTTP global y las listas de exclusión"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Borrar"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Puerto proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Omitir proxy para"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar valores predeterminados"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Estado"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocidad de enlace"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Dirección IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Método EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticación de fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificado de CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Introduce una dirección DNS válida."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Introduce longitud de prefijo de red entre 0 y 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Puerta de enlace"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Longitud prefijo de red"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Zona Wi-Fi portátil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> de zona Wi-Fi portátil activa"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error de zona Wi-Fi portátil"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Insertar una tarjeta SD para el montaje"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Activar almacenamiento USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Activar tarjeta SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Activar el almacenamiento USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Activar tarjeta SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Borrar almacenamiento USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Borrar tarjeta SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Permite borrar los datos del almacenamiento USB interno, como música y fotos."</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Borra todos los datos de la tarjeta SD, como la música y las fotos."</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"No disponible"</string>
     <string name="read_only" msgid="6702420168629076340">" (Sólo lectura)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Desactivar USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Desactivar tarjeta SD"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index d57b0f3..e612720 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"تنظیم پروکسی HTTP جهانی و لیست های استثنا"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"پاک کردن"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"درگاه پروکسی"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"پروکسی Bypass برای"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"بازیابی موارد پیش فرض"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"وضعیت"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"سرعت پیوند"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"آدرس IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"روش EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"تأیید اعتبار مرحله 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"گواهی CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"لطفاً یک آدرس dns معتبر بنویسید."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"لطفاً یک پیشوند شبکه با طول بین 0 تا 32 نویسه تایپ کنید."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"دروازه"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"طول پیشوند شبکه"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"نقطه اتصال Wi-Fi قابل حمل"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"نقطه اتصال قابل حمل <xliff:g id="NETWORK_SSID">%1$s</xliff:g> فعال"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"خطای نقطه اتصال Wi-Fi قابل حمل"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"کارت SD را برای اتصال وارد کنید"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"اتصال حافظه USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"اتصال کارت SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"اتصال حافظه USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"اتصال کارت SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"پاک کردن حافظه USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"پاک کردن کارت SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"پاک کردن همه داده های موجود در حافظه USB داخلی مانند موسیقی و عکس"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"همه داده های موجود در کارت SD مانند موسیقی و عکس ها را پاک می کند"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"در دسترس نیست"</string>
     <string name="read_only" msgid="6702420168629076340">" (فقط خواندنی)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"قطع اتصال حافظه USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"جدا کردن کارت SD"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 9d94c62..243c55b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Aseta yleinen HTTP-välityspalvelin ja poissulkemisluettelot"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Tyhjennä"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Välityspalvelimen portti"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Ohita välityspalvelin seuraavasti:"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Palauta oletukset"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Tila"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Yhteyden nopeus"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-osoite"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-tapa"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Todennus: vaihe 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-varmenne"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Anna kelvollinen dns-osoite."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Anna verkon etuliite, jonka pituus on välillä 0–32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Yhdyskäytävä"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Verkon etuliitteen pituus"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Kannettava wifi-yhteyspiste"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Kannettava yhteyspiste <xliff:g id="NETWORK_SSID">%1$s</xliff:g> käytössä"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Kannettavan wifi-yhteyspisteen virhe"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Aseta käyttöön otettava SD-kortti"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Ota USB-tila käyttöön"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Ota SD-kortti käyttöön"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Ota USB-tallennustila käyttöön"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Ota SD-kortti käyttöön"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Tyhjennä USB-tila"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Tyhjennä SD-kortti"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Poistaa kaikki sisäisen USB-tallennustilan tiedot, kuten musiikin tai valokuvat."</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Poistaa kaikki SD-kortin tiedot, kuten musiikin ja valokuvat"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Ei käytettävissä"</string>
     <string name="read_only" msgid="6702420168629076340">" (Vain luku)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Poista USB-tila käytöstä"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Poista SD-kortti käytöstä"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 6e5a703..61bcdd63 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Définir le proxy HTTP global et les listes d\'exclusion"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Effacer"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Port du proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Ignorer le proxy pour"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Rétablir les paramètres par défaut"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"État"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Vitesse de connexion"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adresse IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Méthode EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Authentification phase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Saisissez une adresse DNS valide."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Le préfixe réseau doit être compris entre 0 et 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Passerelle"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Longueur du préfixe réseau"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Point d\'accès Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Point d\'accès Wi-Fi mobile <xliff:g id="NETWORK_SSID">%1$s</xliff:g> actif"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Erreur liée au point d\'accès Wi-Fi mobile"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Insérer la carte SD à installer"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Installer une mémoire de stockage USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Installer la carte SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Installer la mémoire de stockage USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Installer la carte SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Effacer la mémoire USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Effacer la carte SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Effacer les données de la mémoire de stockage USB interne (ex. : musique, photos)"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Effacer toutes les données de la carte SD, telles que la musique et les photos"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Non disponible"</string>
     <string name="read_only" msgid="6702420168629076340">" (Lecture seule)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Désinstaller la mémoire de stockage USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Désinstaller la carte SD"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index f9ad372..d425f23 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Postavi globalni HTTP proxy i popise za isključivanje"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Očisti"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Priključak proxy poslužitelja"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Zaobiđi proxy za"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Vrati zadano"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Brzina veze"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP adresa"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP metoda"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2. faza provjere autentičnosti"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA certifikat"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Upišite važeću dns adresu."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Upišite prefiks mreže duljine između 0 i 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Pristupnik"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Duljina mrežnog prefiksa"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Prijenosni Wi-Fi hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Aktivan je prijenosni hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Pogreška prijenosnog Wi-Fi hotspota"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Umetnite SD karticu za uključivanje"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Uključi memoriju USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Uključivanje SD kartice"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Uključi USB memoriju"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Uključite SD karticu"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Izbriši USB memoriju"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Izbriši karticu SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Briše sve podatke na unutarnjoj memoriji USB, poput glazbe ili fotografija"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Briše sve podatke na kartici SD, poput glazbe i fotografija"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Nije dostupno"</string>
     <string name="read_only" msgid="6702420168629076340">" (samo za čitanje)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Isključi USB memoriju"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Isključi SD karticu"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index ed75755..a5deb79 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"A globális HTTP proxy- és kivétellisták beállítása"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Törlés"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Proxy portja:"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Megkerülési proxy ehhez:"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"pelda.com,szgepem.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Alapértelmezés visszaállítása"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Állapot"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Vonalsebesség"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-cím"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP módszer"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Hitelesítés 2. fázisa"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA tanúsítvány"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Adjon meg érvényes DNS címet."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"0 és 32 közti hosszt adjon meg a hálózati előtaghoz."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Átjáró"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Hálózati előtag hossza"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hordozható Wi-Fi hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"A(z) <xliff:g id="NETWORK_SSID">%1$s</xliff:g> hordozható hotspot aktív"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"A hordozható Wi-Fi hotspot hibája"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Helyezzen be egy SD-kártyát a csatlakoztatáshoz"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Az USB-tár csatolása"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"SD-kártya csatolása"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Az USB-tár csatlakoztatása"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"SD-kártya csatolása"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"USB-tár törlése"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"SD-kártya törlése"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Minden adat, például zenék és képek törlése a belső USB-tárról"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Törli az összes adatot (például a zenéket és fotókat) az SD-kártyáról"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Nem érhető el"</string>
     <string name="read_only" msgid="6702420168629076340">" (Írásvédett)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"USB-tár leválasztása"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"SD-kártya leválasztása"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index a62d5a8..19bcd04 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Setel proxy HTTP global dan daftar pengecualian"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Bersihkan"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Porta proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Abaikan proxy untuk"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Pulihkan bawaan"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Kecepatan tautan"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"alamat IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metode EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autentikasi tahap 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Sertifikat CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Ketikkan alamat dns yang valid."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Ketikkan panjang awalan jaringan antara 0 dan 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Panjang awalan jaringan"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hotspot Wi-Fi portabel"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> hotspot portabel aktif"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Galat hotspot Wi-Fi portabel"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Masukkan kartu SD untuk dipasangkan"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Pasang penyimpanan USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Pasang kartu SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Pasang penyimpanan USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Pasang kartu SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Hapus penyimpanan USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Hapus kartu SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Hapus semua data di penyimpanan USB internal, seperti musik dan foto"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Hapus semua data di kartu SD, seperti musik dan foto"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Tidak Tersedia"</string>
     <string name="read_only" msgid="6702420168629076340">" (Hanya-baca)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Lepas penyimpanan USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Lepaskan kartu SD"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index f5e4dbf..a5e5b35 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Imposta il proxy HTTP globale e gli elenchi di esclusioni"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Cancella"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Porta proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Ignora proxy per"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Ripristina predefinite"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stato"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocità di collegamento"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Indirizzo IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metodo EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticazione fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificato CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Digita un indirizzo DNS valido."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Digita lunghezza prefisso rete tra 0 e 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Lunghezza prefisso rete"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hotspot Wi-Fi portatile"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Hotspot portatile <xliff:g id="NETWORK_SSID">%1$s</xliff:g> attivo"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Errore hotspot Wi-Fi portatile"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Inserisci una scheda SD da montare"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Monta archivio USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Installa scheda SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Monta archivio USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Installa la scheda SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Cancella archivio USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Cancella scheda SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Cancella i dati nell\'archivio USB interno, come musica e foto"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Cancella tutti i dati sulla scheda SD, come musica e foto"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Non disponibile"</string>
     <string name="read_only" msgid="6702420168629076340">" (Sola lettura)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Smonta archivio USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Smonta scheda SD"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 1118044..9cdf28f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"הגדר את שרת proxy הגלובלי של HTTP ורשימות אי הכללה"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"נקה"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"יציאת שרת proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"עקוף שרת proxy עבור"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"שחזר ברירות מחדל"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"מצב"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"מהירות קישור"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"כתובת IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"שיטת EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"אימות שלב 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"אישור CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"הקלד כתובת dns חוקית."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"הקלד אורך של קידומת רשת בין 0 ו-32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"שער"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"אורך קידומת של רשת"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">" נקודה חמה ניידת של Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> פעיל של נקודה חמה ניידת"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"שגיאת נקודה חמה ניידת של Wi-Fi"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"הכנס כרטיס SD לצורך טעינה"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"טען אמצעי אחסון מסוג USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"טען כרטיס SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"טען את אמצעי האחסון מסוג USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"טען את כרטיס ה-SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"מחק אמצעי אחסון מסוג USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"מחק כרטיס SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"מוחק את כל הנתונים שבאמצעי האחסון הפנימי מסוג USB, כגון מוסיקה או תמונות."</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"מוחק את כל הנתונים בכרטיס ה-SD, כגון מוסיקה ותמונות."</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"לא זמין"</string>
     <string name="read_only" msgid="6702420168629076340">" (לקריאה בלבד)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"בטל טעינת אמצעי אחסון מסוג USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"ביטול טעינת כרטיס SD"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 0aee6d8..93cde19 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"グローバルHTTPプロキシと除外リストを設定する"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"消去"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"プロキシポート"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"プロキシを不使用"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"初期設定に戻す"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"接続状況"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"リンク速度"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IPアドレス"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP方式"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"フェーズ2認証"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA証明書"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"有効なDNSアドレスを入力してください。"</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"ネットワークプレフィックス長は0～32で指定してください"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"ゲートウェイ"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"ネットワークプレフィックス長"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"ポータブルWi-Fiアクセスポイント"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"ポータブルアクセスポイント<xliff:g id="NETWORK_SSID">%1$s</xliff:g>が有効です"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"ポータブルWi-Fiアクセスポイントエラー"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"マウントするSDカードを挿入"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"USBストレージをマウント"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"SDカードをマウント"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"USBストレージをマウント"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"SDカードをマウント"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"USBストレージ内データを消去"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"SDカード内データを消去"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"内部USBストレージ内の全データ（音楽、写真など）の消去"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"SDカード内の全データ（音楽、写真など）の消去"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"使用不可"</string>
     <string name="read_only" msgid="6702420168629076340">" （読み取り専用）"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"USBストレージのマウント解除"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"SDカードのマウント解除"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index b7d87f5..13f0888 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"전체 HTTP 프록시 및 제외목록 설정"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"지우기"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"프록시 포트"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"프록시 우회 대상:"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"기본값 복원"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"상태"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"링크 속도"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP 주소"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP 방식"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"단계 2 인증"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA 인증서"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"올바른 DNS 주소를 입력하세요."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"0에서 32 사이의 네트워크 접두비트 길이를 입력해 주세요."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"게이트웨이"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"네트워크 접두어 길이"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"휴대용 Wi-Fi 핫스팟"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"휴대용 핫스팟 <xliff:g id="NETWORK_SSID">%1$s</xliff:g> 사용"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"휴대용 Wi-Fi 핫스팟 오류"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"마운트할 SD 카드 삽입"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"USB 저장소 마운트"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"SD 카드 마운트"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"USB 저장소 마운트"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"SD 카드 마운트"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"USB 저장소 지우기"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"SD 카드 지우기"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"내부 USB 저장소에 있는 모든 데이터(예: 음악 및 사진)를 지웁니다."</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"SD 카드에 있는 모든 데이터(예: 음악 및 사진) 지우기"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"사용할 수 없음"</string>
     <string name="read_only" msgid="6702420168629076340">" (읽기전용)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"USB 저장소 마운트 해제"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"SD 카드 마운트 해제"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 2d7b920..26232cc 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Nustatyti bendrąjį HTTP tarpinį serverį ir išimčių sąrašus"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Išvalyti"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Tarpinio serverio prievadas"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Išjungti įgaliotąjį serverį, skirtą"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com, mycomp.test.com, localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Atkurti numatytuosius nustatymus"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Būsena"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Susiejimo greitis"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP adresas"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP būdas"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2 tapatybės nustatymo fazė"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA sertifikatas"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Įveskite galiojantį DNS adresą."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Įveskite 0–32 simbolių tinklo kodą."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Tinklų sietuvas"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Tinklo kodo ilgis"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Perkeliama „Wi-Fi“ aktyvioji sritis"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Perkeliama aktyvioji sritis <xliff:g id="NETWORK_SSID">%1$s</xliff:g> aktyvi"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Perkeliamos „Wi-Fi“ aktyviosios srities klaida"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Įdėti SD kortelę, kad ji būtų įmontuota"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Prijungti USB atmintinę"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Įdėti SD kortelę"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Prijungti USB atmintinę"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Įdėti SD kortelę"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Ištrinti USB atmintinę"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Ištrinti SD kortelę"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Ištrinami visi vidinės USB atmint. duomenys, pvz., muzikos failai ir nuotraukos"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Ištrinami visi SD kortelės duomenys, pvz., muzikos failai ir nuotraukos"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Užimtas (-a)"</string>
     <string name="read_only" msgid="6702420168629076340">" (tik skaitoma)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Atjungti USB atmintinę"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Išimti SD kortelę"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 24bd0f9..2e93062 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Iestatiet globālo HTTP starpniekserveri un izslēgšanas sarakstus"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Notīrīt"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Starpniekservera ports"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Apiet starpniekserveri:"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Atjaunot noklusējuma iestatījumus"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Statuss"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Saites izveides ātrums"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP adrese"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP metode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2. fāzes autentifikācija"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA sertifikāts"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Lūdzu, ierakstiet derīgu DNS adresi."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Ierakstiet tīkla prefiksu, kura garums ir 0–32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Vārteja"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Tīkla prefiksa garums"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Pārnēsājams Wi-Fi tīklājs"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Pārnēsājamais tīklājs <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ir aktīvs"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Pārnēsājamā Wi-Fi tīklāja kļūda"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Ievietot SD karti uzstādīšanai"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Uzstādīt USB krātuvi"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Pievienot SD karti"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Uzstādīt USB atmiņu"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Pievienot SD karti"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Dzēst USB krātuvi"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Dzēst SD karti"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Dzēst visus iekšējā USB krātuvē saglabātos datus, piem., mūziku vai fotoattēlus."</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Dzēš visus SD kartē saglabātos datus, piemēram, mūzikas failus un fotoattēlus."</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Nepieejams"</string>
     <string name="read_only" msgid="6702420168629076340">" (Tikai lasāms)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Atvienot USB krātuvi"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Atvienot SD karti"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 4bbfe4e..ac848a8 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Angi global HTTP-mellomtjener og eksklusjonslister"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Tøm"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Port for mellomtjener"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Gå forbi mellomtjener for"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"eteksempel.no,mycomp.test.com,lokal vert"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Gjenopprett standardinnstillinger"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Koblingshastighet"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-adresse"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-metode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Fase 2-autentisering"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-sertifikat"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Angi en gyldig DNS-adresse."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Angi nettverksprefikslengde mellom 0 og 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Standardruter"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Lengde på nettv.prefiks"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Flyttbar trådløs sone"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Flyttbar trådløs sone <xliff:g id="NETWORK_SSID">%1$s</xliff:g> er aktiv"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Flyttbar trådløs sone – feil"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Sett inn et minnekort for å koble til"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Koble til USB-lagring"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Koble til minnekort"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Koble til USB-lagring"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Koble til minnekortet"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Slett USB-lagring"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Slett SD-kort"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Sletter intern USB-lagring, som musikk og bilder"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Sletter alle data på SD-kortet, for eksempel musikk og bilder"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Ikke tilgjengelig"</string>
     <string name="read_only" msgid="6702420168629076340">" (skrivebeskyttet)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Koble fra USB-lagring"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Koble fra minnekort"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index fca5e27..d79bc32 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Algemene HTTP-proxy en uitsluitingslijsten instellen"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Wissen"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Proxy-poort"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Proxy omzeilen voor"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mijncomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Standaardwaarden herstellen"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Linksnelheid"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-adres"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-methode"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Phase 2-verificatie"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-certificaat"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Voer een geldig DNS-adres in."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Typ een netwerkprefix van 0-32 tekens."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Lengte van netwerkprefix"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Draagbare Wi-Fi-hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Draagbare hotspot <xliff:g id="NETWORK_SSID">%1$s</xliff:g> actief"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fout met draagbare Wi-Fi-hotspot"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Plaats een SD-kaart om deze te koppelen"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"USB-opslag koppelen"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"SD-kaart koppelen"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"USB-opslag koppelen"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"De SD-kaart koppelen"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"USB-opslag wissen"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"SD-kaart wissen"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Wist alle gegevens in de interne USB-opslag, zoals muziek en foto\'s"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Hiermee worden alle gegevens op de SD-kaart gewist, zoals muziek en foto\'s"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Niet beschikbaar"</string>
     <string name="read_only" msgid="6702420168629076340">" (Alleen-lezen)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"USB-opslag ontkoppelen"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"SD-kaart ontkoppelen"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 4fafdab..aba41f9 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Ustaw globalny serwer proxy HTTP i listę wykluczeń"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Wyczyść"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Numer portu serwera proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Omiń serwer proxy w przypadku"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mojkomputer.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Przywróć ustawienia domyślne"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stan"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Szybkość łącza"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adres IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metoda EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Uwierzytelnianie Phase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certyfikat urzędu certyfikacji"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Wprowadź prawidłowy adres DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Wprowadź długość przedrostka sieci z zakresu 0–32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Brama"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Długość przedrostka sieci"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Przenośny punkt Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Przenośny punkt dostępu <xliff:g id="NETWORK_SSID">%1$s</xliff:g> jest aktywny"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Błąd przenośnego punktu dostępu Wi-Fi"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Włóż kartę SD w celu zainstalowania"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Podłącz nośnik USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Zainstaluj kartę SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Podłącz nośnik USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Zainstaluj kartę SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Wyczyść nośnik USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Wyczyść kartę SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Wymazuje wszystkie dane z wewnętrznego nośnika USB, np. pliki muzyczne i zdjęcia"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Wymazuje z karty SD telefonu wszystkie dane, takie jak muzyka czy zdjęcia"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Niedostępna"</string>
     <string name="read_only" msgid="6702420168629076340">" (Tylko do odczytu)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Odłącz nośnik USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Odinstaluj kartę SD"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index b549dd7..8feea21 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Definir o proxy HTTP global e as listas de exclusão"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Limpar"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Porta proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Ignorar proxy para"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"exemplo.com,meucomp.teste.com,anfitirãolocal"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar predefinições"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Estado"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocidade da ligação"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Endereço IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"método EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticação da fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificado CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Introduza um endereço DNS válido."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Introduza um compr. de prefixo de rede de 0 a 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Compr. do prefixo de rede"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hotspot Wi-Fi portátil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Hotspot portátil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> activo"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Erro do hotspot Wi-Fi portátil"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Inserir cartão SD para instalação"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Montar armazenamento USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Instalar cartão SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Montar o armazenamento USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Instalar cartão SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Apagar armazenamento USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Apagar cartão SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Apaga todos os dados do armazenamento USB interno, como músicas e fotografias"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Apaga todos os dados do cartão SD, tais como música e fotografias"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Indisponível"</string>
     <string name="read_only" msgid="6702420168629076340">" (Só de leitura)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Desmontar armaz. USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Desmontar cartão SD"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 536069c..c772c12 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Define o proxy HTTP geral e as listas de exclusão"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Limpar"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Porta do proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Evitar proxy para"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar padrões"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Velocidade do link"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Endereço IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Método EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autenticação da Fase 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificado CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Digite um endereço de DNS válido."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Digite um tamanho do prefixo de rede entre 0 e 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Tamanho do pref. de rede"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Ponto de acesso Wi-Fi portátil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Ponto de acesso portátil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ativo"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Erro de ponto de acesso Wi-Fi portátil"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Insira um cartão SD para conexão"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Conectar armazenam. USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Conectar cartão SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Montar o armazenamento USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Conectar o cartão SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Apagar armazenamento USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Apagar cartão SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Apaga todos os dados do armazenamento USB interno, como músicas e fotos"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Apaga todos os dados do cartão SD, como músicas e fotos"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Não disponível"</string>
     <string name="read_only" msgid="6702420168629076340">" (Somente leitura)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Desconectar armaz. USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Desconectar cartão SD"</string>
diff --git a/res/values-rm/strings.xml b/res/values-rm/strings.xml
index f77730e..fab97b1 100644
--- a/res/values-rm/strings.xml
+++ b/res/values-rm/strings.xml
@@ -162,8 +162,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Definir il proxy HTTP global e las glistas d\'exclusiun"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Stizzar"</string>
     <!-- outdated translation 2623639656638472491 -->     <string name="proxy_port_label" msgid="5655276502233453400">"Port"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <!-- outdated translation 204409815790850313 -->     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Nagin proxy per"</string>
     <!-- no translation found for proxy_exclusionlist_hint (6084099226687226948) -->
     <skip />
@@ -577,8 +575,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Sveltezza da la connexiun"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adressa IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metoda EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autentificaziun fasa 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat CA"</string>
@@ -627,18 +623,10 @@
     <!-- no translation found for wifi_ip_settings_invalid_network_prefix_length (8145730615716855433) -->
     <skip />
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <!-- no translation found for wifi_network_prefix_length (3028785234245085998) -->
     <skip />
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Punct d\'access WLAN mobil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Punct d\'access WLAN mobil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> activ"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Errur en connex cun il punct d\'access WLAN mobil"</string>
@@ -807,13 +795,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Inserir ina carta SD per la montar"</string>
     <!-- outdated translation 5940523765187704135 -->     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Montar la carta SD"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Montar la carta SD"</string>
-    <!-- outdated translation 4936591681679097699 -->     <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Montar la carta SD"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Montar la carta SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <!-- outdated translation 5448738337382712203 -->     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Formatar la carta SD"</string>
     <!-- outdated translation 5448738337382712203 -->     <string name="sd_format" product="default" msgid="2576054280507119870">"Formatar la carta SD"</string>
     <!-- outdated translation 6616491027883134004 -->     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Formatar (stizzar) la carta SD"</string>
     <!-- outdated translation 6616491027883134004 -->     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Formatar (stizzar) la carta SD"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Betg disponibel"</string>
     <string name="read_only" msgid="6702420168629076340">" (mo per lectura)"</string>
     <!-- outdated translation 8612140627310646730 -->     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Demontar la carta SD"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Demontar la carta SD"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 5b27a51..d49ebf7 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Setaţi serverul proxy HTTP global şi listele de excludere"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Ştergeţi"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Port proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Evitaţi utilizarea unui proxy pentru"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Restabiliţi valorile prestabilite"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stare"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Viteză link"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adresă IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metodă EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autentificare faza 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificat CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Introduceţi o adresă DNS validă."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Intr. un prefix de reţea de min. 0 şi max. 32 caract."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Lungime prefix reţea"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Hotspot Wi-Fi portabil"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Hotspot portabil <xliff:g id="NETWORK_SSID">%1$s</xliff:g> activ"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Eroare de hotspot Wi-Fi portabil"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Introduceţi un card SD pentru montare"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Montaţi stocarea USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Montaţi cardul SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Montarea stocării USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Montaţi cardul SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Ştergeţi stocarea USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Ştergeţi cardul SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Şterge toate datele din stocarea USB internă, cum ar fi muzica şi fotografiile"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Şterge toate datele de pe cardul SD, cum ar fi muzica şi fotografiile"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Indisponibil"</string>
     <string name="read_only" msgid="6702420168629076340">" (numai citire)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Demontaţi stocarea USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Demontaţi cardul SD"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 08d70e4..57d57ab 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Настройка глобального прокси HTTP и списка исключений"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Очистить"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Порт прокси-сервера"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Не использовать прокси-сервер для:"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Восстановить настройки по умолчанию"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Статус"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Скорость связи"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-адрес"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Метод EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"2-й этап аутентификации"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Сертификат центра сертификации"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Введите действительный DNS-адрес."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Введите префикс сети длиной от 0 до 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Шлюз"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Длина префикса сети"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Точка доступа Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Точка доступа <xliff:g id="NETWORK_SSID">%1$s</xliff:g> активна"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Ошибка подключения"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Вставьте SD-карту для подключения"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Подключить USB-накопитель"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Подключить SD-карту"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Подключить USB-накопитель"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Подключить SD-карту"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Очистить USB-накопитель"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Очистить SD-карту"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Удаление с внутреннего USB-накопителя телефона всех данных, включая музыку и фотографии."</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Удаляет все данные с SD-карты, например музыку и фотографии"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Недоступно"</string>
     <string name="read_only" msgid="6702420168629076340">" (только для чтения)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Отключить USB-накопитель"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Отключение SD-карты"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 4eb0a20d..9793009 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Nastavenie globálneho servera proxy protokolu HTTP a zoznamu vylúčení"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Vymazať"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Port proxy:"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Nepoužívať server proxy pre"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Obnoviť predvolené nastavenia"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stav"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Rýchlosť pripojenia"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Adresa IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Metóda EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Overenie – 2. fáza"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certifikát CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Zadajte platnú adresu DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Zadajte dĺžku sieťovej predpony v rozsahu 0 až 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"Server DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"Server DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Brána"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Dĺžka sieťovej predpony"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Prenosný prístupový bod Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Prenosný prístupový bod <xliff:g id="NETWORK_SSID">%1$s</xliff:g> je aktívny"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Chyba prenosného prístupového bodu Wi-Fi"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Vložte kartu SD, ktorú chcete pripojiť"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Pripoj. ukl. priestor USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Pripojiť kartu SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Pripojiť ukladací priestor USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Pripojiť kartu SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Vymazať ukladací priestor USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Vymazať kartu SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Vymaže vš. údaje v internom uklad. priestore USB, napr. hudbu alebo fotografie."</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Vymaže všetky údaje na karte SD, ako je hudba alebo fotografie"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Nie sú k dispozícii"</string>
     <string name="read_only" msgid="6702420168629076340">" (Iba na čítanie)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Odpoj. uklad. priestor USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Odpojiť kartu SD"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 68a5149..7bd648b 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Nastavi globalni strežnik HTTP proxy in seznam izločitev"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Počisti"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Vrata strežnika proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Obidi strežnik proxy pri"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com, mycomp.test.com, localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Ponastavi na privzeto"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Stanje"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Hitrost povezave"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Naslov IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Način EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Preverjanje pristnosti v fazi 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Overjeno potrdilo"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Vnesite veljaven naslov DNS."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Vnesite predpono omrežja, dolgo med 0 in 32 znaki."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Prehod"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Dolžina predpone omrežja"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Prenosna brezžična dostopna točka"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Prenosna dostopna točka <xliff:g id="NETWORK_SSID">%1$s</xliff:g> dejavna"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Napaka prenosne brezžične dostopne dostopne točke"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Vstavite kartico SD, da bo vpeta"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Vpni pomnilnik USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Vpni kartico SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Vpni pomnilnik USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Vpni kartico SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Izbriši pomnilnik USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Izbriši kartico SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Izbriše vse podatke na notranjem pomnilniku USB, na primer glasbo ali fotografije"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Izbriše vse podatke na kartici SD, na primer glasbo ali fotografije"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Ni na voljo"</string>
     <string name="read_only" msgid="6702420168629076340">" (Samo za branje)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Izpni pomnilnik USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Izpni kartico SD"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index d868a94..e3bd144 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Подесите глобални HTTP прокси и листе изузимања"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Обриши"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Прокси порт"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Прокси се заобилази за"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mojracunar.test.com,lokalnihost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Врати на подразумевано"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Статус"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Брзина везе"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP адреса"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP метод"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Потврда идентитета друге фазе"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA сертификат"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Унесите важећу DNS адресу."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Унесите префикс мреже дужине између 0 и 32 знака."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Мрежни пролаз"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Дужина префикса мреже"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Преносна Wi-Fi приступна тачка"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Преносна приступна тачка <xliff:g id="NETWORK_SSID">%1$s</xliff:g> је активна"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Грешка у преносној Wi-Fi приступној тачки"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Уметање SD картице за прикључивање"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Прикључите USB меморију"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Прикључивање SD картице"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Прикључите USB меморију"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Прикључивање SD картице"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Брисање USB меморије"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Брисање SD картице"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Брише све податке из интерне USB меморије, као што су музика и фотографије"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Брише све податке са SD картице, као што су музика и фотографије"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Недоступно"</string>
     <string name="read_only" msgid="6702420168629076340">" (Само за читање)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Искључи USB меморију"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Ослобађање SD картице"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 917f9ce..2e407c5 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Ange global HTTP-proxy och uteslutningslistor"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Rensa"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Proxyport"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Förbigå proxy för"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"exempel.se,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Återställ standardinställningar"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Status"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Länkhastighet"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP-adress"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP-metod"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Autentisering för fas 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA-certifikat"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Ange en giltig DNS-adress."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Ange en nätverksprefixlängd mellan 0 och 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Nätverksprefixets längd"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Mobil Wi-Fi-surfpunkt"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Mobil surfpunkt <xliff:g id="NETWORK_SSID">%1$s</xliff:g> aktiv"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Fel på mobil Wi-Fi-surfpunkt"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Sätt in ett SD-kort för montering"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Sätt i USB-enheten"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Montera SD-kort"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Sätt i USB-enheten"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Montera SD-kortet"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Radera USB-lagring"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Radera SD-kort"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Raderar alla data på den interna USB-lagringsenheten, som musik och foton"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Alla data tas bort från på SD-kortet, bland annat musik och foton"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Inte tillgängligt"</string>
     <string name="read_only" msgid="6702420168629076340">" (Skrivskyddad)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Demontera USB-enhet"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Montera bort SD-kort"</string>
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
new file mode 100755
index 0000000..9bd2336
--- /dev/null
+++ b/res/values-sw600dp-land/dimens.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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>
+    <dimen name="screen_margin_sides">128dip</dimen>
+</resources>
diff --git a/res/values-xlarge/bools.xml b/res/values-sw600dp/bools.xml
similarity index 100%
rename from res/values-xlarge/bools.xml
rename to res/values-sw600dp/bools.xml
diff --git a/res/values-xlarge/colors.xml b/res/values-sw600dp/colors.xml
similarity index 100%
rename from res/values-xlarge/colors.xml
rename to res/values-sw600dp/colors.xml
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
new file mode 100755
index 0000000..bc9f18d
--- /dev/null
+++ b/res/values-sw600dp/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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>
+    <dimen name="screen_margin_sides">40dip</dimen>
+    <dimen name="datetime_margin_top">40dip</dimen>
+    <dimen name="datetime_margin_bottom">40dip</dimen>
+</resources>
diff --git a/res/values-xlarge/styles.xml b/res/values-sw600dp/styles.xml
similarity index 100%
rename from res/values-xlarge/styles.xml
rename to res/values-sw600dp/styles.xml
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 933885d..403c85b 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"ตั้งค่าพร็อกซี HTTP ส่วนกลางและรายการยกเว้น"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"ล้างข้อมูล"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"พอร์ตพร็อกซี"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"ไม่ใช้พร็อกซีสำหรับ"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"คืนค่าเริ่มต้น"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"สถานะ"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"ความเร็วในการลิงก์"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"ที่อยู่ IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"วิธีการ EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"การตรวจสอบสิทธิ์เฟส 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"ใบรับรอง CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"โปรดพิมพ์ที่อยู่ DNS ที่ถูกต้อง"</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"โปรดพิมพ์รหัสเครือข่ายระหว่าง 0 ถึง 32 อักขระ"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"เกตเวย์"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"ความยาวของหมายเลขเครือข่าย"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Wi-Fi ฮอตสปอตแบบพกพา"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"ฮอตสปอตแบบพกพาได้ <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ทำงานอยู่"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"ข้อผิดพลาดของ Wi-Fi ฮอตสปอตแบบพกพา"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"เสียบการ์ด SD เพื่อต่อเชื่อม"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"ต่อเชื่อมที่เก็บข้อมูล USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"ต่อเชื่อมการ์ด SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"ต่อเชื่อมที่เก็บข้อมูล USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"ต่อเชื่อมการ์ด SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"ลบที่เก็บข้อมูล USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"ลบการ์ด SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"ลบข้อมูลทั้งหมดบนที่เก็บข้อมูล USB ภายใน เช่น เพลงและรูปภาพ"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"ลบข้อมูลทั้งหมดบนการ์ด SD เช่น เพลงและรูปภาพ"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"ไม่ว่าง"</string>
     <string name="read_only" msgid="6702420168629076340">" (อ่านอย่างเดียว)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"ยกเลิกการต่อเชื่อมที่เก็บข้อมูล USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"ยกเลิกการต่อเชื่อมการ์ด SD"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 13991ba..4562cd3 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Itakda ang pandaigdigang HTTP proxy at mga listahan ng pagbubukod"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"I-clear"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Port ng proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Bypass proxy para sa"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Ibalik ang mga default"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Katayuan"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"I-link ang bilis"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP address"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Pamamaraang EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Phase 2 na pagpapatotoo"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Certificate ng CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Mangyaring mag-type ng wastong dns address."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"I-type haba prefix ng network pagitan ng 0 at 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Gateway"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Haba ng prefix ng network"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Portable na Wi-Fi hotspot"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Ang Portable na hotspot na <xliff:g id="NETWORK_SSID">%1$s</xliff:g> ay aktibo"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Error sa portable na hotspot ng Wi-Fi"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Maglagay ng SD card para sa pag-mount"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"I-mount imbakan na USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"I-mount ang SD card"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"I-mount ang imbakan na USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"I-mount ang SD card"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Burahin imbakan na USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Burahin ang SD card"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Buburahin lahat ng data sa panloob na imbakan na USB, gaya ng musika at larawan"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Binubura ang lahat ng data sa SD card, gaya ng mga musika at larawan"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Hindi available"</string>
     <string name="read_only" msgid="6702420168629076340">" (Read-only)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"I-unmount imbakan na USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"I-unmount ang SD card"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 3a7afd7..ad315cf 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Genel HTTP proxy\'sini ve dışlama listelerini ayarla"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Temizle"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Proxy bağlantı noktası"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Şunlar için proxy\'yi atla"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,bilgisayarim.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Varsayılanları geri yükle"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Durum"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Bağlantı hızı"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP adresi"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP yöntemi"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Aşama 2 için kimlik doğrulaması"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA sertifikası"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Lütfen geçerli bir DNS adresi yazın."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Lütfen 0 ile 32 arasında bir ağ önek uzunluğu yazın."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Geçit"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Ağ önek uzunluğu"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Taşınabilir kablosuz ortak erişim noktası"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Taşınabilir ortak erişim noktası <xliff:g id="NETWORK_SSID">%1$s</xliff:g> etkin"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Taşınabilir kablosuz ortak erişim noktası hatası"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Eklemek için bir SD kart yerleştirin"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"USB depl birimini ekleyin"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"SD kartı ekle"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Dahili USB depolama birimini ekle"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"SD kartı ekle"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"USB depolama birimini sil"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"SD kartı sil"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Dahili USB depolama birimindeki müzik ve fotoğraf gibi tüm verileri siler"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"SD karttaki müzik ve fotoğraf gibi tüm verileri siler"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Kullanılamıyor"</string>
     <string name="read_only" msgid="6702420168629076340">" (Salt okunur)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"USB dep brmnn bağln kes"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"SD kartının bağlantısını kes"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 22a5010..5bde614 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Устан. глоб. проксі-сервер HTTP й списки виключ."</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Очистити"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Порт проксі-сервера"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Обходити проксі-сервер для"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Відн. станд. знач."</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Стан"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Швид. зв\'язку"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"ІР-адреса"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Метод EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Друга фаза автентифікації"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Сертифікат ЦС"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Введіть дійсну DNS-адресу."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Введіть довжину префіксу мережі від 0 до 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Шлюз"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Довжина префіксу мережі"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Портат. точка дост. Wi-Fi"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Порт. точка дост. <xliff:g id="NETWORK_SSID">%1$s</xliff:g> активна"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Помилка порт. точки дост. Wi-Fi"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Вставте карту SD для підключ."</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Підключити носій USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Підкл. карту SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Підключити носій USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Підключ. карту SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Очистити носій USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Очистити карту SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Видаляє всі дані на внутрішньому носії USB, такі як музика та фото"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Стирає всі дані на карті SD, як-от музику та фото"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Недоступна"</string>
     <string name="read_only" msgid="6702420168629076340">" (Лише чит.)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Відключити носій USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Відключ. карту SD"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index a449f22..bb2f4f5 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"Đặt proxy HTTP chung và danh sách loại trừ"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"Xoá"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Cổng proxy"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Bỏ qua proxy cho"</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"Khôi phục mặc định"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"Trạng thái"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"Tốc độ liên kết"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"Địa chỉa IP"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"Phương pháp EAP"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"Xác thực Giai đoạn 2"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"Chứng chỉ CA"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"Vui lòng nhập địa chỉ dns hợp lệ."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"Vui lòng nhập độ dài tiền tố mạng từ 0 đến 32."</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"Cổng"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"Độ dài tiền tố mạng"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"Điểm phát sóng Wi-Fi di động"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"Điểm phát sóng di động <xliff:g id="NETWORK_SSID">%1$s</xliff:g> hoạt động"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"Lỗi điểm phát sóng Wi-Fi di động"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"Lắp thẻ SD để gắn"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"Kết nối bộ nhớ USB"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"Lắp thẻ SD"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"Kết nối bộ nhớ USB"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"Lắp thẻ SD"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"Xóa bộ nhớ USB"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"Xóa thẻ SD"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Xóa tất cả dữ liệu trên bộ nhớ trong USB, chẳng hạn như nhạc và ảnh"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"Xóa tất cả dữ liệu trên thẻ SD, chẳng hạn như nhạc và ảnh"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"Không rảnh"</string>
     <string name="read_only" msgid="6702420168629076340">" (Chỉ đọc)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"Ngắt kết nối bộ nhớ USB"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"Tháo thẻ SD"</string>
diff --git a/res/values-xlarge/dimens.xml b/res/values-xlarge/dimens.xml
new file mode 100755
index 0000000..b6b4591
--- /dev/null
+++ b/res/values-xlarge/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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>
+    <dimen name="screen_margin_sides">128dip</dimen>
+    <dimen name="datetime_margin_top">154dip</dimen>
+    <dimen name="datetime_margin_bottom">96dip</dimen>
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index a56672f..ae9e55c 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"设置全局 HTTP 代理和排除列表"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"清除"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"代理服务器端口"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"对以下对象绕过代理："</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"恢复默认设置"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"状态消息"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"连接速度"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP 地址"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP 方法"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"阶段 2 身份验证"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA 证书"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"请键入有效的 DNS 地址。"</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"请键入长度在 0 到 32 之间的网络前缀。"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"域名 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"域名 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"网关"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"网络前缀长度"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"便携式 Wi-Fi 热点"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"便携式热点 <xliff:g id="NETWORK_SSID">%1$s</xliff:g> 已启用"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"便携式 Wi-Fi 热点错误"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"插入 SD 卡进行安装"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"装载 USB 存储设备"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"安装 SD 卡"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"装载 USB 存储器"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"安装 SD 卡"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"格式化 USB 存储设备"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"格式化 SD 卡"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"清除内部 USB 存储设备中的全部数据，例如音乐和照片"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"清除 SD 卡中的全部数据，例如音乐和照片"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"不可用"</string>
     <string name="read_only" msgid="6702420168629076340">" （只读）"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"卸载 USB 存储设备"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"卸载 SD 卡"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 347f0d8..de0c206 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -148,8 +148,6 @@
     <string name="proxy_settings_summary" msgid="7898928000758321486">"設定全域 HTTP Proxy 和排除清單"</string>
     <string name="proxy_clear_text" msgid="5555400754952012657">"清除"</string>
     <string name="proxy_port_label" msgid="5655276502233453400">"Proxy 通訊埠"</string>
-    <!-- no translation found for proxy_port_hint (56832878488386205) -->
-    <skip />
     <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"略過以下 Proxy："</string>
     <string name="proxy_exclusionlist_hint" msgid="6084099226687226948">"example.com,mycomp.test.com,localhost"</string>
     <string name="proxy_defaultView_text" msgid="6387985519141433291">"還原預設值"</string>
@@ -480,8 +478,6 @@
     <string name="wifi_status" msgid="4824568012414605414">"狀態"</string>
     <string name="wifi_speed" msgid="3526198708812322037">"連線速度"</string>
     <string name="wifi_ip_address" msgid="1440054061044402918">"IP 位址"</string>
-    <!-- no translation found for wifi_ip_address_hint (8743430259685731436) -->
-    <skip />
     <string name="wifi_eap_method" msgid="8529436133640730382">"EAP 方法"</string>
     <string name="please_select_phase2" msgid="5231074529772044898">"階段 2 驗證"</string>
     <string name="wifi_eap_ca_cert" msgid="3521574865488892851">"CA 憑證"</string>
@@ -519,17 +515,9 @@
     <string name="wifi_ip_settings_invalid_dns" msgid="3428867750550854065">"請輸入有效的 DNS 位址。"</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="8145730615716855433">"請輸入長度介於 0 到 32 之間的網路首碼。"</string>
     <string name="wifi_dns1" msgid="7344118050720080045">"DNS 1"</string>
-    <!-- no translation found for wifi_dns1_hint (6456813483795602877) -->
-    <skip />
     <string name="wifi_dns2" msgid="1368601006824882659">"DNS 2"</string>
-    <!-- no translation found for wifi_dns2_hint (7619765588130757472) -->
-    <skip />
     <string name="wifi_gateway" msgid="163914742461092086">"閘道"</string>
-    <!-- no translation found for wifi_gateway_hint (8795112538577969474) -->
-    <skip />
     <string name="wifi_network_prefix_length" msgid="3028785234245085998">"網路首碼長度"</string>
-    <!-- no translation found for wifi_network_prefix_length_hint (5443152484519915633) -->
-    <skip />
     <string name="wifi_tether_checkbox_text" msgid="6961605862058056788">"可攜式 Wi-Fi 無線基地台"</string>
     <string name="wifi_tether_enabled_subtext" msgid="8948641212931906143">"可攜式無線基地台 <xliff:g id="NETWORK_SSID">%1$s</xliff:g> 已啟用"</string>
     <string name="wifi_tether_failed_subtext" msgid="2654888578056042315">"可攜式 Wi-Fi 無線基地台發生錯誤"</string>
@@ -689,13 +677,12 @@
     <string name="sd_insert_summary" product="default" msgid="2048640010381803841">"插入要掛載的 SD 卡"</string>
     <string name="sd_mount" product="nosdcard" msgid="8966695015677343116">"掛接 USB 儲存裝置"</string>
     <string name="sd_mount" product="default" msgid="5940523765187704135">"掛載 SD 卡"</string>
-    <string name="sd_mount_summary" product="nosdcard" msgid="1794150364965145726">"掛接 USB 儲存裝置"</string>
-    <string name="sd_mount_summary" product="default" msgid="4936591681679097699">"掛載 SD 卡"</string>
+    <string name="sd_mount_summary" product="nosdcard" msgid="4673411327373419641"></string>
+    <string name="sd_mount_summary" product="default" msgid="4673411327373419641"></string>
     <string name="sd_format" product="nosdcard" msgid="2148179271623099054">"清除 USB 儲存裝置"</string>
     <string name="sd_format" product="default" msgid="2576054280507119870">"清除 SD 卡"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"清除內部 USB 儲存裝置中的所有資料，例如音樂和相片"</string>
     <string name="sd_format_summary" product="default" msgid="212703692181793109">"清除 SD 卡中的所有資料，例如音樂和相片"</string>
-    <string name="sd_unavailable" msgid="8580107589533213904">"無法取得資訊"</string>
     <string name="read_only" msgid="6702420168629076340">" (唯讀)"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="2349876662428231297">"無法卸載 USB 儲存裝置"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="8612140627310646730">"卸載 SD 卡"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 6879f9d..631fb19 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -22,8 +22,8 @@
     <color name="memory_avail">#333333</color>
     <color name="memory_apps_usage">#77831A</color>
     <color name="memory_downloads">#476093</color>
-    <color name="memory_video">#793A7F</color>
-    <color name="memory_audio">#8E562A</color>
+    <color name="memory_dcim">#793A7F</color>
+    <color name="memory_music">#8E562A</color>
     <color name="memory_misc">#7C3030</color>
     
     <color name="crypt_keeper_clock_background">#ff9a9a9a</color>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 80f3d57..03b4a05 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -313,8 +313,8 @@
     <string name="proxy_clear_text">Clear</string>
     <!-- HTTP proxy settings. The port number label. -->
     <string name="proxy_port_label">Proxy port</string>
-    <!-- HTTP proxy settings. The hint text field for port. [CHAR LIMIT=50]-->
-    <string name="proxy_port_hint">8080</string>
+    <!-- HTTP proxy settings. The hint text field for port. -->
+    <string name="proxy_port_hint" translatable="false">8080</string>
     <!-- HTTP proxy settings. The exclusion list label. -->
     <string name="proxy_exclusionlist_label">Bypass proxy for</string>
     <!-- HTTP proxy settings. The hint text for proxy exclusion list. [CHAR LIMIT=50]-->
@@ -1100,8 +1100,8 @@
     <string name="wifi_speed">Link speed</string>
     <!-- Label for the IP address of the connection -->
     <string name="wifi_ip_address">IP address</string>
-    <!-- Hint text for the IP address [CHAR LIMIT=25]-->
-    <string name="wifi_ip_address_hint">192.168.1.128</string>
+    <!-- Hint text for the IP address -->
+    <string name="wifi_ip_address_hint" translatable="false">192.168.1.128</string>
     <!-- Label for the EAP method of the network -->
     <string name="wifi_eap_method">EAP method</string>
     <!-- Label for the phase2 -->
@@ -1181,20 +1181,20 @@
     <string name="wifi_ip_settings_invalid_network_prefix_length">Please type a network prefix length between 0 and 32.</string>
     <!-- Label for the DNS (first one) -->
     <string name="wifi_dns1">DNS 1</string>
-    <!-- Hint text for DNS [CHAR LIMIT=25]-->
-    <string name="wifi_dns1_hint">8.8.8.8</string>
+    <!-- Hint text for DNS -->
+    <string name="wifi_dns1_hint" translatable="false">8.8.8.8</string>
     <!-- Label for the DNS (second one)-->
     <string name="wifi_dns2">DNS 2</string>
-    <!-- Hint text for DNS [CHAR LIMIT=25]-->
-    <string name="wifi_dns2_hint">4.4.4.4</string>
+    <!-- Hint text for DNS -->
+    <string name="wifi_dns2_hint" translatable="false">4.4.4.4</string>
     <!-- Label for the gateway of the network -->
     <string name="wifi_gateway">Gateway</string>
-    <!-- Hint text for the gateway [CHAR LIMIT=25]-->
-    <string name="wifi_gateway_hint">192.168.1.1</string>
+    <!-- Hint text for the gateway -->
+    <string name="wifi_gateway_hint" translatable="false">192.168.1.1</string>
     <!-- Label for the network prefix of the network [CHAR LIMIT=25]-->
     <string name="wifi_network_prefix_length">Network prefix length</string>
-    <!-- Hint text for network prefix length [CHAR LIMIT=25] -->
-    <string name="wifi_network_prefix_length_hint">24</string>
+    <!-- Hint text for network prefix length -->
+    <string name="wifi_network_prefix_length_hint" translatable="false">24</string>
 
     <!-- Wifi AP settings-->
     <!-- Label for wifi tether checkbox. Toggles Access Point on/off -->
@@ -1591,7 +1591,7 @@
     <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of media on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
     <string name="memory_media_usage">Media</string>
     <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of /sdcard/Download on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
-    <string name="memory_downloads_usage">Downloads</string>
+    <string name="memory_downloads_usage">Downloads</string>    
     <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of all pictures, videos in /sdcard/DCIM, /sdcard/Pictures folders on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
     <string name="memory_dcim_usage">Pictures, Videos</string>
     <!-- SD card & phone storage settings title. Displayed as a title when showing the total usage of audio files in /sdcard on the device. Below it will be a number like "123.4 MB" indicating used storage. [CHAR LIMIT=50] -->
@@ -1618,10 +1618,10 @@
     <!-- SD card & phone storage settings item title that will result in the phone mounting the SD card. -->
     <string name="sd_mount" product="default">Mount SD card</string>
 
-    <!-- Subtext for Mount USB storage in Storage settings. User should never see this. -->
-    <string name="sd_mount_summary" product="nosdcard">Mount the USB storage</string>
-    <!-- SD card & phone storage settings item title that will result in the phone mounting the SD card. -->
-    <string name="sd_mount_summary" product="default">Mount the SD card</string>
+    <!-- Subtext for Mount USB storage in Storage settings. User should never see this since we use automount. -->
+    <string name="sd_mount_summary" product="nosdcard"></string>
+    <!-- Subtext for Mount SD Card in Storage settings. User should never see this since we use automount. -->
+    <string name="sd_mount_summary" product="default"></string>
     <!-- SD card & phone storage settings item title that will result in the phone formatting the USB storage.   [CHAR LIMIT=25] -->
     <string name="sd_format" product="nosdcard">Erase USB storage</string>
     <!-- SD card & phone storage settings item title that will result in the phone formatting the SD card.   [CHAR LIMIT=25] -->
@@ -1630,9 +1630,7 @@
     <string name="sd_format_summary" product="nosdcard">Erases all data on the internal USB storage, such as music and photos</string>
     <!-- SD card & phone storage settings item title that will result in the phone unmounting the SD card.   [CHAR LIMIT=80] -->
     <string name="sd_format_summary" product="default">Erases all data on the SD card, such as music and photos</string>
-    <!-- SD card status when it is not available status -->
-    <string name="sd_unavailable">Unavailable</string>
-    <!-- SD card status when it is mounted as read only  -->
+    <!-- SD card status when it is mounted as read only. Will be appended to size, starts with an unbreakable space -->
     <string name="read_only">\u0020(Read-only)</string>
     <!-- SD card eject confirmation dialog title   [CHAR LIMIT=25] -->
     <string name="dlg_confirm_unmount_title" product="nosdcard">Unmount USB storage</string>
@@ -2108,6 +2106,8 @@
     <string name="storage_label">Storage</string>
     <!-- Manage applications, individual application info screen,  heading for settings related to controlling whether this app is the default for some actions -->
     <string name="auto_launch_label">Launch by default</string>
+    <!-- Manage applications, individual application info screen,  heading for settings related to controlling application screen compatibility -->
+    <string name="screen_compatibility_label">Screen compatibility</string>
     <!-- Manage applications, individual application info screen, heading for settings related to the app's permissions. for example, it may list all the permissions the app has. -->
     <string name="permissions_label">Permissions</string>
     <!-- Manage applications, Header name used for cache information -->
@@ -2146,6 +2146,13 @@
     <string name="auto_launch_disable_text">No defaults set.</string>
     <!-- Manage applications, individual application screen, button label under Launch by default heading.  This is used to clear any default actions that may be assigned to this app.  -->
     <string name="clear_activities">Clear defaults</string>
+    <!-- Manage applications, individual application info screen, screen, message text under screen compatibility heading -->
+    <string name="screen_compatibility_text">This application may not be designed for your screen; you can control how it
+            adjusts to your screen here.</string>
+    <!-- Manage applications, individual application screen, checkbox to control asking for compatibility mode.  -->
+    <string name="ask_compatibility">Ask when launched</string>
+    <!-- Manage applications, individual application screen, checkbox to control compatibility mode.  -->
+    <string name="enable_compatibility">Scale application</string>
     <!-- Manage apps, individual app screen, substituted for the application's label when the app's label CAN NOT be determined.-->
     <string name="unknown">Unknown</string>
     <!-- [CHAR LIMIT=25] Manage applications screen, menu item.  Sorts all of the apps in the list alphabetically. -->
diff --git a/res/xml/device_info_memory.xml b/res/xml/device_info_memory.xml
index aa36698..e905f39 100644
--- a/res/xml/device_info_memory.xml
+++ b/res/xml/device_info_memory.xml
@@ -17,54 +17,6 @@
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
         android:title="@string/storage_settings_title">
 
-    <PreferenceCategory android:key="memory_sd"
-            android:title="@string/sd_memory">
-        <Preference android:key="memory_sd_size" 
-            style="?android:attr/preferenceInformationStyle" 
-            android:title="@string/memory_size"
-            android:summary="00"/>
-        <Preference android:key="memory_sd_avail" 
-            style="?android:attr/preferenceInformationStyle" 
-            android:title="@string/memory_available"
-            android:summary="00"/>
-        <Preference android:key="memory_sd_mount_toggle"
-            android:title="@string/sd_eject"
-            android:summary="@string/sd_eject_summary"/>
-        <Preference android:key="memory_sd_format"
-            android:title="@string/sd_format"
-            android:summary="@string/sd_format_summary"/>
-    </PreferenceCategory>
+<!-- Preference categories are dynamically created based on the list of available storage volumes -->
 
-    <PreferenceCategory android:title="@string/internal_memory">
-        <com.android.settings.deviceinfo.UsageBarPreference
-            android:key="memory_internal_chart"/>
-
-        <Preference android:key="memory_internal_size"
-            android:title="@string/memory_size"
-            android:summary="@string/memory_calculating_size"/>
-
-        <Preference android:key="memory_internal_apps"
-            android:title="@string/memory_apps_usage"
-            android:summary="@string/memory_calculating_size"/>
-
-        <Preference android:key="memory_internal_downloads"
-            android:title="@string/memory_downloads_usage"
-            android:summary="@string/memory_calculating_size"/>
-
-        <Preference android:key="memory_internal_dcim"
-            android:title="@string/memory_dcim_usage"
-            android:summary="@string/memory_calculating_size"/>
-
-        <Preference android:key="memory_internal_music"
-            android:title="@string/memory_music_usage"
-            android:summary="@string/memory_calculating_size"/>
-
-        <Preference android:key="memory_internal_media_misc"
-            android:title="@string/memory_media_misc_usage"
-            android:summary="@string/memory_calculating_size"/>
-
-        <Preference android:key="memory_internal_avail"
-            android:title="@string/memory_available"
-            android:summary="@string/memory_calculating_size"/>
-     </PreferenceCategory>
 </PreferenceScreen>
diff --git a/src/com/android/settings/DateTimeSettingsSetupWizard.java b/src/com/android/settings/DateTimeSettingsSetupWizard.java
index ec9c2af..670fcbc 100644
--- a/src/com/android/settings/DateTimeSettingsSetupWizard.java
+++ b/src/com/android/settings/DateTimeSettingsSetupWizard.java
@@ -76,7 +76,7 @@
         setContentView(R.layout.date_time_settings_setupwizard);
         mXLargeScreenSize = (getResources().getConfiguration().screenLayout
                 & Configuration.SCREENLAYOUT_SIZE_MASK)
-                == Configuration.SCREENLAYOUT_SIZE_XLARGE;
+                >= Configuration.SCREENLAYOUT_SIZE_LARGE;
         if (mXLargeScreenSize) {
             initUiForXl();
         } else {
diff --git a/src/com/android/settings/MediaFormat.java b/src/com/android/settings/MediaFormat.java
index d8d57e4..dc495ec 100644
--- a/src/com/android/settings/MediaFormat.java
+++ b/src/com/android/settings/MediaFormat.java
@@ -19,6 +19,7 @@
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.storage.StorageVolume;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Button;
@@ -57,6 +58,10 @@
                 }
                 Intent intent = new Intent(ExternalStorageFormatter.FORMAT_ONLY);
                 intent.setComponent(ExternalStorageFormatter.COMPONENT_NAME);
+                // Transfer the storage volume to the new intent
+                final StorageVolume storageVolume = getIntent().getParcelableExtra(
+                        StorageVolume.EXTRA_STORAGE_VOLUME);
+                intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME, storageVolume);
                 startService(intent);
                 finish();
             }
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index ae27d00..a0a568b 100644
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -60,6 +60,8 @@
 import android.view.ViewGroup;
 import android.widget.AppSecurityPermissions;
 import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
@@ -74,7 +76,8 @@
  * uninstall the application.
  */
 public class InstalledAppDetails extends Fragment
-        implements View.OnClickListener, ApplicationsState.Callbacks {
+        implements View.OnClickListener, CompoundButton.OnCheckedChangeListener,
+        ApplicationsState.Callbacks {
     private static final String TAG="InstalledAppDetails";
     static final boolean SUPPORT_DISABLE_APPS = false;
     private static final boolean localLOGV = false;
@@ -92,6 +95,9 @@
     private boolean mMoveInProgress = false;
     private boolean mUpdatedSysApp = false;
     private Button mActivitiesButton;
+    private View mScreenCompatSection;
+    private CheckBox mAskCompatibilityCB;
+    private CheckBox mEnableCompatibilityCB;
     private boolean mCanClearData = true;
     private TextView mAppVersion;
     private TextView mTotalSize;
@@ -345,6 +351,11 @@
 
         mActivitiesButton = (Button)view.findViewById(R.id.clear_activities_button);
         
+        // Screen compatibility control
+        mScreenCompatSection = view.findViewById(R.id.screen_compatibility_section);
+        mAskCompatibilityCB = (CheckBox)view.findViewById(R.id.ask_compatibility_cb);
+        mEnableCompatibilityCB = (CheckBox)view.findViewById(R.id.enable_compatibility_cb);
+
         return view;
     }
 
@@ -466,7 +477,22 @@
             mActivitiesButton.setEnabled(true);
             mActivitiesButton.setOnClickListener(this);
         }
-         
+
+        // Screen compatibility section.
+        ActivityManager am = (ActivityManager)
+                getActivity().getSystemService(Context.ACTIVITY_SERVICE);
+        int compatMode = am.getPackageScreenCompatMode(packageName);
+        if (compatMode == ActivityManager.COMPAT_MODE_DISABLED
+                || compatMode == ActivityManager.COMPAT_MODE_ENABLED) {
+            mScreenCompatSection.setVisibility(View.VISIBLE);
+            mAskCompatibilityCB.setChecked(am.getPackageAskScreenCompat(packageName));
+            mAskCompatibilityCB.setOnCheckedChangeListener(this);
+            mEnableCompatibilityCB.setChecked(compatMode == ActivityManager.COMPAT_MODE_ENABLED);
+            mEnableCompatibilityCB.setOnCheckedChangeListener(this);
+        } else {
+            mScreenCompatSection.setVisibility(View.GONE);
+        }
+
         // Security permissions section
         LinearLayout permsView = (LinearLayout) mRootView.findViewById(R.id.permissions_section);
         AppSecurityPermissions asp = new AppSecurityPermissions(getActivity(), packageName);
@@ -846,5 +872,18 @@
             mPm.movePackage(mAppEntry.info.packageName, mPackageMoveObserver, moveFlags);
         }
     }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        String packageName = mAppEntry.info.packageName;
+        ActivityManager am = (ActivityManager)
+                getActivity().getSystemService(Context.ACTIVITY_SERVICE);
+        if (buttonView == mAskCompatibilityCB) {
+            am.setPackageAskScreenCompat(packageName, isChecked);
+        } else if (buttonView == mEnableCompatibilityCB) {
+            am.setPackageScreenCompatMode(packageName, isChecked ?
+                    ActivityManager.COMPAT_MODE_ENABLED : ActivityManager.COMPAT_MODE_DISABLED);
+        }
+    }
 }
 
diff --git a/src/com/android/settings/deviceinfo/Constants.java b/src/com/android/settings/deviceinfo/Constants.java
deleted file mode 100644
index 9f49479..0000000
--- a/src/com/android/settings/deviceinfo/Constants.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.deviceinfo;
-
-import android.os.Environment;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Some of the constants used in this package
- */
-class Constants {
-    static final int MEDIA_INDEX = 0;
-    static final int DOWNLOADS_INDEX = 1;
-    static final int PIC_VIDEO_INDEX = 2;
-    static final int MUSIC_INDEX = 3;
-    static final int MEDIA_APPS_DATA_INDEX = 4;
-    static final int MEDIA_MISC_INDEX = 5;
-    static final int NUM_MEDIA_DIRS_TRACKED = MEDIA_MISC_INDEX + 1;
-
-    static class MediaDirectory {
-        final String[] mDirPaths;
-        final String mKey;
-        final String mPreferenceName;
-        MediaDirectory(String pref, String debugInfo, String... paths) {
-            mDirPaths = paths;
-            mKey = debugInfo;
-            mPreferenceName = pref;
-        }
-    }
-    static final ArrayList<MediaDirectory> mMediaDirs = new ArrayList<MediaDirectory>();
-    static final List<String> ExclusionTargetsForMiscFiles = new ArrayList<String>();
-    static {
-        mMediaDirs.add(MEDIA_INDEX,
-                new MediaDirectory(null,
-                        "/sdcard",
-                        Environment.getExternalStorageDirectory().getAbsolutePath()));
-        mMediaDirs.add(DOWNLOADS_INDEX,
-                new MediaDirectory("memory_internal_downloads",
-                        "/sdcard/download",
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()));
-        mMediaDirs.add(PIC_VIDEO_INDEX,
-                new MediaDirectory("memory_internal_dcim",
-                        "/sdcard/pic_video",
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_DCIM).getAbsolutePath(),
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_MOVIES).getAbsolutePath(),
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_PICTURES).getAbsolutePath()));
-        mMediaDirs.add(MUSIC_INDEX,
-                new MediaDirectory("memory_internal_music",
-                        "/sdcard/audio",
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_MUSIC).getAbsolutePath(),
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_ALARMS).getAbsolutePath(),
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_NOTIFICATIONS).getAbsolutePath(),
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_RINGTONES).getAbsolutePath(),
-                        Environment.getExternalStoragePublicDirectory(
-                                Environment.DIRECTORY_PODCASTS).getAbsolutePath()));
-        mMediaDirs.add(MEDIA_APPS_DATA_INDEX,
-                new MediaDirectory(null,
-                        "/sdcard/Android",
-                        Environment.getExternalStorageAndroidDataDir().getAbsolutePath()));
-        mMediaDirs.add(MEDIA_MISC_INDEX,
-                new MediaDirectory("memory_internal_media_misc",
-                        "misc on /sdcard",
-                        "not relevant"));
-        // prepare a lit of strings representing dirpaths that should be skipped while looking
-        // for 'other' files
-        for (int j = 0; j < Constants.NUM_MEDIA_DIRS_TRACKED - 1; j++) {
-            String[] dirs = Constants.mMediaDirs.get(j).mDirPaths;
-            int len = dirs.length;
-            if (len > 0) {
-                for (int k = 0; k < len; k++) {
-                    ExclusionTargetsForMiscFiles.add(dirs[k]);
-                }
-            }
-            // also add /sdcard/Android
-            ExclusionTargetsForMiscFiles.add(
-                    Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android");
-        }
-    }
-}
diff --git a/src/com/android/settings/deviceinfo/Memory.java b/src/com/android/settings/deviceinfo/Memory.java
index 1e10c58..6e7af5c 100644
--- a/src/com/android/settings/deviceinfo/Memory.java
+++ b/src/com/android/settings/deviceinfo/Memory.java
@@ -16,140 +16,51 @@
 
 package com.android.settings.deviceinfo;
 
-import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.deviceinfo.MemoryMeasurement.MeasurementReceiver;
-
-import android.app.ActivityManager;
 import android.app.AlertDialog;
 import android.app.Dialog;
-import android.app.DownloadManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.DialogInterface.OnCancelListener;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.DialogInterface.OnCancelListener;
-import android.content.pm.ApplicationInfo;
 import android.content.res.Resources;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.shapes.RectShape;
 import android.os.Bundle;
 import android.os.Environment;
-import android.os.Handler;
 import android.os.IBinder;
-import android.os.Message;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.storage.IMountService;
 import android.os.storage.StorageEventListener;
 import android.os.storage.StorageManager;
+import android.os.storage.StorageVolume;
 import android.preference.Preference;
-import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
-import android.text.format.Formatter;
 import android.util.Log;
 import android.widget.Toast;
 
-import java.util.List;
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
 
-public class Memory extends SettingsPreferenceFragment implements OnCancelListener,
-        MeasurementReceiver {
+public class Memory extends SettingsPreferenceFragment implements OnCancelListener {
     private static final String TAG = "MemorySettings";
 
-    private static final String MEMORY_SD_SIZE = "memory_sd_size";
-
-    private static final String MEMORY_SD_AVAIL = "memory_sd_avail";
-
-    private static final String MEMORY_SD_MOUNT_TOGGLE = "memory_sd_mount_toggle";
-
-    private static final String MEMORY_SD_FORMAT = "memory_sd_format";
-
-    private static final String MEMORY_SD_GROUP = "memory_sd";
-
-    private static final String MEMORY_INTERNAL_SIZE = "memory_internal_size";
-
-    private static final String MEMORY_INTERNAL_AVAIL = "memory_internal_avail";
-
-    private static final String MEMORY_INTERNAL_APPS = "memory_internal_apps";
-
-    private static final String MEMORY_INTERNAL_CHART = "memory_internal_chart";
-
     private static final int DLG_CONFIRM_UNMOUNT = 1;
     private static final int DLG_ERROR_UNMOUNT = 2;
 
-    private Resources mRes;
+    private Resources mResources;
 
-    // External storage preferences
-    private Preference mSdSize;
-    private Preference mSdAvail;
-    private Preference mSdMountToggle;
-    private Preference mSdFormat;
-    private PreferenceGroup mSdMountPreferenceGroup;
-
-    // Internal storage preferences
-    private Preference mInternalSize;
-    private Preference mInternalAvail;
-    private Preference mInternalAppsUsage;
-    private final Preference[] mMediaPreferences = new Preference[Constants.NUM_MEDIA_DIRS_TRACKED];
-    private UsageBarPreference mInternalUsageChart;
-
-    // Internal storage chart colors
-    private int mInternalAppsColor;
-    private int mInternalAvailColor;
-    private int mInternalUsedColor;
-
-    boolean mSdMountToggleAdded = true;
+    // The mountToggle Preference that has been clicked.
+    // The click event will be discarded if this value is not null. Reset to null after (un)mount.
+    private Preference mClickedMountToggle;
+    private String mClickedMountPoint;
     
     // Access using getMountService()
     private IMountService mMountService = null;
 
     private StorageManager mStorageManager = null;
 
-    // Updates the memory usage bar graph.
-    private static final int MSG_UI_UPDATE_INTERNAL_APPROXIMATE = 1;
-
-    // Updates the memory usage bar graph.
-    private static final int MSG_UI_UPDATE_INTERNAL_EXACT = 2;
-
-    // Updates the memory usage stats for external.
-    private static final int MSG_UI_UPDATE_EXTERNAL_APPROXIMATE = 3;
-
-    private Handler mUpdateHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_UI_UPDATE_INTERNAL_APPROXIMATE: {
-                    Bundle bundle = msg.getData();
-                    final long totalSize = bundle.getLong(MemoryMeasurement.TOTAL_SIZE);
-                    final long availSize = bundle.getLong(MemoryMeasurement.AVAIL_SIZE);
-                    updateUiApproximate(totalSize, availSize);
-                    break;
-                }
-                case MSG_UI_UPDATE_INTERNAL_EXACT: {
-                    Bundle bundle = msg.getData();
-                    final long totalSize = bundle.getLong(MemoryMeasurement.TOTAL_SIZE);
-                    final long availSize = bundle.getLong(MemoryMeasurement.AVAIL_SIZE);
-                    final long appsUsed = bundle.getLong(MemoryMeasurement.APPS_USED);
-                    final long[] mediaSizes = new long[Constants.NUM_MEDIA_DIRS_TRACKED];
-                    for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED; i++) {
-                        mediaSizes[i] = bundle.getLong(Constants.mMediaDirs.get(i).mKey);
-                    }
-                    updateUiExact(totalSize, availSize, appsUsed, mediaSizes);
-                    break;
-                }
-                case MSG_UI_UPDATE_EXTERNAL_APPROXIMATE: {
-                    Bundle bundle = msg.getData();
-                    final long totalSize = bundle.getLong(MemoryMeasurement.TOTAL_SIZE);
-                    final long availSize = bundle.getLong(MemoryMeasurement.AVAIL_SIZE);
-                    updateExternalStorage(totalSize, availSize);
-                    break;
-                }
-            }
-        }
-    };
-
-    private MemoryMeasurement mMeasurement;
+    private StorageVolumePreferenceCategory[] mStorageVolumePreferenceCategories;
 
     @Override
     public void onCreate(Bundle icicle) {
@@ -162,84 +73,33 @@
 
         addPreferencesFromResource(R.xml.device_info_memory);
 
-        mRes = getResources();
-        mSdSize = findPreference(MEMORY_SD_SIZE);
-        mSdAvail = findPreference(MEMORY_SD_AVAIL);
-        mSdMountToggle = findPreference(MEMORY_SD_MOUNT_TOGGLE);
-        mSdFormat = findPreference(MEMORY_SD_FORMAT);
-        mSdMountPreferenceGroup = (PreferenceGroup)findPreference(MEMORY_SD_GROUP);
+        mResources = getResources();
 
-        if (Environment.isExternalStorageEmulated()) {
-            getPreferenceScreen().removePreference(mSdMountPreferenceGroup);
+        StorageVolume[] storageVolumes = mStorageManager.getVolumeList();
+        int length = storageVolumes.length;
+        mStorageVolumePreferenceCategories = new StorageVolumePreferenceCategory[length];
+        for (int i = 0; i < length; i++) {
+            StorageVolume storageVolume = storageVolumes[i];
+            StorageVolumePreferenceCategory storagePreferenceCategory =
+                new StorageVolumePreferenceCategory(getActivity(), mResources, storageVolume,
+                        mStorageManager, i == 0); // The first volume is the primary volume
+            mStorageVolumePreferenceCategories[i] = storagePreferenceCategory;
+            getPreferenceScreen().addPreference(storagePreferenceCategory);
+            storagePreferenceCategory.init();
         }
-
-        mInternalSize = findPreference(MEMORY_INTERNAL_SIZE);
-        mInternalAppsColor = mRes.getColor(R.color.memory_apps_usage);
-        mInternalUsedColor = android.graphics.Color.GRAY;
-        mInternalAvailColor = mRes.getColor(R.color.memory_avail);
-        final int buttonWidth = (int) mRes.getDimension(R.dimen.device_memory_usage_button_width);
-        final int buttonHeight = (int) mRes.getDimension(R.dimen.device_memory_usage_button_height);
-
-        // total available space
-        mInternalAvail = findPreference(MEMORY_INTERNAL_AVAIL);
-        mInternalAvail.setIcon(createRectShape(buttonHeight, buttonWidth, mInternalAvailColor));
-
-        // used by apps
-        mInternalAppsUsage = findPreference(MEMORY_INTERNAL_APPS);
-        mInternalAppsUsage.setIcon(createRectShape(buttonHeight, buttonWidth, mInternalAppsColor));
-
-        // space used by individual major directories on /sdcard
-        for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED; i++) {
-            // nothing to be displayed for certain entries in Constants.mMediaDirs
-            if (Constants.mMediaDirs.get(i).mPreferenceName == null) {
-                continue;
-            }
-            mMediaPreferences[i] = findPreference(Constants.mMediaDirs.get(i).mPreferenceName);
-            int color = 0;
-            switch (i) {
-                case Constants.DOWNLOADS_INDEX:
-                    color = mRes.getColor(R.color.memory_downloads);
-                    break;
-                case Constants.PIC_VIDEO_INDEX:
-                    color = mRes.getColor(R.color.memory_video);
-                    break;
-                case Constants.MUSIC_INDEX:
-                    color = mRes.getColor(R.color.memory_audio);
-                    break;
-                case Constants.MEDIA_MISC_INDEX:
-                    color = mRes.getColor(R.color.memory_misc);
-                    break;
-            }
-            mMediaPreferences[i].setIcon(createRectShape(buttonHeight, buttonWidth, color));
-        }
-        mInternalUsageChart = (UsageBarPreference) findPreference(MEMORY_INTERNAL_CHART);
-
-        mMeasurement = MemoryMeasurement.getInstance(getActivity());
-        mMeasurement.setReceiver(this);
-    }
-
-    private ShapeDrawable createRectShape(int height, int width, int color) {
-        ShapeDrawable shape = new ShapeDrawable(new RectShape());
-        shape.setIntrinsicHeight(height);
-        shape.setIntrinsicWidth(width);
-        shape.getPaint().setColor(color);
-        return shape;
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        mMeasurement.setReceiver(this);
         IntentFilter intentFilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED);
         intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
         intentFilter.addDataScheme("file");
-        getActivity().registerReceiver(mReceiver, intentFilter);
+        getActivity().registerReceiver(mMediaScannerReceiver, intentFilter);
 
-        mMeasurement.invalidate();
-        if (!Environment.isExternalStorageEmulated()) {
-            mMeasurement.measureExternal();
+        for (int i = 0; i < mStorageVolumePreferenceCategories.length; i++) {
+            mStorageVolumePreferenceCategories[i].onResume();
         }
-        mMeasurement.measureInternal();
     }
 
     StorageEventListener mStorageListener = new StorageEventListener() {
@@ -248,8 +108,12 @@
             Log.i(TAG, "Received storage state changed notification that " +
                     path + " changed state from " + oldState +
                     " to " + newState);
-            if (!Environment.isExternalStorageEmulated()) {
-                mMeasurement.measureExternal();
+            for (int i = 0; i < mStorageVolumePreferenceCategories.length; i++) {
+                StorageVolumePreferenceCategory svpc = mStorageVolumePreferenceCategories[i];
+                if (path.equals(svpc.getStorageVolume().getPath())) {
+                    svpc.onStorageStateChanged();
+                    break;
+                }
             }
         }
     };
@@ -257,8 +121,10 @@
     @Override
     public void onPause() {
         super.onPause();
-        getActivity().unregisterReceiver(mReceiver);
-        mMeasurement.cleanUp();
+        getActivity().unregisterReceiver(mMediaScannerReceiver);
+        for (int i = 0; i < mStorageVolumePreferenceCategories.length; i++) {
+            mStorageVolumePreferenceCategories[i].onPause();
+        }
     }
 
     @Override
@@ -283,60 +149,39 @@
     
     @Override
     public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
-        if (preference == mSdMountToggle) {
-            String status = Environment.getExternalStorageState();
-            if (status.equals(Environment.MEDIA_MOUNTED)) {
-                unmount();
-            } else {
-                mount();
+        for (int i = 0; i < mStorageVolumePreferenceCategories.length; i++) {
+            StorageVolumePreferenceCategory svpc = mStorageVolumePreferenceCategories[i];
+            Intent intent = svpc.intentForClick(preference);
+            if (intent != null) {
+                startActivity(intent);
+                return true;
             }
-            return true;
-        } else if (preference == mSdFormat) {
-            Intent intent = new Intent(Intent.ACTION_VIEW);
-            intent.setClass(getActivity(), com.android.settings.MediaFormat.class);
-            startActivity(intent);
-            return true;
-        } else if (preference == mInternalAppsUsage) {
-            Intent intent = new Intent(Intent.ACTION_MANAGE_PACKAGE_STORAGE);
-            intent.setClass(getActivity(),
-                    com.android.settings.Settings.ManageApplicationsActivity.class);
-            startActivity(intent);
-            return true;
-        } else if (preference == mMediaPreferences[Constants.DOWNLOADS_INDEX]) {
-            Intent intent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS)
-                    .putExtra(DownloadManager.INTENT_EXTRAS_SORT_BY_SIZE, true);
-            startActivity(intent);
-            return true;
-        } else if (preference == mMediaPreferences[Constants.MUSIC_INDEX]) {
-            Intent intent = new Intent("android.intent.action.GET_CONTENT");
-            intent.setType("audio/mp3");
-            startActivity(intent);
-            return true;
-        } else if (preference == mMediaPreferences[Constants.PIC_VIDEO_INDEX]) {
-            Intent intent = new Intent("android.intent.action.GET_CONTENT");
-            intent.setType("image/jpeg");
-            startActivity(intent);
-            return true;
-        } else if (preference == mMediaPreferences[Constants.MEDIA_MISC_INDEX]) {
-            Context context = getActivity().getApplicationContext();
-            if (MemoryMeasurement.getInstance(context).isSizeOfMiscCategoryNonZero()) {
-                startActivity(new Intent(context, MiscFilesHandler.class));
+
+            boolean mountToggleClicked = svpc.mountToggleClicked(preference);
+            if (mountToggleClicked && mClickedMountToggle == null) {
+                mClickedMountToggle = preference;
+                final StorageVolume storageVolume = svpc.getStorageVolume();
+                mClickedMountPoint = storageVolume.getPath();
+                String state = mStorageManager.getVolumeState(storageVolume.getPath());
+                if (Environment.MEDIA_MOUNTED.equals(state) ||
+                        Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
+                    unmount();
+                } else {
+                    mount();
+                }
+                return true;
             }
-            return true;
         }
 
         return false;
     }
      
-    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+    private final BroadcastReceiver mMediaScannerReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
-            mMeasurement.invalidate();
-
-            if (!Environment.isExternalStorageEmulated()) {
-                mMeasurement.measureExternal();
+            for (int i = 0; i < mStorageVolumePreferenceCategories.length; i++) {
+                mStorageVolumePreferenceCategories[i].onMediaScannerFinished();
             }
-            mMeasurement.measureInternal();
         }
     };
 
@@ -348,7 +193,7 @@
                     .setTitle(R.string.dlg_confirm_unmount_title)
                     .setPositiveButton(R.string.dlg_ok, new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int which) {
-                            doUnmount(true);
+                            doUnmount();
                         }})
                     .setNegativeButton(R.string.cancel, null)
                     .setMessage(R.string.dlg_confirm_unmount_text)
@@ -368,28 +213,27 @@
         super.showDialog(id);
 
         switch (id) {
-        case DLG_CONFIRM_UNMOUNT:
-        case DLG_ERROR_UNMOUNT:
-            setOnCancelListener(this);
-            break;
+            case DLG_CONFIRM_UNMOUNT:
+            case DLG_ERROR_UNMOUNT:
+                setOnCancelListener(this);
+                break;
         }
     }
 
-    private void doUnmount(boolean force) {
+    private void doUnmount() {
         // Present a toast here
         Toast.makeText(getActivity(), R.string.unmount_inform_text, Toast.LENGTH_SHORT).show();
         IMountService mountService = getMountService();
-        String extStoragePath = Environment.getExternalStorageDirectory().toString();
         try {
-            mSdMountToggle.setEnabled(false);
-            mSdMountToggle.setTitle(mRes.getString(R.string.sd_ejecting_title));
-            mSdMountToggle.setSummary(mRes.getString(R.string.sd_ejecting_summary));
-            mountService.unmountVolume(extStoragePath, force);
+            mClickedMountToggle.setEnabled(false);
+            mClickedMountToggle.setTitle(mResources.getString(R.string.sd_ejecting_title));
+            mClickedMountToggle.setSummary(mResources.getString(R.string.sd_ejecting_summary));
+            mountService.unmountVolume(mClickedMountPoint, true);
         } catch (RemoteException e) {
-            // Informative dialog to user that
-            // unmount failed.
+            // Informative dialog to user that unmount failed.
             showDialogInner(DLG_ERROR_UNMOUNT);
         }
+        mClickedMountToggle = null;
     }
 
     private void showDialogInner(int id) {
@@ -398,17 +242,21 @@
     }
 
     private boolean hasAppsAccessingStorage() throws RemoteException {
-        String extStoragePath = Environment.getExternalStorageDirectory().toString();
         IMountService mountService = getMountService();
-        int stUsers[] = mountService.getStorageUsers(extStoragePath);
+        int stUsers[] = mountService.getStorageUsers(mClickedMountPoint);
         if (stUsers != null && stUsers.length > 0) {
             return true;
         }
+        // TODO FIXME Parameterize with mountPoint and uncomment.
+        // On HC-MR2, no apps can be installed on sd and the emulated internal storage is not
+        // removable: application cannot interfere with unmount
+        /*
         ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
         List<ApplicationInfo> list = am.getRunningExternalApplications();
         if (list != null && list.size() > 0) {
             return true;
         }
+        */
         return false;
     }
 
@@ -419,12 +267,13 @@
                // Present dialog to user
                showDialogInner(DLG_CONFIRM_UNMOUNT);
            } else {
-               doUnmount(true);
+               doUnmount();
            }
         } catch (RemoteException e) {
             // Very unlikely. But present an error dialog anyway
             Log.e(TAG, "Is MountService running?");
             showDialogInner(DLG_ERROR_UNMOUNT);
+            mClickedMountToggle = null;
         }
     }
 
@@ -432,151 +281,17 @@
         IMountService mountService = getMountService();
         try {
             if (mountService != null) {
-                mountService.mountVolume(Environment.getExternalStorageDirectory().toString());
+                mountService.mountVolume(mClickedMountPoint);
             } else {
                 Log.e(TAG, "Mount service is null, can't mount");
             }
         } catch (RemoteException ex) {
+            // Not much can be done
         }
-    }
-
-    private void updateUiExact(long totalSize, long availSize, long appsSize, long[] mediaSizes) {
-        // There are other things that can take up storage, but we didn't measure it.
-        // add that unaccounted-for-usage to Apps Usage
-        long appsPlusRemaining = totalSize - availSize - mediaSizes[Constants.DOWNLOADS_INDEX] -
-                mediaSizes[Constants.PIC_VIDEO_INDEX] - mediaSizes[Constants.MUSIC_INDEX] -
-                mediaSizes[Constants.MEDIA_MISC_INDEX];
-        mInternalSize.setSummary(formatSize(totalSize));
-        mInternalAvail.setSummary(formatSize(availSize));
-        mInternalAppsUsage.setSummary(formatSize(appsPlusRemaining));
-
-        mInternalUsageChart.clear();
-        mInternalUsageChart.addEntry(appsPlusRemaining / (float) totalSize, mInternalAppsColor);
-
-        for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED; i++) {
-            if (Constants.mMediaDirs.get(i).mPreferenceName == null) {
-                continue;
-            }
-            this.mMediaPreferences[i].setSummary(formatSize(mediaSizes[i]));
-            // don't add entry to color chart for media usage and for zero-sized dirs
-            if (i != Constants.MEDIA_INDEX && mediaSizes[i] > 0) {
-                int color = 0;
-                switch (i) {
-                    case Constants.DOWNLOADS_INDEX:
-                        color = mRes.getColor(R.color.memory_downloads);
-                        break;
-                    case Constants.PIC_VIDEO_INDEX:
-                        color = mRes.getColor(R.color.memory_video);
-                        break;
-                    case Constants.MUSIC_INDEX:
-                        color = mRes.getColor(R.color.memory_audio);
-                        break;
-                    case Constants.MEDIA_MISC_INDEX:
-                        color = mRes.getColor(R.color.memory_misc);
-                        break;
-                }
-                mInternalUsageChart.addEntry(mediaSizes[i] / (float) totalSize, color);
-            }
-        }
-        mInternalUsageChart.addEntry(availSize / (float) totalSize, mInternalAvailColor);
-        mInternalUsageChart.commit();
-    }
-
-    private void updateUiApproximate(long totalSize, long availSize) {
-        mInternalSize.setSummary(formatSize(totalSize));
-        mInternalAvail.setSummary(formatSize(availSize));
-
-        final long usedSize = totalSize - availSize;
-
-        mInternalUsageChart.clear();
-        mInternalUsageChart.addEntry(usedSize / (float) totalSize, mInternalUsedColor);
-        mInternalUsageChart.commit();
-    }
-
-    private void updateExternalStorage(long totalSize, long availSize) {
-        String status = Environment.getExternalStorageState();
-        String readOnly = "";
-        if (status.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) {
-            status = Environment.MEDIA_MOUNTED;
-            readOnly = mRes.getString(R.string.read_only);
-        }
-
-        if (status.equals(Environment.MEDIA_MOUNTED)) {
-            if (!Environment.isExternalStorageRemovable()) {
-                // This device has built-in storage that is not removable.
-                // There is no reason for the user to unmount it.
-                if (mSdMountToggleAdded) {
-                    mSdMountPreferenceGroup.removePreference(mSdMountToggle);
-                    mSdMountToggleAdded = false;
-                }
-            }
-            try {
-                mSdSize.setSummary(formatSize(totalSize));
-                mSdAvail.setSummary(formatSize(availSize) + readOnly);
-
-                mSdMountToggle.setEnabled(true);
-                mSdMountToggle.setTitle(mRes.getString(R.string.sd_eject));
-                mSdMountToggle.setSummary(mRes.getString(R.string.sd_eject_summary));
-
-            } catch (IllegalArgumentException e) {
-                // this can occur if the SD card is removed, but we haven't
-                // received the
-                // ACTION_MEDIA_REMOVED Intent yet.
-                status = Environment.MEDIA_REMOVED;
-            }
-        } else {
-            mSdSize.setSummary(mRes.getString(R.string.sd_unavailable));
-            mSdAvail.setSummary(mRes.getString(R.string.sd_unavailable));
-
-            if (!Environment.isExternalStorageRemovable()) {
-                if (status.equals(Environment.MEDIA_UNMOUNTED)) {
-                    if (!mSdMountToggleAdded) {
-                        mSdMountPreferenceGroup.addPreference(mSdMountToggle);
-                        mSdMountToggleAdded = true;
-                    }
-                }
-            }
-
-            if (status.equals(Environment.MEDIA_UNMOUNTED) || status.equals(Environment.MEDIA_NOFS)
-                    || status.equals(Environment.MEDIA_UNMOUNTABLE)) {
-                mSdMountToggle.setEnabled(true);
-                mSdMountToggle.setTitle(mRes.getString(R.string.sd_mount));
-                mSdMountToggle.setSummary(mRes.getString(R.string.sd_mount_summary));
-            } else {
-                mSdMountToggle.setEnabled(false);
-                mSdMountToggle.setTitle(mRes.getString(R.string.sd_mount));
-                mSdMountToggle.setSummary(mRes.getString(R.string.sd_insert_summary));
-            }
-        }
-    }
-
-    private String formatSize(long size) {
-        return Formatter.formatFileSize(getActivity(), size);
+        mClickedMountToggle = null;
     }
 
     public void onCancel(DialogInterface dialog) {
-        // TODO: Is this really required?
-        // finish();
-    }
-
-    @Override
-    public void updateApproximateExternal(Bundle bundle) {
-        final Message message = mUpdateHandler.obtainMessage(MSG_UI_UPDATE_EXTERNAL_APPROXIMATE);
-        message.setData(bundle);
-        mUpdateHandler.sendMessage(message);
-    }
-
-    @Override
-    public void updateApproximateInternal(Bundle bundle) {
-        final Message message = mUpdateHandler.obtainMessage(MSG_UI_UPDATE_INTERNAL_APPROXIMATE);
-        message.setData(bundle);
-        mUpdateHandler.sendMessage(message);
-    }
-
-    @Override
-    public void updateExactInternal(Bundle bundle) {
-        final Message message = mUpdateHandler.obtainMessage(MSG_UI_UPDATE_INTERNAL_EXACT);
-        message.setData(bundle);
-        mUpdateHandler.sendMessage(message);
+        mClickedMountToggle = null;
     }
 }
diff --git a/src/com/android/settings/deviceinfo/MemoryMeasurement.java b/src/com/android/settings/deviceinfo/MemoryMeasurement.java
deleted file mode 100644
index 1b42bc1..0000000
--- a/src/com/android/settings/deviceinfo/MemoryMeasurement.java
+++ /dev/null
@@ -1,505 +0,0 @@
-package com.android.settings.deviceinfo;
-
-import com.android.internal.app.IMediaContainerService;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.IPackageStatsObserver;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageStats;
-import android.os.Bundle;
-import android.os.Environment;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.Message;
-import android.os.StatFs;
-import android.util.Log;
-
-import java.io.File;
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Measure the memory for various systems.
- *
- * TODO: This class should ideally have less knowledge about what the context
- * it's measuring is. In the future, reduce the amount of stuff it needs to
- * know about by just keeping an array of measurement types of the following
- * properties:
- *
- *   Filesystem stats (using StatFs)
- *   Directory measurements (using DefaultContainerService.measureDir)
- *   Application measurements (using PackageManager)
- *
- * Then the calling application would just specify the type and an argument.
- * This class would keep track of it while the calling application would
- * decide on how to use it.
- */
-public class MemoryMeasurement {
-    private static final String TAG = "MemorySettings";
-    private static final boolean LOCAL_LOGV = true;
-    static final boolean LOGV = LOCAL_LOGV && Log.isLoggable(TAG, Log.VERBOSE);
-
-    public static final String TOTAL_SIZE = "total_size";
-
-    public static final String AVAIL_SIZE = "avail_size";
-
-    public static final String APPS_USED = "apps_used";
-
-    private long[] mMediaSizes = new long[Constants.NUM_MEDIA_DIRS_TRACKED];
-
-    private static final String DEFAULT_CONTAINER_PACKAGE = "com.android.defcontainer";
-
-    private static final ComponentName DEFAULT_CONTAINER_COMPONENT = new ComponentName(
-            DEFAULT_CONTAINER_PACKAGE, "com.android.defcontainer.DefaultContainerService");
-
-    private final MeasurementHandler mHandler;
-
-    private static volatile MemoryMeasurement sInstance;
-
-    private volatile WeakReference<MeasurementReceiver> mReceiver;
-
-    // Internal memory fields
-    private long mInternalTotalSize;
-    private long mInternalAvailSize;
-    private long mInternalAppsSize;
-
-    // External memory fields
-    private long mExternalTotalSize;
-
-    private long mExternalAvailSize;
-    List<FileInfo> mFileInfoForMisc;
-
-    private MemoryMeasurement(Context context) {
-        // Start the thread that will measure the disk usage.
-        final HandlerThread t = new HandlerThread("MemoryMeasurement");
-        t.start();
-        mHandler = new MeasurementHandler(context, t.getLooper());
-    }
-
-    /**
-     * Get the singleton of the MemoryMeasurement class. The application
-     * context is used to avoid leaking activities.
-     */
-    public static MemoryMeasurement getInstance(Context context) {
-        if (sInstance == null) {
-            synchronized (MemoryMeasurement.class) {
-                if (sInstance == null) {
-                    sInstance = new MemoryMeasurement(context.getApplicationContext());
-                }
-            }
-        }
-
-        return sInstance;
-    }
-
-    public void setReceiver(MeasurementReceiver receiver) {
-        if (mReceiver == null || mReceiver.get() == null) {
-            mReceiver = new WeakReference<MeasurementReceiver>(receiver);
-        }
-    }
-
-    public void measureExternal() {
-        if (!mHandler.hasMessages(MeasurementHandler.MSG_MEASURE_EXTERNAL)) {
-            mHandler.sendEmptyMessage(MeasurementHandler.MSG_MEASURE_EXTERNAL);
-        }
-    }
-
-    public void measureInternal() {
-        if (!mHandler.hasMessages(MeasurementHandler.MSG_MEASURE_INTERNAL)) {
-            mHandler.sendEmptyMessage(MeasurementHandler.MSG_MEASURE_INTERNAL);
-        }
-    }
-
-    public void cleanUp() {
-        mReceiver = null;
-        mHandler.cleanUp();
-    }
-
-    private void sendInternalApproximateUpdate() {
-        MeasurementReceiver receiver = (mReceiver != null) ? mReceiver.get() : null;
-        if (receiver == null) {
-            return;
-        }
-
-        Bundle bundle = new Bundle();
-        bundle.putLong(TOTAL_SIZE, mInternalTotalSize);
-        bundle.putLong(AVAIL_SIZE, mInternalAvailSize);
-
-        receiver.updateApproximateInternal(bundle);
-    }
-
-    private void sendInternalExactUpdate() {
-        MeasurementReceiver receiver = (mReceiver != null) ? mReceiver.get() : null;
-        if (receiver == null) {
-            if (LOGV) {
-                Log.i(TAG, "measurements dropped because receiver is null! wasted effort");
-            }
-            return;
-        }
-
-        Bundle bundle = new Bundle();
-        bundle.putLong(TOTAL_SIZE, mInternalTotalSize);
-        bundle.putLong(AVAIL_SIZE, mInternalAvailSize);
-        bundle.putLong(APPS_USED, mInternalAppsSize);
-        for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED; i++) {
-            bundle.putLong(Constants.mMediaDirs.get(i).mKey, mMediaSizes[i]);
-        }
-
-        receiver.updateExactInternal(bundle);
-    }
-
-    private void sendExternalApproximateUpdate() {
-        MeasurementReceiver receiver = (mReceiver != null) ? mReceiver.get() : null;
-        if (receiver == null) {
-            return;
-        }
-
-        Bundle bundle = new Bundle();
-        bundle.putLong(TOTAL_SIZE, mExternalTotalSize);
-        bundle.putLong(AVAIL_SIZE, mExternalAvailSize);
-
-        receiver.updateApproximateExternal(bundle);
-    }
-
-    public interface MeasurementReceiver {
-        public void updateApproximateInternal(Bundle bundle);
-
-        public void updateExactInternal(Bundle bundle);
-
-        public void updateApproximateExternal(Bundle bundle);
-    }
-
-    private class MeasurementHandler extends Handler {
-        public static final int MSG_MEASURE_INTERNAL = 1;
-
-        public static final int MSG_MEASURE_EXTERNAL = 2;
-
-        public static final int MSG_CONNECTED = 3;
-
-        public static final int MSG_DISCONNECT = 4;
-
-        public static final int MSG_COMPLETED = 5;
-
-        public static final int MSG_INVALIDATE = 6;
-
-        private Object mLock = new Object();
-
-        private IMediaContainerService mDefaultContainer;
-
-        private volatile boolean mBound = false;
-
-        private volatile boolean mMeasured = false;
-
-        private StatsObserver mStatsObserver;
-
-        private final WeakReference<Context> mContext;
-
-        final private ServiceConnection mDefContainerConn = new ServiceConnection() {
-            public void onServiceConnected(ComponentName name, IBinder service) {
-                final IMediaContainerService imcs = IMediaContainerService.Stub
-                        .asInterface(service);
-                mDefaultContainer = imcs;
-                mBound = true;
-                sendMessage(obtainMessage(MSG_CONNECTED, imcs));
-            }
-
-            public void onServiceDisconnected(ComponentName name) {
-                mBound = false;
-                removeMessages(MSG_CONNECTED);
-            }
-        };
-
-        public MeasurementHandler(Context context, Looper looper) {
-            super(looper);
-            mContext = new WeakReference<Context>(context);
-        }
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_MEASURE_EXTERNAL: {
-                    if (mMeasured) {
-                        sendExternalApproximateUpdate();
-                        break;
-                    }
-
-                    measureApproximateExternalStorage();
-                    break;
-                }
-                case MSG_MEASURE_INTERNAL: {
-                    if (mMeasured) {
-                        sendInternalExactUpdate();
-                        break;
-                    }
-
-                    final Context context = (mContext != null) ? mContext.get() : null;
-                    if (context == null) {
-                        return;
-                    }
-
-                    measureApproximateInternalStorage();
-
-                    synchronized (mLock) {
-                        if (mBound) {
-                            removeMessages(MSG_DISCONNECT);
-                            sendMessage(obtainMessage(MSG_CONNECTED, mDefaultContainer));
-                        } else {
-                            Intent service = new Intent().setComponent(DEFAULT_CONTAINER_COMPONENT);
-                            context.bindService(service, mDefContainerConn,
-                                    Context.BIND_AUTO_CREATE);
-                        }
-                    }
-                    break;
-                }
-                case MSG_CONNECTED: {
-                    IMediaContainerService imcs = (IMediaContainerService) msg.obj;
-                    measureExactInternalStorage(imcs);
-                    break;
-                }
-                case MSG_DISCONNECT: {
-                    synchronized (mLock) {
-                        if (mBound) {
-                            final Context context = (mContext != null) ? mContext.get() : null;
-                            if (context == null) {
-                                return;
-                            }
-
-                            mBound = false;
-                            context.unbindService(mDefContainerConn);
-                        }
-                    }
-                    break;
-                }
-                case MSG_COMPLETED: {
-                    mMeasured = true;
-                    sendInternalExactUpdate();
-                    break;
-                }
-                case MSG_INVALIDATE: {
-                    mMeasured = false;
-                    break;
-                }
-            }
-        }
-
-        public void cleanUp() {
-            removeMessages(MSG_MEASURE_INTERNAL);
-            removeMessages(MSG_MEASURE_EXTERNAL);
-
-            sendEmptyMessage(MSG_DISCONNECT);
-        }
-
-        /**
-         * Request measurement of each package.
-         *
-         * @param pm PackageManager instance to query
-         */
-        public void requestQueuedMeasurementsLocked(PackageManager pm) {
-            final List<String> appsList = mStatsObserver.getAppsList();
-            final int N = appsList.size();
-            for (int i = 0; i < N; i++) {
-                pm.getPackageSizeInfo(appsList.get(i), mStatsObserver);
-            }
-        }
-
-        private class StatsObserver extends IPackageStatsObserver.Stub {
-            private long mAppsSizeForThisStatsObserver = 0;
-            private final List<String> mAppsList = new ArrayList<String>();
-            public void onGetStatsCompleted(PackageStats stats, boolean succeeded) {
-                if (!mStatsObserver.equals(this)) {
-                    // this callback's class object is no longer in use. ignore this callback.
-                    return;
-                }
-                if (succeeded) {
-                    mAppsSizeForThisStatsObserver += stats.codeSize + stats.dataSize +
-                            stats.externalCacheSize + stats.externalDataSize +
-                            stats.externalMediaSize + stats.externalObbSize;
-                }
-
-                synchronized (mAppsList) {
-                    mAppsList.remove(stats.packageName);
-
-                    if (mAppsList.size() == 0) {
-                        mInternalAppsSize = mAppsSizeForThisStatsObserver;
-
-                        onInternalMeasurementComplete();
-                    }
-                }
-            }
-
-            public void queuePackageMeasurementLocked(String packageName) {
-                mAppsList.add(packageName);
-            }
-            public List<String> getAppsList() {
-                return mAppsList;
-            }
-        }
-
-        private void onInternalMeasurementComplete() {
-            sendEmptyMessage(MSG_COMPLETED);
-        }
-
-        private void measureApproximateInternalStorage() {
-            final File dataPath = Environment.getDataDirectory();
-            final StatFs stat = new StatFs(dataPath.getPath());
-            final long blockSize = stat.getBlockSize();
-            final long totalBlocks = stat.getBlockCount();
-            final long availableBlocks = stat.getAvailableBlocks();
-
-            final long totalSize = totalBlocks * blockSize;
-            final long availSize = availableBlocks * blockSize;
-
-            mInternalTotalSize = totalSize;
-            mInternalAvailSize = availSize;
-
-            sendInternalApproximateUpdate();
-        }
-
-        private void measureExactInternalStorage(IMediaContainerService imcs) {
-            Context context = mContext != null ? mContext.get() : null;
-            if (context == null) {
-                return;
-            }
-            // We have to get installd to measure the package sizes.
-            PackageManager pm = context.getPackageManager();
-            if (pm == null) {
-                return;
-            }
-            // measure sizes for all except "media_misc" - which is computed
-            for (int i = 0; i < Constants.NUM_MEDIA_DIRS_TRACKED - 1; i++) {
-                mMediaSizes[i] = 0;
-                String[] dirs = Constants.mMediaDirs.get(i).mDirPaths;
-                int len = dirs.length;
-                if (len > 0) {
-                    for (int k = 0; k < len; k++) {
-                        long dirSize = getSize(imcs, dirs[k]);
-                        mMediaSizes[i] += dirSize;
-                        if (LOGV) {
-                            Log.i(TAG, "size of " + dirs[k] + ": " + dirSize);
-                        }
-                    }
-                }
-            }
-
-            // compute the size of "misc"
-            mMediaSizes[Constants.MEDIA_MISC_INDEX] = mMediaSizes[Constants.MEDIA_INDEX];
-            for (int i = 1; i < Constants.NUM_MEDIA_DIRS_TRACKED - 1; i++) {
-                mMediaSizes[Constants.MEDIA_MISC_INDEX] -= mMediaSizes[i];
-            }
-            if (LOGV) {
-                Log.i(TAG, "media_misc size: " + mMediaSizes[Constants.MEDIA_MISC_INDEX]);
-            }
-
-            // compute the sizes of each of the files/directories under 'misc' category
-            measureSizesOfMisc(imcs);
-
-            // compute apps sizes
-            final List<ApplicationInfo> apps = pm
-                    .getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES
-                            | PackageManager.GET_DISABLED_COMPONENTS);
-            if (apps != null) {
-                // initiate measurement of all package sizes. need new StatsObserver object.
-                mStatsObserver = new StatsObserver();
-                synchronized (mStatsObserver.mAppsList) {
-                    for (int i = 0; i < apps.size(); i++) {
-                        final ApplicationInfo info = apps.get(i);
-                        mStatsObserver.queuePackageMeasurementLocked(info.packageName);
-                    }
-
-                    requestQueuedMeasurementsLocked(pm);
-                }
-            }
-
-            // Sending of the message back to the MeasurementReceiver is
-            // completed in the PackageObserver
-        }
-        private void measureSizesOfMisc(IMediaContainerService imcs) {
-            File top = Environment.getExternalStorageDirectory();
-            mFileInfoForMisc = new ArrayList<FileInfo>();
-            File[] files = top.listFiles();
-            int len = files.length;
-            if (len == 0) {
-                return;
-            }
-            // get sizes of all top level nodes in /sdcard dir except the ones already computed...
-            long counter = 0;
-            for (int i = 0; i < len; i++) {
-                String path = files[i].getAbsolutePath();
-                if (Constants.ExclusionTargetsForMiscFiles.contains(path)) {
-                    continue;
-                }
-                if (files[i].isFile()) {
-                    mFileInfoForMisc.add(new FileInfo(path, files[i].length(), counter++));
-                } else if (files[i].isDirectory()) {
-                    long dirSize = getSize(imcs, path);
-                    mFileInfoForMisc.add(new FileInfo(path, dirSize, counter++));
-                } else {
-                }
-            }
-            // sort the list of FileInfo objects collected above in descending order of their sizes
-            Collections.sort(mFileInfoForMisc);
-        }
-
-        private long getSize(IMediaContainerService imcs, String dir) {
-            try {
-                long size = imcs.calculateDirectorySize(dir);
-                return size;
-            } catch (Exception e) {
-                Log.w(TAG, "Could not read memory from default container service for " +
-                        dir, e);
-                return -1;
-            }
-        }
-
-        public void measureApproximateExternalStorage() {
-            File path = Environment.getExternalStorageDirectory();
-
-            StatFs stat = new StatFs(path.getPath());
-            long blockSize = stat.getBlockSize();
-            long totalBlocks = stat.getBlockCount();
-            long availableBlocks = stat.getAvailableBlocks();
-
-            mExternalTotalSize = totalBlocks * blockSize;
-            mExternalAvailSize = availableBlocks * blockSize;
-
-            sendExternalApproximateUpdate();
-        }
-    }
-
-    public void invalidate() {
-        mHandler.sendEmptyMessage(MeasurementHandler.MSG_INVALIDATE);
-    }
-
-    boolean isSizeOfMiscCategoryNonZero() {
-        return mFileInfoForMisc != null && mFileInfoForMisc.size() > 0;
-    }
-
-    static class FileInfo implements Comparable<FileInfo> {
-        String mFileName;
-        long mSize;
-        long mId;
-        FileInfo(String fileName, long size, long id) {
-            mFileName = fileName;
-            mSize = size;
-            mId = id;
-        }
-        @Override
-        public int compareTo(FileInfo that) {
-            if (this == that || mSize == that.mSize) return 0;
-            else if (mSize < that.mSize) return 1; // for descending sort
-            else return -1;
-        }
-        @Override
-        public String toString() {
-            return mFileName  + " : " + mSize + ", id:" + mId;
-        }
-    }
-}
diff --git a/src/com/android/settings/deviceinfo/MiscFilesHandler.java b/src/com/android/settings/deviceinfo/MiscFilesHandler.java
index 15951c9..2f9697f 100644
--- a/src/com/android/settings/deviceinfo/MiscFilesHandler.java
+++ b/src/com/android/settings/deviceinfo/MiscFilesHandler.java
@@ -16,12 +16,11 @@
 
 package com.android.settings.deviceinfo;
 
-import com.android.settings.R;
-import com.android.settings.deviceinfo.MemoryMeasurement.FileInfo;
-
+import android.app.Activity;
 import android.app.ListActivity;
 import android.content.Context;
 import android.os.Bundle;
+import android.os.storage.StorageVolume;
 import android.text.format.Formatter;
 import android.util.Log;
 import android.util.SparseBooleanArray;
@@ -39,6 +38,9 @@
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.ListView;
 
+import com.android.settings.R;
+import com.android.settings.deviceinfo.StorageMeasurement.FileInfo;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
@@ -107,7 +109,7 @@
                             //item not selected
                             continue;
                         }
-                        if (MemoryMeasurement.LOGV) {
+                        if (StorageMeasurement.LOGV) {
                             Log.i(TAG, "deleting: " + mAdapter.getItem(i));
                         }
                         // delete the file
@@ -156,6 +158,7 @@
         }
 
         public void onDestroyActionMode(ActionMode mode) {
+            // This block intentionally left blank
         }
 
         public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
@@ -181,17 +184,21 @@
         }
     }
 
-    public class MemoryMearurementAdapter extends BaseAdapter {
-        private ArrayList<MemoryMeasurement.FileInfo> mData = null;
+    class MemoryMearurementAdapter extends BaseAdapter {
+        private ArrayList<StorageMeasurement.FileInfo> mData = null;
         private long mDataSize = 0;
         private Context mContext;
 
-        public MemoryMearurementAdapter(Context context) {
-            mContext = context;
-            MemoryMeasurement mMeasurement = MemoryMeasurement.getInstance(context);
-            mData = (ArrayList<MemoryMeasurement.FileInfo>)mMeasurement.mFileInfoForMisc;
+        public MemoryMearurementAdapter(Activity activity) {
+            mContext = activity;
+            final StorageVolume storageVolume = activity.getIntent().getParcelableExtra(
+                    StorageVolume.EXTRA_STORAGE_VOLUME);
+            StorageMeasurement mMeasurement = 
+                StorageMeasurement.getInstance(activity, storageVolume, false /*Unused as a key*/);
+            if (mMeasurement == null) return;
+            mData = (ArrayList<StorageMeasurement.FileInfo>) mMeasurement.mFileInfoForMisc;
             if (mData != null) {
-                for (MemoryMeasurement.FileInfo info : mData) {
+                for (StorageMeasurement.FileInfo info : mData) {
                     mDataSize += info.mSize;
                 }
             }
@@ -203,7 +210,7 @@
         }
 
         @Override
-        public MemoryMeasurement.FileInfo getItem(int position) {
+        public StorageMeasurement.FileInfo getItem(int position) {
             if (mData == null || mData.size() <= position) {
                 return null;
             }
@@ -217,13 +224,14 @@
             }
             return mData.get(position).mId;
         }
+
         public void removeAll(List<Object> objs) {
             if (mData == null) {
                 return;
             }
             for (Object o : objs) {
                 mData.remove(o);
-                mDataSize -= ((MemoryMeasurement.FileInfo) o).mSize;
+                mDataSize -= ((StorageMeasurement.FileInfo) o).mSize;
             }
         }
 
diff --git a/src/com/android/settings/deviceinfo/PercentageBarChart.java b/src/com/android/settings/deviceinfo/PercentageBarChart.java
index 7d02301..0c71c12 100644
--- a/src/com/android/settings/deviceinfo/PercentageBarChart.java
+++ b/src/com/android/settings/deviceinfo/PercentageBarChart.java
@@ -99,6 +99,7 @@
      * Sets the background for this chart. Callers are responsible for later
      * calling {@link #invalidate()}.
      */
+    @Override
     public void setBackgroundColor(int color) {
         mEmptyPaint.setColor(color);
     }
diff --git a/src/com/android/settings/deviceinfo/StorageMeasurement.java b/src/com/android/settings/deviceinfo/StorageMeasurement.java
new file mode 100644
index 0000000..14b5108
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/StorageMeasurement.java
@@ -0,0 +1,527 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.IPackageStatsObserver;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageStats;
+import android.os.Bundle;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.os.StatFs;
+import android.os.storage.StorageVolume;
+import android.util.Log;
+
+import com.android.internal.app.IMediaContainerService;
+
+import java.io.File;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Measure the memory for various systems.
+ *
+ * TODO: This class should ideally have less knowledge about what the context
+ * it's measuring is. In the future, reduce the amount of stuff it needs to
+ * know about by just keeping an array of measurement types of the following
+ * properties:
+ *
+ *   Filesystem stats (using StatFs)
+ *   Directory measurements (using DefaultContainerService.measureDir)
+ *   Application measurements (using PackageManager)
+ *
+ * Then the calling application would just specify the type and an argument.
+ * This class would keep track of it while the calling application would
+ * decide on how to use it.
+ */
+public class StorageMeasurement {
+    private static final String TAG = "StorageMeasurement";
+
+    private static final boolean LOCAL_LOGV = true;
+    static final boolean LOGV = LOCAL_LOGV && Log.isLoggable(TAG, Log.VERBOSE);
+
+    public static final String TOTAL_SIZE = "total_size";
+
+    public static final String AVAIL_SIZE = "avail_size";
+
+    public static final String APPS_USED = "apps_used";
+
+    public static final String DOWNLOADS_SIZE = "downloads_size";
+
+    public static final String MISC_SIZE = "misc_size";
+
+    public static final String MEDIA_SIZES = "media_sizes";
+
+    private static final String DEFAULT_CONTAINER_PACKAGE = "com.android.defcontainer";
+
+    private static final ComponentName DEFAULT_CONTAINER_COMPONENT = new ComponentName(
+            DEFAULT_CONTAINER_PACKAGE, "com.android.defcontainer.DefaultContainerService");
+
+    private final MeasurementHandler mHandler;
+
+    private static Map<StorageVolume, StorageMeasurement> sInstances =
+        new ConcurrentHashMap<StorageVolume, StorageMeasurement>();
+
+    private volatile WeakReference<MeasurementReceiver> mReceiver;
+
+    private long mTotalSize;
+    private long mAvailSize;
+    private long mAppsSize;
+    private long mDownloadsSize;
+    private long mMiscSize;
+    private long[] mMediaSizes = new long[StorageVolumePreferenceCategory.sMediaCategories.length];
+
+    final private StorageVolume mStorageVolume;
+    final private boolean mIsPrimary;
+
+    List<FileInfo> mFileInfoForMisc;
+
+    public interface MeasurementReceiver {
+        public void updateApproximate(Bundle bundle);
+        public void updateExact(Bundle bundle);
+    }
+
+    private StorageMeasurement(Context context, StorageVolume storageVolume, boolean isPrimary) {
+        mStorageVolume = storageVolume;
+        mIsPrimary = isPrimary;
+
+        // Start the thread that will measure the disk usage.
+        final HandlerThread handlerThread = new HandlerThread("MemoryMeasurement");
+        handlerThread.start();
+        mHandler = new MeasurementHandler(context, handlerThread.getLooper());
+    }
+
+    /**
+     * Get the singleton of the StorageMeasurement class. The application
+     * context is used to avoid leaking activities.
+     * @param storageVolume The {@link StorageVolume} that will be measured
+     * @param isPrimary true when this storage volume is the primary volume
+     */
+    public static StorageMeasurement getInstance(Context context, StorageVolume storageVolume,
+            boolean isPrimary) {
+        if (sInstances.containsKey(storageVolume)) {
+            return sInstances.get(storageVolume);
+        } else {
+            StorageMeasurement storageMeasurement =
+                new StorageMeasurement(context.getApplicationContext(), storageVolume, isPrimary);
+            sInstances.put(storageVolume, storageMeasurement);
+            return storageMeasurement;
+        }
+    }
+
+    public void setReceiver(MeasurementReceiver receiver) {
+        if (mReceiver == null || mReceiver.get() == null) {
+            mReceiver = new WeakReference<MeasurementReceiver>(receiver);
+        }
+    }
+
+    public void measure() {
+        if (!mHandler.hasMessages(MeasurementHandler.MSG_MEASURE)) {
+            mHandler.sendEmptyMessage(MeasurementHandler.MSG_MEASURE);
+        }
+    }
+
+    public void cleanUp() {
+        mReceiver = null;
+        mHandler.removeMessages(MeasurementHandler.MSG_MEASURE);
+        mHandler.sendEmptyMessage(MeasurementHandler.MSG_DISCONNECT);
+    }
+
+    public void invalidate() {
+        mHandler.sendEmptyMessage(MeasurementHandler.MSG_INVALIDATE);
+    }
+
+    private void sendInternalApproximateUpdate() {
+        MeasurementReceiver receiver = (mReceiver != null) ? mReceiver.get() : null;
+        if (receiver == null) {
+            return;
+        }
+
+        Bundle bundle = new Bundle();
+        bundle.putLong(TOTAL_SIZE, mTotalSize);
+        bundle.putLong(AVAIL_SIZE, mAvailSize);
+
+        receiver.updateApproximate(bundle);
+    }
+
+    private void sendExactUpdate() {
+        MeasurementReceiver receiver = (mReceiver != null) ? mReceiver.get() : null;
+        if (receiver == null) {
+            if (LOGV) {
+                Log.i(TAG, "measurements dropped because receiver is null! wasted effort");
+            }
+            return;
+        }
+
+        Bundle bundle = new Bundle();
+        bundle.putLong(TOTAL_SIZE, mTotalSize);
+        bundle.putLong(AVAIL_SIZE, mAvailSize);
+        bundle.putLong(APPS_USED, mAppsSize);
+        bundle.putLong(DOWNLOADS_SIZE, mDownloadsSize);
+        bundle.putLong(MISC_SIZE, mMiscSize);
+        bundle.putLongArray(MEDIA_SIZES, mMediaSizes);
+
+        receiver.updateExact(bundle);
+    }
+
+    private class MeasurementHandler extends Handler {
+        public static final int MSG_MEASURE = 1;
+
+        public static final int MSG_CONNECTED = 2;
+
+        public static final int MSG_DISCONNECT = 3;
+
+        public static final int MSG_COMPLETED = 4;
+
+        public static final int MSG_INVALIDATE = 5;
+
+        private Object mLock = new Object();
+
+        private IMediaContainerService mDefaultContainer;
+
+        private volatile boolean mBound = false;
+
+        private volatile boolean mMeasured = false;
+
+        private StatsObserver mStatsObserver;
+
+        private final WeakReference<Context> mContext;
+
+        final private ServiceConnection mDefContainerConn = new ServiceConnection() {
+            public void onServiceConnected(ComponentName name, IBinder service) {
+                final IMediaContainerService imcs = IMediaContainerService.Stub
+                .asInterface(service);
+                mDefaultContainer = imcs;
+                mBound = true;
+                sendMessage(obtainMessage(MSG_CONNECTED, imcs));
+            }
+
+            public void onServiceDisconnected(ComponentName name) {
+                mBound = false;
+                removeMessages(MSG_CONNECTED);
+            }
+        };
+
+        public MeasurementHandler(Context context, Looper looper) {
+            super(looper);
+            mContext = new WeakReference<Context>(context);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_MEASURE: {
+                    if (mMeasured) {
+                        sendExactUpdate();
+                        break;
+                    }
+
+                    final Context context = (mContext != null) ? mContext.get() : null;
+                    if (context == null) {
+                        return;
+                    }
+
+                    measureApproximateStorage();
+
+                    synchronized (mLock) {
+                        if (mBound) {
+                            removeMessages(MSG_DISCONNECT);
+                            sendMessage(obtainMessage(MSG_CONNECTED, mDefaultContainer));
+                        } else {
+                            Intent service = new Intent().setComponent(DEFAULT_CONTAINER_COMPONENT);
+                            context.bindService(service, mDefContainerConn,
+                                    Context.BIND_AUTO_CREATE);
+                        }
+                    }
+                    break;
+                }
+                case MSG_CONNECTED: {
+                    IMediaContainerService imcs = (IMediaContainerService) msg.obj;
+                    measureExactStorage(imcs);
+                    break;
+                }
+                case MSG_DISCONNECT: {
+                    synchronized (mLock) {
+                        if (mBound) {
+                            final Context context = (mContext != null) ? mContext.get() : null;
+                            if (context == null) {
+                                return;
+                            }
+
+                            mBound = false;
+                            context.unbindService(mDefContainerConn);
+                        }
+                    }
+                    break;
+                }
+                case MSG_COMPLETED: {
+                    mMeasured = true;
+                    sendExactUpdate();
+                    break;
+                }
+                case MSG_INVALIDATE: {
+                    mMeasured = false;
+                    break;
+                }
+            }
+        }
+
+        /**
+         * Request measurement of each package.
+         *
+         * @param pm PackageManager instance to query
+         */
+        public void requestQueuedMeasurementsLocked(PackageManager pm) {
+            final String[] appsList = mStatsObserver.getAppsList();
+            final int N = appsList.length;
+            for (int i = 0; i < N; i++) {
+                pm.getPackageSizeInfo(appsList[i], mStatsObserver);
+            }
+        }
+
+        private class StatsObserver extends IPackageStatsObserver.Stub {
+            private long mAppsSizeForThisStatsObserver = 0;
+            private final List<String> mAppsList = new ArrayList<String>();
+
+            public void onGetStatsCompleted(PackageStats stats, boolean succeeded) {
+                if (!mStatsObserver.equals(this)) {
+                    // this callback's class object is no longer in use. ignore this callback.
+                    return;
+                }
+
+                if (succeeded) {
+                    mAppsSizeForThisStatsObserver += stats.codeSize + stats.dataSize +
+                    stats.externalCacheSize + stats.externalDataSize +
+                    stats.externalMediaSize + stats.externalObbSize;
+                }
+
+                synchronized (mAppsList) {
+                    mAppsList.remove(stats.packageName);
+                    if (mAppsList.size() > 0) return;
+                }
+
+                mAppsSize = mAppsSizeForThisStatsObserver;
+                onInternalMeasurementComplete();
+            }
+
+            public void queuePackageMeasurementLocked(String packageName) {
+                synchronized (mAppsList) {
+                    mAppsList.add(packageName);
+                }
+            }
+
+            public String[] getAppsList() {
+                synchronized (mAppsList) {
+                    return mAppsList.toArray(new String[mAppsList.size()]);
+                }
+            }
+        }
+
+        private void onInternalMeasurementComplete() {
+            sendEmptyMessage(MSG_COMPLETED);
+        }
+
+        private void measureApproximateStorage() {
+            final StatFs stat = new StatFs(mStorageVolume.getPath());
+            final long blockSize = stat.getBlockSize();
+            final long totalBlocks = stat.getBlockCount();
+            final long availableBlocks = stat.getAvailableBlocks();
+
+            mTotalSize = totalBlocks * blockSize;
+            mAvailSize = availableBlocks * blockSize;
+
+            sendInternalApproximateUpdate();
+        }
+
+        private void measureExactStorage(IMediaContainerService imcs) {
+            Context context = mContext != null ? mContext.get() : null;
+            if (context == null) {
+                return;
+            }
+
+            // Media
+            for (int i = 0; i < StorageVolumePreferenceCategory.sMediaCategories.length; i++) {
+                if (mIsPrimary) {
+                    String[] dirs = StorageVolumePreferenceCategory.sMediaCategories[i].mDirPaths;
+                    final int length = dirs.length;
+                    mMediaSizes[i] = 0;
+                    for (int d = 0; d < length; d++) {
+                        final String path = dirs[d];
+                        mMediaSizes[i] += getDirectorySize(imcs, path);
+                    }
+                } else {
+                    // TODO Compute sizes using the MediaStore
+                    mMediaSizes[i] = 0;
+                }
+            }
+
+            /* Compute sizes using the media provider
+            // Media sizes are measured by the MediaStore. Query database.
+            ContentResolver contentResolver = context.getContentResolver();
+            // TODO "external" as a static String from MediaStore?
+            Uri audioUri = MediaStore.Files.getContentUri("external");
+            final String[] projection =
+                new String[] { "sum(" + MediaStore.Files.FileColumns.SIZE + ")" };
+            final String selection =
+                MediaStore.Files.FileColumns.STORAGE_ID + "=" +
+                Integer.toString(mStorageVolume.getStorageId()) + " AND " +
+                MediaStore.Files.FileColumns.MEDIA_TYPE + "=?";
+
+            for (int i = 0; i < StorageVolumePreferenceCategory.sMediaCategories.length; i++) {
+                mMediaSizes[i] = 0;
+                int mediaType = StorageVolumePreferenceCategory.sMediaCategories[i].mediaType;
+                Cursor c = null;
+                try {
+                    c = contentResolver.query(audioUri, projection, selection,
+                            new String[] { Integer.toString(mediaType) } , null);
+
+                    if (c != null && c.moveToNext()) {
+                        long size = c.getLong(0);
+                        mMediaSizes[i] = size;
+                    }
+                } finally {
+                    if (c != null) c.close();
+                }
+            }
+             */
+
+            // Downloads (primary volume only)
+            if (mIsPrimary) {
+                final String downloadsPath = Environment.getExternalStoragePublicDirectory(
+                        Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
+                mDownloadsSize = getDirectorySize(imcs, downloadsPath);
+            } else {
+                mDownloadsSize = 0;
+            }
+
+            // Misc
+            mMiscSize = 0;
+            if (mIsPrimary) {
+                measureSizesOfMisc(imcs);
+            }
+
+            // Apps
+            // We have to get installd to measure the package sizes.
+            PackageManager pm = context.getPackageManager();
+            if (pm == null) {
+                return;
+            }
+            final List<ApplicationInfo> apps;
+            if (mIsPrimary) {
+                apps = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES |
+                        PackageManager.GET_DISABLED_COMPONENTS);
+            } else {
+                // TODO also measure apps installed on the SD card
+                apps = Collections.emptyList();
+            }
+
+            if (apps != null && apps.size() > 0) {
+                // initiate measurement of all package sizes. need new StatsObserver object.
+                mStatsObserver = new StatsObserver();
+                synchronized (mStatsObserver.mAppsList) {
+                    for (int i = 0; i < apps.size(); i++) {
+                        final ApplicationInfo info = apps.get(i);
+                        mStatsObserver.queuePackageMeasurementLocked(info.packageName);
+                    }
+                }
+
+                requestQueuedMeasurementsLocked(pm);
+                // Sending of the message back to the MeasurementReceiver is
+                // completed in the PackageObserver
+            } else {
+                onInternalMeasurementComplete();
+            }
+        }
+    }
+
+    private long getDirectorySize(IMediaContainerService imcs, String dir) {
+        try {
+            return imcs.calculateDirectorySize(dir);
+        } catch (Exception e) {
+            Log.w(TAG, "Could not read memory from default container service for " + dir, e);
+            return 0;
+        }
+    }
+
+    long getMiscSize() {
+        return mMiscSize;
+    }
+
+    private void measureSizesOfMisc(IMediaContainerService imcs) {
+        File top = new File(mStorageVolume.getPath());
+        mFileInfoForMisc = new ArrayList<FileInfo>();
+        File[] files = top.listFiles();
+        final int len = files.length;
+        // Get sizes of all top level nodes except the ones already computed...
+        long counter = 0;
+        for (int i = 0; i < len; i++) {
+            String path = files[i].getAbsolutePath();
+            if (StorageVolumePreferenceCategory.sPathsExcludedForMisc.contains(path)) {
+                continue;
+            }
+            if (files[i].isFile()) {
+                final long fileSize = files[i].length();
+                mFileInfoForMisc.add(new FileInfo(path, fileSize, counter++));
+                mMiscSize += fileSize;
+            } else if (files[i].isDirectory()) {
+                final long dirSize = getDirectorySize(imcs, path);
+                mFileInfoForMisc.add(new FileInfo(path, dirSize, counter++));
+                mMiscSize += dirSize;
+            } else {
+                // Non directory, non file: not listed
+            }
+        }
+        // sort the list of FileInfo objects collected above in descending order of their sizes
+        Collections.sort(mFileInfoForMisc);
+    }
+
+    static class FileInfo implements Comparable<FileInfo> {
+        final String mFileName;
+        final long mSize;
+        final long mId;
+
+        FileInfo(String fileName, long size, long id) {
+            mFileName = fileName;
+            mSize = size;
+            mId = id;
+        }
+
+        @Override
+        public int compareTo(FileInfo that) {
+            if (this == that || mSize == that.mSize) return 0;
+            else return (mSize < that.mSize) ? 1 : -1; // for descending sort
+        }
+
+        @Override
+        public String toString() {
+            return mFileName  + " : " + mSize + ", id:" + mId;
+        }
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
new file mode 100644
index 0000000..83f9ee2
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
@@ -0,0 +1,407 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo;
+
+import android.app.DownloadManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.graphics.drawable.ShapeDrawable;
+import android.graphics.drawable.shapes.RectShape;
+import android.os.Bundle;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.Message;
+import android.os.storage.StorageManager;
+import android.os.storage.StorageVolume;
+import android.preference.Preference;
+import android.preference.PreferenceCategory;
+import android.text.format.Formatter;
+
+import com.android.settings.R;
+import com.android.settings.deviceinfo.StorageMeasurement.MeasurementReceiver;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class StorageVolumePreferenceCategory extends PreferenceCategory implements
+        MeasurementReceiver {
+
+    static final int TOTAL_SIZE = 0;
+    static final int APPLICATIONS = 1;
+    static final int DCIM = 2; // Pictures and Videos
+    static final int MUSIC = 3;
+    static final int DOWNLOADS = 4;
+    static final int MISC = 5;
+    static final int AVAILABLE = 6;
+
+    private UsageBarPreference mUsageBarPreference;
+    private Preference[] mPreferences;
+    private Preference mMountTogglePreference;
+    private Preference mFormatPreference;
+    private int[] mColors;
+
+    private Resources mResources;
+
+    private StorageVolume mStorageVolume;
+
+    private StorageManager mStorageManager = null;
+
+    private StorageMeasurement mMeasurement;
+
+    static class CategoryInfo {
+        final int mTitle;
+        final int mColor;
+
+        public CategoryInfo(int title, int color) {
+            mTitle = title;
+            mColor = color;
+        }
+    }
+
+    static final CategoryInfo[] sCategoryInfos = new CategoryInfo[] {
+        new CategoryInfo(R.string.memory_size, 0),
+        new CategoryInfo(R.string.memory_apps_usage, R.color.memory_apps_usage),
+        new CategoryInfo(R.string.memory_dcim_usage, R.color.memory_dcim),
+        new CategoryInfo(R.string.memory_music_usage, R.color.memory_music),
+        new CategoryInfo(R.string.memory_downloads_usage, R.color.memory_downloads),
+        new CategoryInfo(R.string.memory_media_misc_usage, R.color.memory_misc),
+        new CategoryInfo(R.string.memory_available, R.color.memory_avail),
+    };
+
+    public static final Set<String> sPathsExcludedForMisc = new HashSet<String>();
+
+    static class MediaCategory {
+        final String[] mDirPaths;
+        final int mCategory;
+        //final int mMediaType;
+
+        public MediaCategory(int category, String... directories) {
+            mCategory = category;
+            final int length = directories.length;
+            mDirPaths = new String[length];
+            for (int i = 0; i < length; i++) {
+                final String name = directories[i];
+                final String path = Environment.getExternalStoragePublicDirectory(name).
+                        getAbsolutePath();
+                mDirPaths[i] = path;
+                sPathsExcludedForMisc.add(path);
+            }
+        }
+    }
+
+    static final MediaCategory[] sMediaCategories = new MediaCategory[] {
+        new MediaCategory(DCIM, Environment.DIRECTORY_DCIM, Environment.DIRECTORY_MOVIES,
+                Environment.DIRECTORY_PICTURES),
+        new MediaCategory(MUSIC, Environment.DIRECTORY_MUSIC, Environment.DIRECTORY_ALARMS,
+                Environment.DIRECTORY_NOTIFICATIONS, Environment.DIRECTORY_RINGTONES,
+                Environment.DIRECTORY_PODCASTS)
+    };
+
+    static {
+        // Downloads
+        sPathsExcludedForMisc.add(Environment.getExternalStoragePublicDirectory(
+                Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());
+        // Apps
+        sPathsExcludedForMisc.add(Environment.getExternalStorageDirectory().getAbsolutePath() +
+                "/Android");
+    }
+
+    // Updates the memory usage bar graph.
+    private static final int MSG_UI_UPDATE_APPROXIMATE = 1;
+
+    // Updates the memory usage bar graph.
+    private static final int MSG_UI_UPDATE_EXACT = 2;
+
+    private Handler mUpdateHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_UI_UPDATE_APPROXIMATE: {
+                    Bundle bundle = msg.getData();
+                    final long totalSize = bundle.getLong(StorageMeasurement.TOTAL_SIZE);
+                    final long availSize = bundle.getLong(StorageMeasurement.AVAIL_SIZE);
+                    updateApproximate(totalSize, availSize);
+                    break;
+                }
+                case MSG_UI_UPDATE_EXACT: {
+                    Bundle bundle = msg.getData();
+                    final long totalSize = bundle.getLong(StorageMeasurement.TOTAL_SIZE);
+                    final long availSize = bundle.getLong(StorageMeasurement.AVAIL_SIZE);
+                    final long appsUsed = bundle.getLong(StorageMeasurement.APPS_USED);
+                    final long downloadsSize = bundle.getLong(StorageMeasurement.DOWNLOADS_SIZE);
+                    final long miscSize = bundle.getLong(StorageMeasurement.MISC_SIZE);
+                    final long[] mediaSizes = bundle.getLongArray(StorageMeasurement.MEDIA_SIZES);
+                    updateExact(totalSize, availSize, appsUsed, downloadsSize, miscSize,
+                            mediaSizes);
+                    break;
+                }
+            }
+        }
+    };
+
+    public StorageVolumePreferenceCategory(Context context, Resources resources,
+            StorageVolume storageVolume, StorageManager storageManager, boolean isPrimary) {
+        super(context);
+        mResources = resources;
+        mStorageVolume = storageVolume;
+        mStorageManager = storageManager;
+        setTitle(storageVolume.getDescription());
+        mMeasurement = StorageMeasurement.getInstance(context, storageVolume, isPrimary);
+        mMeasurement.setReceiver(this);
+    }
+
+    public void init() {
+        mUsageBarPreference = new UsageBarPreference(getContext());
+
+        final int width = (int) mResources.getDimension(R.dimen.device_memory_usage_button_width);
+        final int height = (int) mResources.getDimension(R.dimen.device_memory_usage_button_height);
+
+        final int numberOfCategories = sCategoryInfos.length;
+        mPreferences = new Preference[numberOfCategories];
+        mColors = new int[numberOfCategories];
+        for (int i = 0; i < numberOfCategories; i++) {
+            final Preference preference = new Preference(getContext());
+            mPreferences[i] = preference;
+            preference.setTitle(sCategoryInfos[i].mTitle);
+            preference.setSummary(R.string.memory_calculating_size);
+            if (i != TOTAL_SIZE) {
+                // TOTAL_SIZE has no associated color
+                mColors[i] = mResources.getColor(sCategoryInfos[i].mColor);
+                preference.setIcon(createRectShape(width, height, mColors[i]));
+            }
+        }
+
+        mMountTogglePreference = new Preference(getContext());
+        mMountTogglePreference.setTitle(R.string.sd_eject);
+        mMountTogglePreference.setSummary(R.string.sd_eject_summary);
+
+        mFormatPreference = new Preference(getContext());
+        mFormatPreference.setTitle(R.string.sd_format);
+        mFormatPreference.setSummary(R.string.sd_format_summary);
+    }
+
+    public StorageVolume getStorageVolume() {
+        return mStorageVolume;
+    }
+
+    /**
+     * Successive mounts can change the list of visible preferences.
+     * This makes sure all preferences are visible and displayed in the right order.
+     */
+    private void resetPreferences() {
+        final int numberOfCategories = sCategoryInfos.length;
+
+        removePreference(mUsageBarPreference);
+        for (int i = 0; i < numberOfCategories; i++) {
+            removePreference(mPreferences[i]);
+        }
+        removePreference(mMountTogglePreference);
+        removePreference(mFormatPreference);
+
+        addPreference(mUsageBarPreference);
+        for (int i = 0; i < numberOfCategories; i++) {
+            addPreference(mPreferences[i]);
+        }
+        addPreference(mMountTogglePreference);
+        addPreference(mFormatPreference);
+
+        mMountTogglePreference.setEnabled(true);
+    }
+
+    private void updatePreferencesFromState() {
+        resetPreferences();
+
+        String state = mStorageManager.getVolumeState(mStorageVolume.getPath());
+
+        String readOnly = "";
+        if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
+            state = Environment.MEDIA_MOUNTED;
+            readOnly = mResources.getString(R.string.read_only);
+            removePreference(mFormatPreference);
+        }
+
+        if (mStorageVolume.isEmulated()) {
+            removePreference(mFormatPreference);
+        }
+
+        if (!mStorageVolume.isRemovable() && !Environment.MEDIA_UNMOUNTED.equals(state)) {
+            // This device has built-in storage that is not removable.
+            // There is no reason for the user to unmount it.
+            removePreference(mMountTogglePreference);
+        }
+
+        if (Environment.MEDIA_MOUNTED.equals(state)) {
+            mPreferences[AVAILABLE].setSummary(mPreferences[AVAILABLE].getSummary() + readOnly);
+
+            mMountTogglePreference.setEnabled(true);
+            mMountTogglePreference.setTitle(mResources.getString(R.string.sd_eject));
+            mMountTogglePreference.setSummary(mResources.getString(R.string.sd_eject_summary));
+        } else {
+            if (Environment.MEDIA_UNMOUNTED.equals(state) || Environment.MEDIA_NOFS.equals(state)
+                    || Environment.MEDIA_UNMOUNTABLE.equals(state)) {
+                mMountTogglePreference.setEnabled(true);
+                mMountTogglePreference.setTitle(mResources.getString(R.string.sd_mount));
+                mMountTogglePreference.setSummary(mResources.getString(R.string.sd_mount_summary));
+            } else {
+                mMountTogglePreference.setEnabled(false);
+                mMountTogglePreference.setTitle(mResources.getString(R.string.sd_mount));
+                mMountTogglePreference.setSummary(mResources.getString(R.string.sd_insert_summary));
+            }
+
+            removePreference(mUsageBarPreference);
+            removePreference(mPreferences[TOTAL_SIZE]);
+            removePreference(mPreferences[AVAILABLE]);
+            removePreference(mFormatPreference);
+        }
+    }
+
+    public void updateApproximate(long totalSize, long availSize) {
+        mPreferences[TOTAL_SIZE].setSummary(formatSize(totalSize));
+        mPreferences[AVAILABLE].setSummary(formatSize(availSize));
+
+        final long usedSize = totalSize - availSize;
+
+        mUsageBarPreference.clear();
+        mUsageBarPreference.addEntry(usedSize / (float) totalSize, android.graphics.Color.GRAY);
+        mUsageBarPreference.commit();
+
+        updatePreferencesFromState();
+    }
+
+    public void updateExact(long totalSize, long availSize, long appsSize, long downloadsSize,
+            long miscSize, long[] mediaSizes) {
+        mUsageBarPreference.clear();
+
+        mPreferences[TOTAL_SIZE].setSummary(formatSize(totalSize));
+
+        updatePreference(appsSize, totalSize, APPLICATIONS);
+
+        long totalMediaSize = 0;
+        for (int i = 0; i < sMediaCategories.length; i++) {
+            final int category = sMediaCategories[i].mCategory;
+            final long size = mediaSizes[i];
+            updatePreference(size, totalSize, category);
+            totalMediaSize += size;
+        }
+
+        updatePreference(downloadsSize, totalSize, DOWNLOADS);
+
+        // Note miscSize != totalSize - availSize - appsSize - downloadsSize - totalMediaSize
+        // Block size is taken into account. That can be extra space from folders. TODO Investigate
+        updatePreference(miscSize, totalSize, MISC);
+
+        updatePreference(availSize, totalSize, AVAILABLE);
+
+        mUsageBarPreference.commit();
+    }
+
+    private void updatePreference(long size, long totalSize, int category) {
+        if (size > 0) {
+            mPreferences[category].setSummary(formatSize(size));
+            mUsageBarPreference.addEntry(size / (float) totalSize, mColors[category]);
+        } else {
+            removePreference(mPreferences[category]);
+        }
+    }
+
+    private void measure() {
+        mMeasurement.invalidate();
+        mMeasurement.measure();
+    }
+
+    public void onResume() {
+        mMeasurement.setReceiver(this);
+        measure();
+    }
+
+    public void onStorageStateChanged() {
+        measure();
+    }
+
+    public void onMediaScannerFinished() {
+        measure();
+    }
+
+    public void onPause() {
+        mMeasurement.cleanUp();
+    }
+
+    private static ShapeDrawable createRectShape(int width, int height, int color) {
+        ShapeDrawable shape = new ShapeDrawable(new RectShape());
+        shape.setIntrinsicHeight(height);
+        shape.setIntrinsicWidth(width);
+        shape.getPaint().setColor(color);
+        return shape;
+    }
+
+    private String formatSize(long size) {
+        return Formatter.formatFileSize(getContext(), size);
+    }
+
+    @Override
+    public void updateApproximate(Bundle bundle) {
+        final Message message = mUpdateHandler.obtainMessage(MSG_UI_UPDATE_APPROXIMATE);
+        message.setData(bundle);
+        mUpdateHandler.sendMessage(message);
+    }
+
+    @Override
+    public void updateExact(Bundle bundle) {
+        final Message message = mUpdateHandler.obtainMessage(MSG_UI_UPDATE_EXACT);
+        message.setData(bundle);
+        mUpdateHandler.sendMessage(message);
+    }
+
+    public boolean mountToggleClicked(Preference preference) {
+        return preference == mMountTogglePreference;
+    }
+
+    public Intent intentForClick(Preference preference) {
+        Intent intent = null;
+
+        // TODO The current "delete" story is not fully handled by the respective applications.
+        // When it is done, make sure the intent types below are correct.
+        // If that cannot be done, remove these intents.
+        if (preference == mFormatPreference) {
+            intent = new Intent(Intent.ACTION_VIEW);
+            intent.setClass(getContext(), com.android.settings.MediaFormat.class);
+            intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME, mStorageVolume);
+        } else if (preference == mPreferences[APPLICATIONS]) {
+            intent = new Intent(Intent.ACTION_MANAGE_PACKAGE_STORAGE);
+            intent.setClass(getContext(),
+                    com.android.settings.Settings.ManageApplicationsActivity.class);
+        } else if (preference == mPreferences[DOWNLOADS]) {
+            intent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS).putExtra(
+                    DownloadManager.INTENT_EXTRAS_SORT_BY_SIZE, true);
+        } else if (preference == mPreferences[MUSIC]) {
+            intent = new Intent(Intent.ACTION_GET_CONTENT);
+            intent.setType("audio/mp3");
+        } else if (preference == mPreferences[DCIM]) {
+            intent = new Intent(Intent.ACTION_GET_CONTENT);
+            intent.setType("image/jpeg"); // TODO Create a Videos category, type = video/*
+        } else if (preference == mPreferences[MISC]) {
+            Context context = getContext().getApplicationContext();
+            if (mMeasurement.getMiscSize() > 0) {
+                intent = new Intent(context, MiscFilesHandler.class);
+                intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME, mStorageVolume);
+            }
+        }
+
+        return intent;
+    }
+}
