Shift storage wizards over to Glif theme.

This matches new UX best-practices, and allows us to remove some
special one-off hacks.

Test: visual
Bug: 70894690
Change-Id: I2705c731277cae7f19bce78a0a2a023ad0777b83
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4beaf8f..7891277 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1860,35 +1860,43 @@
 
         <!-- Exported for SystemUI to launch into -->
         <activity android:name=".deviceinfo.StorageWizardInit"
-                android:theme="@style/SuwThemeMaterial.Light"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="true"
                 android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
         <activity android:name=".deviceinfo.StorageWizardFormatConfirm"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="false" />
         <activity android:name=".deviceinfo.StorageWizardFormatProgress"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="false" />
         <activity android:name=".deviceinfo.StorageWizardMigrate"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="false" />
         <activity android:name=".deviceinfo.StorageWizardMigrateConfirm"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="false" />
         <activity android:name=".deviceinfo.StorageWizardMigrateProgress"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="true"
                 android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
         <activity android:name=".deviceinfo.StorageWizardReady"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="true"
                 android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
 
         <activity android:name=".deviceinfo.StorageWizardMoveConfirm"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="false" />
         <activity android:name=".deviceinfo.StorageWizardMoveProgress"
+                android:theme="@style/SetupWizardStorageStyle"
                 android:taskAffinity="com.android.settings.storage_wizard"
                 android:exported="true"
                 android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
diff --git a/res/layout/storage_wizard_footer.xml b/res/layout/storage_wizard_footer.xml
new file mode 100644
index 0000000..f8384dc
--- /dev/null
+++ b/res/layout/storage_wizard_footer.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (C) 2017 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"
+    style="@style/SuwGlifButtonBar"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <Space
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
+
+    <Button
+        android:id="@+id/storage_next_button"
+        style="@style/SuwGlifButton.Primary"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/suw_next_button_label" />
+
+</LinearLayout>
diff --git a/res/layout/storage_wizard_generic.xml b/res/layout/storage_wizard_generic.xml
index 3050c67..b6aab28 100644
--- a/res/layout/storage_wizard_generic.xml
+++ b/res/layout/storage_wizard_generic.xml
@@ -14,13 +14,13 @@
      limitations under the License.
 -->
 
-<com.android.setupwizardlib.SetupWizardLayout
+<com.android.setupwizardlib.GlifLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    app:suwBackgroundTile="@drawable/bg_tile_teal">
+    app:suwFooter="@layout/storage_wizard_footer">
 
     <LinearLayout
         style="@style/SuwContentFrame"
@@ -49,4 +49,4 @@
 
     </LinearLayout>
 
-</com.android.setupwizardlib.SetupWizardLayout>
+</com.android.setupwizardlib.GlifLayout>
diff --git a/res/layout/storage_wizard_init.xml b/res/layout/storage_wizard_init.xml
index 638bfe8..5fc298e 100644
--- a/res/layout/storage_wizard_init.xml
+++ b/res/layout/storage_wizard_init.xml
@@ -14,13 +14,13 @@
      limitations under the License.
 -->
 
-<com.android.setupwizardlib.SetupWizardLayout
+<com.android.setupwizardlib.GlifLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    app:suwBackgroundTile="@drawable/bg_tile_teal">
+    app:suwFooter="@layout/storage_wizard_footer">
 
     <LinearLayout
         style="@style/SuwContentFrame"
@@ -66,4 +66,4 @@
 
     </LinearLayout>
 
-</com.android.setupwizardlib.SetupWizardLayout>
+</com.android.setupwizardlib.GlifLayout>
diff --git a/res/layout/storage_wizard_migrate.xml b/res/layout/storage_wizard_migrate.xml
index 6d041fa..a1c1168 100644
--- a/res/layout/storage_wizard_migrate.xml
+++ b/res/layout/storage_wizard_migrate.xml
@@ -14,13 +14,13 @@
      limitations under the License.
 -->
 
-<com.android.setupwizardlib.SetupWizardLayout
+<com.android.setupwizardlib.GlifLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    app:suwBackgroundTile="@drawable/bg_tile_teal">
+    app:suwFooter="@layout/storage_wizard_footer">
 
     <LinearLayout
         style="@style/SuwContentFrame"
@@ -58,4 +58,4 @@
 
     </LinearLayout>
 
-</com.android.setupwizardlib.SetupWizardLayout>
+</com.android.setupwizardlib.GlifLayout>
diff --git a/res/layout/storage_wizard_progress.xml b/res/layout/storage_wizard_progress.xml
index e3b37f8..dbeaf66 100644
--- a/res/layout/storage_wizard_progress.xml
+++ b/res/layout/storage_wizard_progress.xml
@@ -14,13 +14,13 @@
      limitations under the License.
 -->
 
-<com.android.setupwizardlib.SetupWizardLayout
+<com.android.setupwizardlib.GlifLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    app:suwBackgroundTile="@drawable/bg_tile_teal">
+    app:suwFooter="@layout/storage_wizard_footer">
 
     <LinearLayout
         style="@style/SuwContentFrame"
@@ -54,4 +54,4 @@
 
     </LinearLayout>
 
-</com.android.setupwizardlib.SetupWizardLayout>
+</com.android.setupwizardlib.GlifLayout>
diff --git a/res/layout/storage_wizard_ready.xml b/res/layout/storage_wizard_ready.xml
index d53038d..043b89f 100644
--- a/res/layout/storage_wizard_ready.xml
+++ b/res/layout/storage_wizard_ready.xml
@@ -14,13 +14,13 @@
      limitations under the License.
 -->
 
-<com.android.setupwizardlib.SetupWizardLayout
+<com.android.setupwizardlib.GlifLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    app:suwBackgroundTile="@drawable/bg_tile_teal">
+    app:suwFooter="@layout/storage_wizard_footer">
 
     <LinearLayout
         style="@style/SuwContentFrame"
@@ -39,4 +39,4 @@
 
     </LinearLayout>
 
-</com.android.setupwizardlib.SetupWizardLayout>
+</com.android.setupwizardlib.GlifLayout>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c68eb72..a07bade 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -362,8 +362,7 @@
         <item name="android:textColor">?android:attr/textColorPrimary</item>
     </style>
 
-    <style name="SetupWizardStorageStyle" parent="@style/SuwThemeMaterial.Light">
-        <item name="android:colorAccent">#ff009688</item>
+    <style name="SetupWizardStorageStyle" parent="@style/SuwThemeGlif.Light">
     </style>
 
     <style name="PreviewPagerPageIndicator">
diff --git a/src/com/android/settings/deviceinfo/StorageWizardBase.java b/src/com/android/settings/deviceinfo/StorageWizardBase.java
index c2ea2d2..5b48666 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardBase.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardBase.java
@@ -20,7 +20,9 @@
 
 import android.annotation.LayoutRes;
 import android.app.Activity;
-import android.graphics.Color;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.SystemClock;
 import android.os.storage.DiskInfo;
@@ -30,16 +32,12 @@
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import com.android.settings.R;
-import com.android.setupwizardlib.SetupWizardLayout;
-import com.android.setupwizardlib.view.Illustration;
+import com.android.setupwizardlib.GlifLayout;
 
 import java.text.NumberFormat;
 import java.util.List;
@@ -51,8 +49,7 @@
     protected VolumeInfo mVolume;
     protected DiskInfo mDisk;
 
-    private View mCustomNav;
-    private Button mCustomNext;
+    private Button mNext;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -72,8 +69,6 @@
             mDisk = mVolume.getDisk();
         }
 
-        setTheme(R.style.SetupWizardStorageStyle);
-
         if (mDisk != null) {
             mStorage.registerListener(mStorageListener);
         }
@@ -83,53 +78,13 @@
     public void setContentView(@LayoutRes int layoutResID) {
         super.setContentView(layoutResID);
 
-        // Our wizard is a unique flower, so it has custom buttons
-        final ViewGroup navParent = (ViewGroup) findViewById(R.id.suw_layout_navigation_bar)
-                .getParent();
-        mCustomNav = getLayoutInflater().inflate(R.layout.storage_wizard_navigation,
-                navParent, false);
-
-        mCustomNext = (Button) mCustomNav.findViewById(R.id.suw_navbar_next);
-        mCustomNext.setOnClickListener(new View.OnClickListener() {
+        mNext = (Button) findViewById(R.id.storage_next_button);
+        mNext.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 onNavigateNext();
             }
         });
-
-        // Swap our custom navigation bar into place
-        for (int i = 0; i < navParent.getChildCount(); i++) {
-            if (navParent.getChildAt(i).getId() == R.id.suw_layout_navigation_bar) {
-                navParent.removeViewAt(i);
-                navParent.addView(mCustomNav, i);
-                break;
-            }
-        }
-    }
-
-    @Override
-    protected void onPostCreate(Bundle savedInstanceState) {
-        super.onPostCreate(savedInstanceState);
-
-        final Window window = getWindow();
-        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS |
-                WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |
-                WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
-        window.setStatusBarColor(Color.TRANSPARENT);
-
-        mCustomNav.setSystemUiVisibility(
-                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
-
-        final View scrollView = findViewById(R.id.suw_bottom_scroll_view);
-        scrollView.setVerticalFadingEdgeEnabled(true);
-        scrollView.setFadingEdgeLength(scrollView.getVerticalFadingEdgeLength() * 2);
-
-        if (findViewById(R.id.suw_layout_decor) instanceof Illustration) {
-            // Our header illustration already have padding baked in
-            final View title = findViewById(R.id.suw_layout_title);
-            title.setPadding(title.getPaddingLeft(), 0, title.getPaddingRight(),
-                    title.getPaddingBottom());
-        }
     }
 
     @Override
@@ -139,11 +94,11 @@
     }
 
     protected Button getNextButton() {
-        return mCustomNext;
+        return mNext;
     }
 
-    protected SetupWizardLayout getSetupWizardLayout() {
-        return (SetupWizardLayout) findViewById(R.id.setup_wizard_layout);
+    protected GlifLayout getGlifLayout() {
+        return (GlifLayout) findViewById(R.id.setup_wizard_layout);
     }
 
     protected ProgressBar getProgressBar() {
@@ -158,7 +113,7 @@
 
     protected void setHeaderText(int resId, String... args) {
         final CharSequence headerText = TextUtils.expandTemplate(getText(resId), args);
-        getSetupWizardLayout().setHeaderText(headerText);
+        getGlifLayout().setHeaderText(headerText);
         setTitle(headerText);
     }
 
@@ -178,27 +133,16 @@
     protected static final int ILLUSTRATION_PORTABLE = 2;
 
     protected void setIllustrationType(int type) {
-        switch (type) {
-            case ILLUSTRATION_SETUP:
-                getSetupWizardLayout().setIllustration(
-                        R.drawable.bg_setup_header,
-                        R.drawable.bg_header_horizontal_tile);
-                break;
-            case ILLUSTRATION_INTERNAL:
-                getSetupWizardLayout().setIllustration(
-                        R.drawable.bg_internal_storage_header,
-                        R.drawable.bg_header_horizontal_tile);
-                break;
-            case ILLUSTRATION_PORTABLE:
-                getSetupWizardLayout().setIllustration(
-                        R.drawable.bg_portable_storage_header,
-                        R.drawable.bg_header_horizontal_tile);
-                break;
-        }
+        // TODO: map type to updated icons once provided by UX
+        TypedArray array = obtainStyledAttributes(new int[] {android.R.attr.colorAccent});
+        Drawable icon = getDrawable(com.android.internal.R.drawable.ic_sd_card_48dp).mutate();
+        icon.setTint(array.getColor(0, 0));
+        array.recycle();
+        getGlifLayout().setIcon(icon);
     }
 
     protected void setKeepScreenOn(boolean keepScreenOn) {
-        getSetupWizardLayout().setKeepScreenOn(keepScreenOn);
+        getGlifLayout().setKeepScreenOn(keepScreenOn);
     }
 
     public void onNavigateNext() {