Start implementation of new app info storage page
Things are mostly in the right places, may need some minor location adjustment on everything and styling for the buttons. Bug: 19511439 Change-Id: If7730285d6ddc36e32cc8bc119885a8e215c0eb5
This commit is contained in:
58
res/layout/app_cache_settings.xml
Normal file
58
res/layout/app_cache_settings.xml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Copyright (C) 2015 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- Clear cache section -->
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/all_details"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||||
|
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/cache_size"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="8dip">
|
||||||
|
<TextView
|
||||||
|
android:text="@string/cache_size_label"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:gravity="center_vertical" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/cache_size_text"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="right"
|
||||||
|
android:maxLines="1" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:id="@+id/clear_cache_button"
|
||||||
|
layout="@layout/single_button_panel" />
|
||||||
|
|
||||||
|
<Space
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="10dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
151
res/layout/app_storage_settings.xml
Normal file
151
res/layout/app_storage_settings.xml
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Copyright (C) 2015 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/all_details"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||||
|
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/category_title"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dashboard_category_title_height"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:textAppearance="@style/TextAppearance.CategoryTitle"
|
||||||
|
android:textAlignment="viewStart"
|
||||||
|
android:text="@string/storage_label"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="0dip">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/total_size_prefix"
|
||||||
|
android:text="@string/total_size_label"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:maxLines="1" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/total_size_text"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="right"
|
||||||
|
android:maxLines="1" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="3dip">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/application_size_prefix"
|
||||||
|
android:text="@string/application_size_label"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:maxLines="1" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/application_size_text"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="right"
|
||||||
|
android:maxLines="1" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="3dip">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/external_code_size_prefix"
|
||||||
|
android:text="@string/external_code_size_label"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:maxLines="1" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/external_code_size_text"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="right"
|
||||||
|
android:maxLines="1" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="3dip">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/data_size_prefix"
|
||||||
|
android:text="@string/data_size_label"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:maxLines="1" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/data_size_text"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="right"
|
||||||
|
android:maxLines="1" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="3dip">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/external_data_size_prefix"
|
||||||
|
android:text="@string/external_data_size_label"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:maxLines="1" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/external_data_size_text"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="right"
|
||||||
|
android:maxLines="1" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<include
|
||||||
|
android:id="@+id/clear_data_button"
|
||||||
|
layout="@layout/single_button_panel" />
|
||||||
|
|
||||||
|
<Space
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="10dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
43
res/layout/single_button_panel.xml
Executable file
43
res/layout/single_button_panel.xml
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2015 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Defines a panel with one button in the same layout as the two button layout.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="bottom"
|
||||||
|
android:paddingTop="4dip"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
<Button
|
||||||
|
android:id="@+id/button"
|
||||||
|
android:layout_width="120dip"
|
||||||
|
android:layout_weight="0.4"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical" />
|
||||||
|
<Space
|
||||||
|
android:layout_width="0dip"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0.2" />
|
||||||
|
<Space
|
||||||
|
android:layout_width="120dip"
|
||||||
|
android:layout_weight="0.4"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"/>
|
||||||
|
</LinearLayout>
|
@@ -1,306 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright (C) 2015 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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<ScrollView
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:scrollbarStyle="@integer/preference_scrollbar_style">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/all_details"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
|
||||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
|
||||||
android:paddingBottom="5dip"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
style="?android:attr/listSeparatorTextViewStyle"
|
|
||||||
android:layout_marginTop="8dip"
|
|
||||||
android:text="@string/storage_label" />
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
|
||||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:baselineAligned="true"
|
|
||||||
android:paddingTop="-1dip">
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/total_size_prefix"
|
|
||||||
android:text="@string/total_size_label"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:paddingTop="6dip" />
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/info_size_dots"
|
|
||||||
android:src="@drawable/dotted_line_480px"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="1px"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:layout_marginStart="1dip"
|
|
||||||
android:layout_marginEnd="1dip"
|
|
||||||
android:layout_marginBottom="4dip"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:contentDescription="@null" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/total_size_text"
|
|
||||||
android:paddingTop="6dip"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:baselineAligned="true"
|
|
||||||
android:paddingTop="-1dip">
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/application_size_prefix"
|
|
||||||
android:text="@string/application_size_label"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:paddingTop="6dip" />
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/info_size_dots"
|
|
||||||
android:src="@drawable/dotted_line_480px"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="1px"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:layout_marginStart="1dip"
|
|
||||||
android:layout_marginEnd="1dip"
|
|
||||||
android:layout_marginBottom="4dip"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:contentDescription="@null" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/application_size_text"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:paddingTop="6dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:baselineAligned="true"
|
|
||||||
android:paddingTop="-1dip">
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/external_code_size_prefix"
|
|
||||||
android:text="@string/external_code_size_label"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:paddingTop="6dip" />
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/info_size_dots"
|
|
||||||
android:src="@drawable/dotted_line_480px"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="1px"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:layout_marginStart="1dip"
|
|
||||||
android:layout_marginEnd="1dip"
|
|
||||||
android:layout_marginBottom="4dip"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:contentDescription="@null" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/external_code_size_text"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:paddingTop="6dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/info_size"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:baselineAligned="true"
|
|
||||||
android:paddingTop="-1dip">
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/data_size_prefix"
|
|
||||||
android:text="@string/data_size_label"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:paddingTop="6dip" />
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/info_size_dots"
|
|
||||||
android:src="@drawable/dotted_line_480px"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="1px"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:layout_marginStart="1dip"
|
|
||||||
android:layout_marginEnd="1dip"
|
|
||||||
android:layout_marginBottom="4dip"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:contentDescription="@null" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/data_size_text"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:paddingTop="6dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:baselineAligned="true"
|
|
||||||
android:paddingTop="-1dip">
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/external_data_size_prefix"
|
|
||||||
android:text="@string/external_data_size_label"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:paddingTop="6dip" />
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/info_size_dots"
|
|
||||||
android:src="@drawable/dotted_line_480px"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="1px"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:layout_marginStart="1dip"
|
|
||||||
android:layout_marginEnd="1dip"
|
|
||||||
android:layout_marginBottom="4dip"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:contentDescription="@null" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/external_data_size_text"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:paddingTop="6dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<!-- Clear data and install location buttons -->
|
|
||||||
<include
|
|
||||||
layout="@layout/two_buttons_panel"
|
|
||||||
android:id="@+id/data_buttons_panel"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Clear cache section -->
|
|
||||||
<RelativeLayout
|
|
||||||
android:id="@+id/cache_panel"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" >
|
|
||||||
<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_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:baselineAligned="true"
|
|
||||||
android:layout_below="@id/cache_header"
|
|
||||||
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
|
||||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
|
||||||
android:paddingTop="-1dip">
|
|
||||||
<TextView
|
|
||||||
android:text="@string/cache_size_label"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:paddingTop="6dip"
|
|
||||||
android:gravity="center_vertical" />
|
|
||||||
<ImageView
|
|
||||||
android:src="@drawable/dotted_line_480px"
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="1px"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:layout_marginStart="1dip"
|
|
||||||
android:layout_marginEnd="1dip"
|
|
||||||
android:layout_marginBottom="4dip"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:contentDescription="@null" />
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/cache_size_text"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:paddingTop="6dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:maxLines="1" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_below="@id/cache_size"
|
|
||||||
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
|
||||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
|
||||||
android:paddingTop="4dip"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
<View
|
|
||||||
android:layout_width="120dip"
|
|
||||||
android:layout_height="0dip"
|
|
||||||
android:layout_weight="0.4" />
|
|
||||||
<View
|
|
||||||
android:layout_width="0dip"
|
|
||||||
android:layout_height="0dip"
|
|
||||||
android:visibility="invisible"
|
|
||||||
android:layout_weight="0.2" />
|
|
||||||
<Button
|
|
||||||
android:id="@+id/clear_cache_button"
|
|
||||||
android:layout_width="120dip"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="0.4"
|
|
||||||
android:text="@string/clear_cache_btn_text" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
</ScrollView>
|
|
@@ -6053,15 +6053,18 @@
|
|||||||
<string name="storage_summary_format"><xliff:g id="size" example="30.00MB">%1$s</xliff:g> used in <xliff:g id="storage_type" example="internal storage">%2$s</xliff:g></string>
|
<string name="storage_summary_format"><xliff:g id="size" example="30.00MB">%1$s</xliff:g> used in <xliff:g id="storage_type" example="internal storage">%2$s</xliff:g></string>
|
||||||
|
|
||||||
<!-- Summary describing internal storage for applications [CHAR LIMIT=25] -->
|
<!-- Summary describing internal storage for applications [CHAR LIMIT=25] -->
|
||||||
<string name="storage_type_internal">internal storage</string>
|
<string name="storage_type_internal">Internal storage</string>
|
||||||
<!-- Summary describing external storage for applications [CHAR LIMIT=25] -->
|
<!-- Summary describing external storage for applications [CHAR LIMIT=25] -->
|
||||||
<string name="storage_type_external">external storage</string>
|
<string name="storage_type_external">External storage</string>
|
||||||
|
|
||||||
<!-- Title for data usage screen when entered from app info [CHAR LIMIT=30] -->
|
<!-- Title for data usage screen when entered from app info [CHAR LIMIT=30] -->
|
||||||
<string name="app_data_usage">App data usage</string>
|
<string name="app_data_usage">App data usage</string>
|
||||||
<!-- Summary for data usage preference [CHAR LIMIT=15] -->
|
<!-- Summary for data usage preference [CHAR LIMIT=15] -->
|
||||||
<string name="data_summary_format"><xliff:g id="size" example="30.00MB">%1$s</xliff:g> used since <xliff:g id="date" example="Jan 12">%2$s</xliff:g></string>
|
<string name="data_summary_format"><xliff:g id="size" example="30.00MB">%1$s</xliff:g> used since <xliff:g id="date" example="Jan 12">%2$s</xliff:g></string>
|
||||||
|
|
||||||
|
<!-- Title of storage preference to control where app is stored -->
|
||||||
|
<string name="storage_used">Storage used</string>
|
||||||
|
|
||||||
<!-- App notification summary with notifications enabled [CHAR LIMIT=40] -->
|
<!-- App notification summary with notifications enabled [CHAR LIMIT=40] -->
|
||||||
<string name="notifications_enabled">On</string>
|
<string name="notifications_enabled">On</string>
|
||||||
<!-- App notification summary with notifications disabled [CHAR LIMIT=40] -->
|
<!-- App notification summary with notifications disabled [CHAR LIMIT=40] -->
|
||||||
|
34
res/xml/app_storage_settings.xml
Normal file
34
res/xml/app_storage_settings.xml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2015 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.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:title="@string/application_info_label">
|
||||||
|
|
||||||
|
<com.android.settings.DropDownPreference
|
||||||
|
android:key="app_location_setting"
|
||||||
|
android:title="@string/storage_used"
|
||||||
|
android:summary="@string/storage_type_internal"
|
||||||
|
android:selectable="true" />
|
||||||
|
|
||||||
|
<com.android.settings.applications.LayoutPreference
|
||||||
|
android:key="storage_settings"
|
||||||
|
android:layout="@layout/app_storage_settings" />
|
||||||
|
|
||||||
|
<com.android.settings.applications.LayoutPreference
|
||||||
|
android:key="cache_settings"
|
||||||
|
android:layout="@layout/app_cache_settings" />
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
@@ -19,7 +19,7 @@
|
|||||||
android:key="battery_saver">
|
android:key="battery_saver">
|
||||||
|
|
||||||
<!-- Turn on automatically -->
|
<!-- Turn on automatically -->
|
||||||
<com.android.settings.notification.DropDownPreference
|
<com.android.settings.DropDownPreference
|
||||||
android:key="turn_on_automatically"
|
android:key="turn_on_automatically"
|
||||||
android:title="@string/battery_saver_turn_on_automatically_title"
|
android:title="@string/battery_saver_turn_on_automatically_title"
|
||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
|
@@ -81,7 +81,7 @@
|
|||||||
android:entryValues="@array/entryvalues_font_size"
|
android:entryValues="@array/entryvalues_font_size"
|
||||||
android:dialogTitle="@string/dialog_title_font_size" />
|
android:dialogTitle="@string/dialog_title_font_size" />
|
||||||
|
|
||||||
<com.android.settings.notification.DropDownPreference
|
<com.android.settings.DropDownPreference
|
||||||
android:key="auto_rotate"
|
android:key="auto_rotate"
|
||||||
android:title="@string/display_auto_rotate_title" />
|
android:title="@string/display_auto_rotate_title" />
|
||||||
|
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:title="@string/application_info_label">
|
android:title="@string/application_info_label">
|
||||||
<com.android.settings.applications.HeaderPreference
|
<com.android.settings.applications.LayoutPreference
|
||||||
android:key="header_view"
|
android:key="header_view"
|
||||||
android:layout="@layout/installed_app_details" />
|
android:layout="@layout/installed_app_details" />
|
||||||
|
|
||||||
|
@@ -105,7 +105,7 @@
|
|||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
|
|
||||||
<!-- When device is locked -->
|
<!-- When device is locked -->
|
||||||
<com.android.settings.notification.DropDownPreference
|
<com.android.settings.DropDownPreference
|
||||||
android:key="lock_screen_notifications"
|
android:key="lock_screen_notifications"
|
||||||
android:title="@string/lock_screen_notifications_title"
|
android:title="@string/lock_screen_notifications_title"
|
||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
|
@@ -60,13 +60,13 @@
|
|||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
|
|
||||||
<!-- Dock speaker plays -->
|
<!-- Dock speaker plays -->
|
||||||
<com.android.settings.notification.DropDownPreference
|
<com.android.settings.DropDownPreference
|
||||||
android:key="dock_audio_media"
|
android:key="dock_audio_media"
|
||||||
android:title="@string/dock_audio_media_title"
|
android:title="@string/dock_audio_media_title"
|
||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
|
|
||||||
<!-- Emergency tone -->
|
<!-- Emergency tone -->
|
||||||
<com.android.settings.notification.DropDownPreference
|
<com.android.settings.DropDownPreference
|
||||||
android:key="emergency_tone"
|
android:key="emergency_tone"
|
||||||
android:title="@string/emergency_tone_title"
|
android:title="@string/emergency_tone_title"
|
||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
android:title="@string/zen_mode_settings_title" >
|
android:title="@string/zen_mode_settings_title" >
|
||||||
|
|
||||||
<!-- When calls and notifications arrive -->
|
<!-- When calls and notifications arrive -->
|
||||||
<com.android.settings.notification.DropDownPreference
|
<com.android.settings.DropDownPreference
|
||||||
android:key="zen_mode"
|
android:key="zen_mode"
|
||||||
android:title="@string/zen_mode_option_title"
|
android:title="@string/zen_mode_option_title"
|
||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
android:switchTextOff=""
|
android:switchTextOff=""
|
||||||
android:switchTextOn="" />
|
android:switchTextOn="" />
|
||||||
|
|
||||||
<com.android.settings.notification.DropDownPreference
|
<com.android.settings.DropDownPreference
|
||||||
android:key="starred"
|
android:key="starred"
|
||||||
android:title="@string/zen_mode_from"
|
android:title="@string/zen_mode_from"
|
||||||
android:persistent="false" />
|
android:persistent="false" />
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
<!-- Start time/End time added and removed here! :-) -->
|
<!-- Start time/End time added and removed here! :-) -->
|
||||||
|
|
||||||
<!-- Interruptions allowed -->
|
<!-- Interruptions allowed -->
|
||||||
<com.android.settings.notification.DropDownPreference
|
<com.android.settings.DropDownPreference
|
||||||
android:key="downtime_mode"
|
android:key="downtime_mode"
|
||||||
android:title="@string/zen_mode_downtime_mode_title"
|
android:title="@string/zen_mode_downtime_mode_title"
|
||||||
android:order="100"
|
android:order="100"
|
||||||
|
@@ -17,8 +17,7 @@
|
|||||||
package com.android.settings;
|
package com.android.settings;
|
||||||
|
|
||||||
import com.android.internal.view.RotationPolicy;
|
import com.android.internal.view.RotationPolicy;
|
||||||
import com.android.settings.notification.DropDownPreference;
|
import com.android.settings.DropDownPreference.Callback;
|
||||||
import com.android.settings.notification.DropDownPreference.Callback;
|
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Indexable;
|
import com.android.settings.search.Indexable;
|
||||||
|
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.settings.notification;
|
package com.android.settings;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
@@ -32,10 +32,8 @@ import android.os.Message;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.text.format.Formatter;
|
import android.text.format.Formatter;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@@ -43,8 +41,10 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.applications.ApplicationsState.AppEntry;
|
import com.android.settings.applications.ApplicationsState.AppEntry;
|
||||||
import com.android.settings.applications.ApplicationsState.Callbacks;
|
import com.android.settings.applications.ApplicationsState.Callbacks;
|
||||||
|
import com.android.settings.DropDownPreference;
|
||||||
|
|
||||||
public class AppStorageSettings extends AppInfoWithHeader implements OnClickListener, Callbacks {
|
public class AppStorageSettings extends AppInfoWithHeader
|
||||||
|
implements OnClickListener, Callbacks, DropDownPreference.Callback {
|
||||||
private static final String TAG = AppStorageSettings.class.getSimpleName();
|
private static final String TAG = AppStorageSettings.class.getSimpleName();
|
||||||
|
|
||||||
//internal constants used in Handler
|
//internal constants used in Handler
|
||||||
@@ -65,6 +65,10 @@ public class AppStorageSettings extends AppInfoWithHeader implements OnClickList
|
|||||||
private static final int DLG_CANNOT_CLEAR_DATA = DLG_BASE + 2;
|
private static final int DLG_CANNOT_CLEAR_DATA = DLG_BASE + 2;
|
||||||
private static final int DLG_MOVE_FAILED = DLG_BASE + 3;
|
private static final int DLG_MOVE_FAILED = DLG_BASE + 3;
|
||||||
|
|
||||||
|
private static final String KEY_MOVE_PREFERENCE = "app_location_setting";
|
||||||
|
private static final String KEY_STORAGE_SETTINGS = "storage_settings";
|
||||||
|
private static final String KEY_CACHE_SETTINGS = "cache_settings";
|
||||||
|
|
||||||
private CanBeOnSdCardChecker mCanBeOnSdCardChecker;
|
private CanBeOnSdCardChecker mCanBeOnSdCardChecker;
|
||||||
private TextView mTotalSize;
|
private TextView mTotalSize;
|
||||||
private TextView mAppSize;
|
private TextView mAppSize;
|
||||||
@@ -76,7 +80,8 @@ public class AppStorageSettings extends AppInfoWithHeader implements OnClickList
|
|||||||
private TextView mCacheSize;
|
private TextView mCacheSize;
|
||||||
private Button mClearDataButton;
|
private Button mClearDataButton;
|
||||||
private Button mClearCacheButton;
|
private Button mClearCacheButton;
|
||||||
private Button mMoveAppButton;
|
|
||||||
|
private DropDownPreference mMoveDropDown;
|
||||||
private boolean mMoveInProgress = false;
|
private boolean mMoveInProgress = false;
|
||||||
|
|
||||||
private boolean mCanClearData = true;
|
private boolean mCanClearData = true;
|
||||||
@@ -102,17 +107,14 @@ public class AppStorageSettings extends AppInfoWithHeader implements OnClickList
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
mCanBeOnSdCardChecker = new CanBeOnSdCardChecker();
|
mCanBeOnSdCardChecker = new CanBeOnSdCardChecker();
|
||||||
|
addPreferencesFromResource(R.xml.app_storage_settings);
|
||||||
|
setupViews();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void setupViews() {
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
||||||
Bundle savedInstanceState) {
|
|
||||||
final View view = inflater.inflate(R.layout.storage_settings, container, false);
|
|
||||||
|
|
||||||
final ViewGroup allDetails = (ViewGroup)view.findViewById(R.id.all_details);
|
|
||||||
Utils.forceCustomPadding(allDetails, true /* additive padding */);
|
|
||||||
mComputingStr = getActivity().getText(R.string.computing_size);
|
mComputingStr = getActivity().getText(R.string.computing_size);
|
||||||
mInvalidSizeStr = getActivity().getText(R.string.invalid_size_value);
|
mInvalidSizeStr = getActivity().getText(R.string.invalid_size_value);
|
||||||
|
LayoutPreference view = (LayoutPreference) findPreference(KEY_STORAGE_SETTINGS);
|
||||||
|
|
||||||
// Set default values on sizes
|
// Set default values on sizes
|
||||||
mTotalSize = (TextView) view.findViewById(R.id.total_size_text);
|
mTotalSize = (TextView) view.findViewById(R.id.total_size_text);
|
||||||
@@ -125,17 +127,18 @@ public class AppStorageSettings extends AppInfoWithHeader implements OnClickList
|
|||||||
((View) mExternalCodeSize.getParent()).setVisibility(View.GONE);
|
((View) mExternalCodeSize.getParent()).setVisibility(View.GONE);
|
||||||
((View) mExternalDataSize.getParent()).setVisibility(View.GONE);
|
((View) mExternalDataSize.getParent()).setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
mClearDataButton = (Button) view.findViewById(R.id.clear_data_button)
|
||||||
|
.findViewById(R.id.button);
|
||||||
|
|
||||||
// Initialize clear data and move install location buttons
|
mMoveDropDown = (DropDownPreference) findPreference(KEY_MOVE_PREFERENCE);
|
||||||
View data_buttons_panel = view.findViewById(R.id.data_buttons_panel);
|
mMoveDropDown.setCallback(this);
|
||||||
mMoveAppButton = (Button) data_buttons_panel.findViewById(R.id.left_button);
|
|
||||||
|
|
||||||
|
view = (LayoutPreference) findPreference(KEY_CACHE_SETTINGS);
|
||||||
// Cache section
|
// Cache section
|
||||||
mCacheSize = (TextView) view.findViewById(R.id.cache_size_text);
|
mCacheSize = (TextView) view.findViewById(R.id.cache_size_text);
|
||||||
mClearCacheButton = (Button)view.findViewById(R.id.clear_cache_button);
|
mClearCacheButton = (Button) view.findViewById(R.id.clear_cache_button)
|
||||||
mClearDataButton = (Button) data_buttons_panel.findViewById(R.id.right_button);
|
.findViewById(R.id.button);
|
||||||
|
mClearCacheButton.setText(R.string.clear_cache_btn_text);
|
||||||
return view;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -157,16 +160,24 @@ public class AppStorageSettings extends AppInfoWithHeader implements OnClickList
|
|||||||
} else {
|
} else {
|
||||||
showDialogInner(DLG_CLEAR_DATA, 0);
|
showDialogInner(DLG_CLEAR_DATA, 0);
|
||||||
}
|
}
|
||||||
} else if (v == mMoveAppButton) {
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onItemSelected(int pos, Object value) {
|
||||||
|
boolean selectedExternal = (Boolean) value;
|
||||||
|
boolean isExternal = (mAppEntry.info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0;
|
||||||
|
if (selectedExternal ^ isExternal) {
|
||||||
if (mPackageMoveObserver == null) {
|
if (mPackageMoveObserver == null) {
|
||||||
mPackageMoveObserver = new PackageMoveObserver();
|
mPackageMoveObserver = new PackageMoveObserver();
|
||||||
}
|
}
|
||||||
int moveFlags = (mAppEntry.info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0 ?
|
int moveFlags = selectedExternal ? PackageManager.MOVE_EXTERNAL_MEDIA
|
||||||
PackageManager.MOVE_INTERNAL : PackageManager.MOVE_EXTERNAL_MEDIA;
|
: PackageManager.MOVE_INTERNAL;
|
||||||
mMoveInProgress = true;
|
mMoveInProgress = true;
|
||||||
refreshButtons();
|
refreshButtons();
|
||||||
mPm.movePackage(mAppEntry.info.packageName, mPackageMoveObserver, moveFlags);
|
mPm.movePackage(mAppEntry.info.packageName, mPackageMoveObserver, moveFlags);
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getSizeStr(long size) {
|
private String getSizeStr(long size) {
|
||||||
@@ -248,16 +259,26 @@ public class AppStorageSettings extends AppInfoWithHeader implements OnClickList
|
|||||||
retrieveAppEntry();
|
retrieveAppEntry();
|
||||||
refreshButtons();
|
refreshButtons();
|
||||||
refreshSizeInfo();
|
refreshSizeInfo();
|
||||||
|
boolean isExternal = (mAppEntry.info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0;
|
||||||
|
mMoveDropDown.setSelectedItem(isExternal ? 1 : 0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshButtons() {
|
private void refreshButtons() {
|
||||||
if (!mMoveInProgress) {
|
if (!mMoveInProgress) {
|
||||||
initMoveButton();
|
initMoveDropDown();
|
||||||
initDataButtons();
|
initDataButtons();
|
||||||
} else {
|
} else {
|
||||||
mMoveAppButton.setText(R.string.moving);
|
mMoveDropDown.setSummary(R.string.moving);
|
||||||
mMoveAppButton.setEnabled(false);
|
mMoveDropDown.setSelectable(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateMoveEnabled(boolean enabled) {
|
||||||
|
mMoveDropDown.clearItems();
|
||||||
|
mMoveDropDown.addItem(R.string.storage_type_internal, false);
|
||||||
|
if (enabled) {
|
||||||
|
mMoveDropDown.addItem(R.string.storage_type_external, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -287,30 +308,22 @@ public class AppStorageSettings extends AppInfoWithHeader implements OnClickList
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initMoveButton() {
|
private void initMoveDropDown() {
|
||||||
if (Environment.isExternalStorageEmulated()) {
|
if (Environment.isExternalStorageEmulated()) {
|
||||||
mMoveAppButton.setVisibility(View.INVISIBLE);
|
updateMoveEnabled(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean dataOnly = (mPackageInfo == null) && (mAppEntry != null);
|
boolean dataOnly = (mPackageInfo == null) && (mAppEntry != null);
|
||||||
boolean moveDisable = true;
|
boolean moveDisable = true;
|
||||||
if (dataOnly) {
|
if ((mAppEntry.info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
|
||||||
mMoveAppButton.setText(R.string.move_app);
|
|
||||||
} else if ((mAppEntry.info.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0) {
|
|
||||||
mMoveAppButton.setText(R.string.move_app_to_internal);
|
|
||||||
// Always let apps move to internal storage from sdcard.
|
// Always let apps move to internal storage from sdcard.
|
||||||
moveDisable = false;
|
moveDisable = false;
|
||||||
} else {
|
} else {
|
||||||
mMoveAppButton.setText(R.string.move_app_to_sdcard);
|
|
||||||
mCanBeOnSdCardChecker.init();
|
mCanBeOnSdCardChecker.init();
|
||||||
moveDisable = !mCanBeOnSdCardChecker.check(mAppEntry.info);
|
moveDisable = !mCanBeOnSdCardChecker.check(mAppEntry.info);
|
||||||
}
|
}
|
||||||
if (moveDisable || mAppControlRestricted) {
|
updateMoveEnabled(!moveDisable);
|
||||||
mMoveAppButton.setEnabled(false);
|
mMoveDropDown.setSelectable(!mAppControlRestricted);
|
||||||
} else {
|
|
||||||
mMoveAppButton.setOnClickListener(this);
|
|
||||||
mMoveAppButton.setEnabled(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -109,7 +109,7 @@ public class InstalledAppDetails extends AppInfoBase
|
|||||||
|
|
||||||
private boolean mInitialized;
|
private boolean mInitialized;
|
||||||
private boolean mShowUninstalled;
|
private boolean mShowUninstalled;
|
||||||
private HeaderPreference mHeader;
|
private LayoutPreference mHeader;
|
||||||
private Button mUninstallButton;
|
private Button mUninstallButton;
|
||||||
private boolean mUpdatedSysApp = false;
|
private boolean mUpdatedSysApp = false;
|
||||||
private TextView mAppVersion;
|
private TextView mAppVersion;
|
||||||
@@ -259,7 +259,7 @@ public class InstalledAppDetails extends AppInfoBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleHeader() {
|
private void handleHeader() {
|
||||||
mHeader = (HeaderPreference) findPreference(KEY_HEADER);
|
mHeader = (LayoutPreference) findPreference(KEY_HEADER);
|
||||||
|
|
||||||
// Get Control button panel
|
// Get Control button panel
|
||||||
View btnPanel = mHeader.findViewById(R.id.control_buttons_panel);
|
View btnPanel = mHeader.findViewById(R.id.control_buttons_panel);
|
||||||
|
@@ -27,18 +27,18 @@ import android.view.ViewGroup;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
|
|
||||||
public class HeaderPreference extends Preference {
|
public class LayoutPreference extends Preference {
|
||||||
|
|
||||||
private View mRootView;
|
private View mRootView;
|
||||||
|
|
||||||
public HeaderPreference(Context context, AttributeSet attrs) {
|
public LayoutPreference(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
final TypedArray a = context.obtainStyledAttributes(
|
final TypedArray a = context.obtainStyledAttributes(
|
||||||
attrs, com.android.internal.R.styleable.Preference, 0, 0);
|
attrs, com.android.internal.R.styleable.Preference, 0, 0);
|
||||||
int layoutResource = a.getResourceId(com.android.internal.R.styleable.Preference_layout,
|
int layoutResource = a.getResourceId(com.android.internal.R.styleable.Preference_layout,
|
||||||
0);
|
0);
|
||||||
if (layoutResource == 0) {
|
if (layoutResource == 0) {
|
||||||
throw new IllegalArgumentException("HeaderPreference requires a layout to be defined");
|
throw new IllegalArgumentException("LayoutPreference requires a layout to be defined");
|
||||||
}
|
}
|
||||||
// Need to create view now so that findViewById can be called immediately.
|
// Need to create view now so that findViewById can be called immediately.
|
||||||
final View view = LayoutInflater.from(getContext())
|
final View view = LayoutInflater.from(getContext())
|
@@ -49,6 +49,7 @@ import android.provider.Settings;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
|
import com.android.settings.DropDownPreference;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
|
@@ -26,6 +26,7 @@ import android.preference.Preference.OnPreferenceChangeListener;
|
|||||||
import android.provider.Settings.Global;
|
import android.provider.Settings.Global;
|
||||||
import android.provider.Settings.System;
|
import android.provider.Settings.System;
|
||||||
|
|
||||||
|
import com.android.settings.DropDownPreference;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
|
|
||||||
/** Helper to manage a two-state or dropdown preference bound to a global or system setting. */
|
/** Helper to manage a two-state or dropdown preference bound to a global or system setting. */
|
||||||
|
@@ -50,6 +50,7 @@ import android.util.SparseArray;
|
|||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
import android.widget.TimePicker;
|
import android.widget.TimePicker;
|
||||||
|
|
||||||
|
import com.android.settings.DropDownPreference;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
Reference in New Issue
Block a user