Jostle the elements around in app storage settings.

This much more closely resembles the later mocks for
this page. The spacing, fonts, and colors are still off
and will be corrected once the final mocks land.

Bug: 34766830
Test: Manual
Change-Id: Ifbb8511d624cd06422025beee943fdead3faf53b
Merged-In: Id131e3596a0d08cb43c924a9f5cd9eb25329d7de
diff --git a/res/xml/app_storage_settings.xml b/res/xml/app_storage_settings.xml
index 6bd8ae3..1c71bfa 100644
--- a/res/xml/app_storage_settings.xml
+++ b/res/xml/app_storage_settings.xml
@@ -15,8 +15,14 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+                  xmlns:settings="http://schemas.android.com/apk/res-auto"
                   android:title="@string/application_info_label">
 
+    <com.android.settings.applications.LayoutPreference
+        android:key="header_view"
+        android:layout="@layout/app_action_buttons"
+        android:selectable="false" />
+
     <com.android.settings.applications.SpacePreference
         android:key="storage_space"
         android:layout_height="8dp" />
@@ -36,13 +42,9 @@
     <PreferenceCategory
         android:key="storage_category"
         android:layout="@layout/tall_preference_category"
-        android:title="@string/storage_label">
-
-        <Preference
-            android:key="total_size"
-            android:title="@string/total_size_label"
-            android:selectable="false"
-            android:layout="@layout/horizontal_preference" />
+        android:title="@string/app_info_storage_title"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false">
 
         <Preference
             android:key="app_size"
@@ -56,32 +58,28 @@
             android:selectable="false"
             android:layout="@layout/horizontal_preference" />
 
-        <com.android.settings.applications.LayoutPreference
-            android:key="clear_data_button"
+        <Preference
+            android:key="cache_size"
+            android:title="@string/cache_size_label"
             android:selectable="false"
-            android:layout="@layout/single_button_panel" />
+            android:layout="@layout/horizontal_preference" />
+
+        <Preference
+            android:key="total_size"
+            android:title="@string/total_size_label"
+            android:selectable="false"
+            android:layout="@layout/horizontal_preference" />
+
+        <com.android.settings.applications.SpacePreference
+            android:layout_height="8dp" />
+
     </PreferenceCategory>
 
-    <com.android.settings.applications.SpacePreference
-        android:layout_height="8dp" />
-
-    <Preference
-        android:key="cache_size"
-        android:title="@string/cache_size_label"
-        android:selectable="false"
-        android:layout="@layout/horizontal_preference" />
-
-    <com.android.settings.applications.LayoutPreference
-        android:key="clear_cache_button"
-        android:selectable="false"
-        android:layout="@layout/single_button_panel" />
-
-    <com.android.settings.applications.SpacePreference
-        android:layout_height="8dp" />
-
     <PreferenceCategory
         android:key="uri_category"
-        android:layout="@layout/headerless_preference_category" >
+        android:layout="@layout/headerless_preference_category"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false">
         <com.android.settings.applications.LayoutPreference
             android:key="clear_uri_button"
             android:layout="@layout/single_button_panel"
diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java
index 8d41558..0676f56 100644
--- a/src/com/android/settings/applications/AppStorageSettings.java
+++ b/src/com/android/settings/applications/AppStorageSettings.java
@@ -90,13 +90,10 @@
 
     private static final String KEY_TOTAL_SIZE = "total_size";
     private static final String KEY_APP_SIZE = "app_size";
-    private static final String KEY_EXTERNAL_CODE_SIZE = "external_code_size";
     private static final String KEY_DATA_SIZE = "data_size";
-    private static final String KEY_EXTERNAL_DATA_SIZE = "external_data_size";
     private static final String KEY_CACHE_SIZE = "cache_size";
 
-    private static final String KEY_CLEAR_DATA = "clear_data_button";
-    private static final String KEY_CLEAR_CACHE = "clear_cache_button";
+    private static final String KEY_HEADER_BUTTONS = "header_view";
 
     private static final String KEY_URI_CATEGORY = "uri_category";
     private static final String KEY_CLEAR_URI = "clear_uri_button";
@@ -119,16 +116,11 @@
     private boolean mCanClearData = true;
     private boolean mCacheCleared;
 
-    private AppStorageStats mLastResult;
     private AppStorageSizesController mSizeController;
 
     private ClearCacheObserver mClearCacheObserver;
     private ClearUserDataObserver mClearDataObserver;
 
-    // Resource strings
-    private CharSequence mInvalidSizeStr;
-    private CharSequence mComputingStr;
-
     private VolumeInfo[] mCandidates;
     private AlertDialog.Builder mDialogBuilder;
     private ApplicationInfo mInfo;
@@ -158,9 +150,6 @@
     }
 
     private void setupViews() {
-        mComputingStr = getActivity().getText(R.string.computing_size);
-        mInvalidSizeStr = getActivity().getText(R.string.invalid_size_value);
-
         // Set default values on sizes
         mSizeController = new AppStorageSizesController.Builder()
                 .setTotalSizePreference(findPreference(KEY_TOTAL_SIZE))
@@ -171,8 +160,8 @@
                 .setErrorString(R.string.invalid_size_value)
                 .build();
 
-        mClearDataButton = (Button) ((LayoutPreference) findPreference(KEY_CLEAR_DATA))
-                .findViewById(R.id.button);
+        mClearDataButton = (Button) ((LayoutPreference) findPreference(KEY_HEADER_BUTTONS))
+                .findViewById(R.id.left_button);
 
         mStorageUsed = findPreference(KEY_STORAGE_USED);
         mChangeStorageButton = (Button) ((LayoutPreference) findPreference(KEY_CHANGE_STORAGE))
@@ -182,8 +171,8 @@
 
         // Cache section
         mCacheSize = findPreference(KEY_CACHE_SIZE);
-        mClearCacheButton = (Button) ((LayoutPreference) findPreference(KEY_CLEAR_CACHE))
-                .findViewById(R.id.button);
+        mClearCacheButton = (Button) ((LayoutPreference) findPreference(KEY_HEADER_BUTTONS))
+                .findViewById(R.id.right_button);
         mClearCacheButton.setText(R.string.clear_cache_btn_text);
 
         // URI permissions section
@@ -267,7 +256,7 @@
         if (mAppEntry == null) {
             return false;
         }
-        updateUiWithSize(mLastResult);
+        updateUiWithSize(mSizeController.getLastResult());
         refreshGrantedUriPermissions();
 
         final VolumeInfo currentVol = getActivity().getPackageManager()
diff --git a/src/com/android/settings/applications/AppStorageSizesController.java b/src/com/android/settings/applications/AppStorageSizesController.java
index 94935bd..23a3eb2 100644
--- a/src/com/android/settings/applications/AppStorageSizesController.java
+++ b/src/com/android/settings/applications/AppStorageSizesController.java
@@ -110,6 +110,13 @@
         mCachedCleared = isCleared;
     }
 
+    /**
+     * Returns the last result calculated, if it exists. If it does not, returns null.
+     */
+    public StorageStatsSource.AppStorageStats getLastResult() {
+        return mLastResult;
+    }
+
     private String getSizeStr(Context context, long size) {
         return Formatter.formatFileSize(context, size);
     }