OSDN Git Service

Merge "Reduce padding to the left of progress category to match framework changes...
authorAmith Yamasani <yamasani@google.com>
Fri, 27 May 2011 21:49:21 +0000 (14:49 -0700)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Fri, 27 May 2011 21:49:21 +0000 (14:49 -0700)
72 files changed:
AndroidManifest.xml
res/layout-sw600dp-land/date_time_settings_setupwizard.xml [moved from res/layout-xlarge/date_time_settings_setupwizard.xml with 96% similarity]
res/layout-sw600dp-land/wifi_settings_for_setup_wizard_xl.xml [moved from res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml with 98% similarity]
res/layout-sw600dp/access_point_category_for_setup_wizard_xl.xml [moved from res/layout-xlarge/access_point_category_for_setup_wizard_xl.xml with 100% similarity]
res/layout-sw600dp/date_time_settings_setupwizard.xml [new file with mode: 0644]
res/layout-sw600dp/settings_top_level.xml [moved from res/layout-xlarge/settings_top_level.xml with 100% similarity]
res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml [new file with mode: 0644]
res/layout/add_account_screen.xml
res/layout/installed_app_details.xml
res/layout/ownerinfo.xml
res/layout/preference_powergauge.xml
res/layout/two_buttons_panel.xml
res/values-ar/strings.xml
res/values-bg/strings.xml
res/values-ca/strings.xml
res/values-cs/strings.xml
res/values-da/strings.xml
res/values-de/strings.xml
res/values-el/strings.xml
res/values-en-rGB/strings.xml
res/values-es-rUS/strings.xml
res/values-es/strings.xml
res/values-fa/strings.xml
res/values-fi/strings.xml
res/values-fr/strings.xml
res/values-hr/strings.xml
res/values-hu/strings.xml
res/values-in/strings.xml
res/values-it/strings.xml
res/values-iw/strings.xml
res/values-ja/strings.xml
res/values-ko/strings.xml
res/values-lt/strings.xml
res/values-lv/strings.xml
res/values-nb/strings.xml
res/values-nl/strings.xml
res/values-pl/strings.xml
res/values-pt-rPT/strings.xml
res/values-pt/strings.xml
res/values-rm/strings.xml
res/values-ro/strings.xml
res/values-ru/strings.xml
res/values-sk/strings.xml
res/values-sl/strings.xml
res/values-sr/strings.xml
res/values-sv/strings.xml
res/values-sw600dp-land/dimens.xml [new file with mode: 0755]
res/values-sw600dp/bools.xml [moved from res/values-xlarge/bools.xml with 100% similarity]
res/values-sw600dp/colors.xml [moved from res/values-xlarge/colors.xml with 100% similarity]
res/values-sw600dp/dimens.xml [new file with mode: 0755]
res/values-sw600dp/styles.xml [moved from res/values-xlarge/styles.xml with 100% similarity]
res/values-th/strings.xml
res/values-tl/strings.xml
res/values-tr/strings.xml
res/values-uk/strings.xml
res/values-vi/strings.xml
res/values-xlarge/dimens.xml [new file with mode: 0755]
res/values-zh-rCN/strings.xml
res/values-zh-rTW/strings.xml
res/values/colors.xml
res/values/strings.xml
res/xml/device_info_memory.xml
src/com/android/settings/DateTimeSettingsSetupWizard.java
src/com/android/settings/MediaFormat.java
src/com/android/settings/applications/InstalledAppDetails.java
src/com/android/settings/deviceinfo/Constants.java [deleted file]
src/com/android/settings/deviceinfo/Memory.java
src/com/android/settings/deviceinfo/MemoryMeasurement.java [deleted file]
src/com/android/settings/deviceinfo/MiscFilesHandler.java
src/com/android/settings/deviceinfo/PercentageBarChart.java
src/com/android/settings/deviceinfo/StorageMeasurement.java [new file with mode: 0644]
src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java [new file with mode: 0644]

index 7879d0c..7e7bf1d 100644 (file)
                   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" />
 
     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
@@ -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-sw600dp/date_time_settings_setupwizard.xml b/res/layout-sw600dp/date_time_settings_setupwizard.xml
new file mode 100644 (file)
index 0000000..b31462d
--- /dev/null
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+  -->
+<RelativeLayout
+    android:id="@+id/layout_root"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    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
+        android:id="@+id/title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:minHeight="48dip"
+        android:layout_alignParentLeft="true"
+        android:layout_marginLeft="16dip"
+        android:layout_alignParentTop="true"
+        android:textSize="32dip"
+        android:textColor="#FF99cc00"
+        android:text="@string/date_and_time_settings_title_setup_wizard"
+        android:gravity="bottom" />
+
+    <!-- Divider -->
+    <View
+        android:id="@+id/top_divider"
+        android:layout_width="match_parent"
+        android:layout_height="3dip"
+        android:layout_below="@id/title"
+        android:layout_marginTop="6dip"
+        android:layout_marginBottom="17dip"
+        android:background="@color/divider_color" />
+
+    <RelativeLayout
+        android:id="@+id/timezone_auto_time"
+        android:layout_width="716dip"
+        android:layout_height="wrap_content"
+        android:layout_centerHorizontal="true"
+        android:layout_below="@id/top_divider">
+        <!-- timezone -->
+        <Button
+            android:id="@+id/time_zone_button"
+            style="?android:attr/dropDownSpinnerStyle"
+            android:layout_width="304dip"
+            android:layout_height="48dip"
+            android:layout_alignParentLeft="true"
+            android:layout_alignBottom="@+id/date_time_auto"
+            android:gravity="left|center_vertical"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textSize="20dip" />
+
+        <LinearLayout
+            android:id="@+id/date_time_auto"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:layout_toRightOf="@id/time_zone_button"
+            android:layout_marginLeft="32dip"
+            android:layout_alignParentRight="true">
+
+            <Switch
+                android:id="@+id/date_time_auto_button"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:minHeight="?android:attr/listPreferredItemHeight"
+                android:layout_marginLeft="16dip"
+                android:text="@string/date_time_auto"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="20dip" />
+
+            <!-- Divider -->
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1px"
+                android:background="@color/divider_color" />
+        </LinearLayout>
+    </RelativeLayout>
+
+    <LinearLayout
+        android:layout_width="624dip"
+        android:layout_height="wrap_content"
+        android:layout_centerHorizontal="true"
+        android:layout_below="@+id/timezone_auto_time"
+        android:layout_marginTop="48dip"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="312dip"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+            <TextView
+                android:id="@+id/date_picker_title"
+                android:layout_width="match_parent"
+                android:layout_height="48dip"
+                android:text="@string/date_picker_title"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="20dip"
+                android:clickable="false"
+                android:longClickable="false"
+                android:gravity="center" />
+            <DatePicker
+                android:id="@+id/date_picker"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_below="@id/date_picker_title" />
+        </LinearLayout>
+
+        <!-- divider -->
+        <View
+            android:id="@+id/center_divider"
+            android:layout_width="1dip"
+            android:layout_height="match_parent"
+            android:background="@color/divider_color" />
+
+        <LinearLayout
+            android:layout_width="312dip"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+            <TextView
+                android:id="@+id/time_picker_title"
+                android:layout_width="match_parent"
+                android:layout_height="48dip"
+                android:text="@string/time_picker_title"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="20dip"
+                android:gravity="center" />
+
+            <TimePicker
+                android:id="@+id/time_picker"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_below="@id/time_picker_title" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <View
+        android:id="@+id/bottom_divider"
+        android:layout_width="match_parent"
+        android:layout_height="3dip"
+        android:layout_alignLeft="@id/timezone_auto_time"
+        android:layout_above="@+id/next_button"
+        android:layout_marginBottom="16dip"
+        android:background="@color/divider_color" />
+
+    <Button
+        android:id="@+id/next_button"
+        style="@style/setup_wizard_button"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:text="@string/next_label" />
+</RelativeLayout>
diff --git a/res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml b/res/layout-sw600dp/wifi_settings_for_setup_wizard_xl.xml
new file mode 100644 (file)
index 0000000..d6df897
--- /dev/null
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+  -->
+
+<RelativeLayout
+    android:id="@+id/layout_root"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="horizontal"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:paddingTop="60dip"
+    android:paddingLeft="@dimen/screen_margin_sides"
+    android:paddingRight="@dimen/screen_margin_sides"
+    android:paddingBottom="0dip" >
+
+    <FrameLayout
+        android:id="@+id/top_padding_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true">
+        <!-- Set to gone when software keyboard appears -->
+        <View
+             android:id="@+id/top_padding"
+             android:layout_width="match_parent"
+             android:layout_height="94dip" />
+    </FrameLayout>
+
+    <TextView
+        android:id="@+id/wifi_setup_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:minHeight="48dip"
+        android:layout_alignParentLeft="true"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="16dip"
+        android:layout_below="@id/top_padding_layout"
+        android:textSize="32dip"
+        android:textColor="#ff99cc00"
+        android:text="@string/wifi_setup_title"
+        android:gravity="bottom"/>
+
+    <!-- Divider -->
+    <FrameLayout
+        android:id="@+id/top_divider"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/wifi_setup_title">
+        <ProgressBar
+            android:id="@+id/scanning_progress_bar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="?android:attr/progressBarStyleHorizontal" />
+        <View
+            android:id="@+id/top_divider_no_progress"
+            android:layout_width="match_parent"
+            android:layout_height="3dip"
+            android:layout_marginTop="6dip"
+            android:layout_marginBottom="0dip"
+            android:background="@color/divider_color"
+            android:visibility="gone" />
+    </FrameLayout>
+
+    <!-- Dummy view to have the left edge of following Views.
+         @id/content needs to have layout_width="match_parent" to accommodate
+         every views inside @id/wifi_config_ui while sometimes config ui becomes
+         very wide. -->
+    <View
+        android:id="@+id/dummy_for_left_edge"
+        android:layout_width="716dip"
+        android:layout_height="0dip"
+        android:layout_below="@id/top_divider"
+        android:layout_centerHorizontal="true" />
+
+    <RelativeLayout
+        android:id="@+id/content"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/top_divider"
+        android:layout_alignLeft="@id/dummy_for_left_edge"
+        android:layout_centerHorizontal="true">
+
+        <!-- Padding for @id/content shown when keyboard isn't available -->
+        <View
+            android:id="@+id/content_padding"
+            android:layout_width="match_parent"
+            android:layout_height="370dip"
+            android:visibility="gone" />
+
+        <FrameLayout
+            android:id="@+id/wifi_settings_fragment_layout"
+            android:layout_width="716dip"
+            android:layout_height="370dip">
+            <fragment
+                class="com.android.settings.wifi.WifiSettings"
+                android:id="@+id/wifi_setup_fragment"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+        </FrameLayout>
+        <FrameLayout
+            android:id="@+id/wifi_config_ui"
+            android:layout_width="wrap_content"
+            android:minWidth="406dip"
+            android:layout_height="wrap_content"
+            android:minHeight="160dip"
+            android:layout_marginTop="10dip"
+            android:layout_alignParentLeft="true"
+            android:visibility="gone" />
+        <LinearLayout
+            android:id="@+id/connecting_status_layout"
+            android:layout_width="716dip"
+            android:layout_height="360dip"
+            android:layout_marginTop="10dip"
+            android:visibility="gone">
+            <TextView
+                android:id="@+id/connecting_status"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:lineSpacingExtra="10dip"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="20sp" />
+        </LinearLayout>
+
+    </RelativeLayout>
+
+    <!-- Shown when @id/top_divider is using View instead of ProgressBar.
+         We need this padding to place @id/bottom_divider at the same position
+         regardless of @id/top_divider state.
+
+         Detail:
+         When ProgressBar is used in @id/top_divider, we have 7dip implicit
+         padding inside the ProgressBar object, while we don't have the
+         padding when View is used. As a result, all the objects below it
+         including @id/bottom_divider moves up/down in 7dip between those
+         two states. It is WAI for @id/content, but not for the others.
+
+         Note that we cannot let bottom dividers/buttons align with parent's
+         bottom edge using layout_alignParentBottom="true", since we'd like
+         to control bottom margin between @id/bottom_buttons and the edge
+         depending on software keyboard is shown/hidden.
+
+         We need to enclose @id/bottom_padding with @id/bottom_padding_layout
+         to let @id/bottom_divider use android:layout_below.
+         android:visibility="gone" really let the object go away,
+         causing @id/bottom_divider to lose the target for android:layout_below.
+      -->
+    <FrameLayout
+        android:id="@+id/bottom_padding_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/content">
+        <View
+             android:id="@+id/bottom_padding"
+             android:layout_width="match_parent"
+             android:layout_height="7dip"
+             android:visibility="gone" />
+    </FrameLayout>
+
+    <!-- Divider -->
+    <View
+        android:id="@+id/bottom_divider"
+        android:layout_width="match_parent"
+        android:layout_height="3dip"
+        android:layout_marginBottom="16dip"
+        android:layout_below="@id/bottom_padding_layout"
+        android:layout_alignLeft="@id/content"
+        android:background="@color/divider_color" />  <!-- TODO: fix this -->
+
+    <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">
+
+        <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:layout_alignParentBottom="true">
+
+            <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"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:orientation="horizontal">
+
+                <!-- 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_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>
index 67cb7aa..b6305a0 100644 (file)
@@ -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"
index 0b68d47..6392ee9 100644 (file)
@@ -52,6 +52,7 @@
 
         <TextView
             style="?android:attr/listSeparatorTextViewStyle"
+            android:layout_marginTop="8dip"
             android:text="@string/storage_label" />
 
         <LinearLayout
             <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"
                 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>
         <!-- Prefered activities section -->
         <TextView
             style="?android:attr/listSeparatorTextViewStyle"
+            android:layout_marginTop="8dip"
             android:text="@string/auto_launch_label" />
 
         <RelativeLayout 
                 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"
             android:orientation="vertical">
             <TextView
                 style="?android:attr/listSeparatorTextViewStyle"
+                android:layout_marginTop="8dip"
                 android:text="@string/permissions_label" />
             <TextView
                 android:text="@string/security_settings_desc"
index a6ff904..14cdbcb 100644 (file)
@@ -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"
index 7de2e20..1d6b237 100644 (file)
@@ -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
index d76855c..05ad35d 100755 (executable)
@@ -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"
index 35cf737..3d9937b 100644 (file)
     <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>
     <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>
     <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>
     <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>
     <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>
index f52f396..0b5dbb0 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 926a48e..7d49741 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 6eaa176..d6a5600 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 18b8c1e..43aeae3 100644 (file)
     <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>
     <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>
     <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>
     <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>
index f2e2622..1b87a53 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 6e33c0c..729abe5 100644 (file)
     <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>
     <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>
     <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>
     <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>
index e5016f6..2f9ab07 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 1ff7825..b4d851a 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 7cc2878..7e7241f 100644 (file)
     <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>
     <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>
     <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>
     <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>
index d57b0f3..e612720 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 9d94c62..243c55b 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 6e5a703..61bcdd6 100644 (file)
     <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>
     <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>
     <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>
     <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>
index f9ad372..d425f23 100644 (file)
     <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>
     <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>
     <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>
     <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>
index ed75755..a5deb79 100644 (file)
     <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>
     <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>
     <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>
     <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>
index a62d5a8..19bcd04 100644 (file)
     <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>
     <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>
     <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>
     <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>
index f5e4dbf..a5e5b35 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 1118044..9cdf28f 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 0aee6d8..93cde19 100644 (file)
     <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>
     <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>
     <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>
     <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>
index b7d87f5..13f0888 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 2d7b920..26232cc 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 24bd0f9..2e93062 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 4bbfe4e..ac848a8 100644 (file)
     <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>
     <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>
     <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>
     <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>
index fca5e27..d79bc32 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 4fafdab..aba41f9 100644 (file)
     <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>
     <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>
     <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>
     <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>
index b549dd7..8feea21 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 536069c..c772c12 100644 (file)
     <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>
     <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>
     <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>
     <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>
index f77730e..fab97b1 100644 (file)
     <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 />
     <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>
     <!-- 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>
     <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>
index 5b27a51..d49ebf7 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 08d70e4..57d57ab 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 4eb0a20..9793009 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 68a5149..7bd648b 100644 (file)
     <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>
     <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>
     <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>
     <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>
index d868a94..e3bd144 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 917f9ce..2e407c5 100644 (file)
     <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>
     <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>
     <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>
     <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 (executable)
index 0000000..9bd2336
--- /dev/null
@@ -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-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
new file mode 100755 (executable)
index 0000000..bc9f18d
--- /dev/null
@@ -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>
index 933885d..403c85b 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 13991ba..4562cd3 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 3a7afd7..ad315cf 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 22a5010..5bde614 100644 (file)
     <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>
     <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>
     <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>
     <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>
index a449f22..bb2f4f5 100644 (file)
     <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 phục mặc định"</string>
     <string name="wifi_status" msgid="4824568012414605414">"Trạ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>
     <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>
     <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 (executable)
index 0000000..b6b4591
--- /dev/null
@@ -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>
index a56672f..ae9e55c 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 347f0d8..de0c206 100644 (file)
     <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>
     <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>
     <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>
     <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>
index 6879f9d..631fb19 100644 (file)
@@ -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>
index 80f3d57..03b4a05 100644 (file)
     <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]-->
     <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 -->
     <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 -->
     <!-- 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] -->
     <!-- 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] -->
     <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>
     <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 -->
     <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. -->
index aa36698..e905f39 100644 (file)
 <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>
index ec9c2af..670fcbc 100644 (file)
@@ -76,7 +76,7 @@ public class DateTimeSettingsSetupWizard extends Activity
         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 {
index d8d57e4..dc495ec 100644 (file)
@@ -19,6 +19,7 @@ package com.android.settings;
 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 @@ public class MediaFormat extends Activity {
                 }
                 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();
             }
index ae27d00..a0a568b 100644 (file)
@@ -60,6 +60,8 @@ import android.view.View;
 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 @@ import android.widget.TextView;
  * 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 @@ public class InstalledAppDetails extends Fragment
     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 @@ public class InstalledAppDetails extends Fragment
 
         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 @@ public class InstalledAppDetails extends Fragment
             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 @@ public class InstalledAppDetails extends Fragment
             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 (file)
index 9f49479..0000000
+++ /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");
-        }
-    }
-}
index 1e10c58..6e7af5c 100644 (file)
 
 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;
-
-    // External storage preferences
-    private Preference mSdSize;
-    private Preference mSdAvail;
-    private Preference mSdMountToggle;
-    private Preference mSdFormat;
-    private PreferenceGroup mSdMountPreferenceGroup;
+    private Resources mResources;
 
-    // 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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
 
         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);
-
-        if (Environment.isExternalStorageEmulated()) {
-            getPreferenceScreen().removePreference(mSdMountPreferenceGroup);
-        }
-
-        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));
+        mResources = getResources();
+
+        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();
         }
-        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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
             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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
     @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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
     
     @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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
                     .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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
         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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
     }
 
     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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
                // 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 @@ public class Memory extends SettingsPreferenceFragment implements OnCancelListen
         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 (file)
index 1b42bc1..0000000
+++ /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;
-        }
-    }
-}
index 15951c9..2f9697f 100644 (file)
 
 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;
 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 @@ public class MiscFilesHandler extends ListActivity {
                             //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 class MiscFilesHandler extends ListActivity {
         }
 
         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 MiscFilesHandler extends ListActivity {
         }
     }
 
-    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 @@ public class MiscFilesHandler extends ListActivity {
         }
 
         @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 @@ public class MiscFilesHandler extends ListActivity {
             }
             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;
             }
         }
 
index 7d02301..0c71c12 100644 (file)
@@ -99,6 +99,7 @@ public class PercentageBarChart extends View {
      * 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 (file)
index 0000000..14b5108
--- /dev/null
@@ -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 (file)
index 0000000..83f9ee2
--- /dev/null
@@ -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;
+    }
+}