Revert "Implement base version of GrantPermissions dialog"

This reverts commit b7da1f5f9886ff8a4ad81b0d617d442c461ca1e5.
We can't reference vendor from this package.  Need to add the references
manually.

Change-Id: I3ee31de110f24014100ce804b0659055b26f963b
diff --git a/Android.mk b/Android.mk
index 9a7fcc4..5a53086 100644
--- a/Android.mk
+++ b/Android.mk
@@ -9,11 +9,12 @@
 
 LOCAL_STATIC_JAVA_LIBRARIES += \
     android-support-v4 \
+    android-support-v7-recyclerview \
     android-support-v7-preference \
     android-support-v7-appcompat \
     android-support-v14-preference \
     android-support-v17-preference-leanback \
-    android-support-v17-leanback \
+    android-support-v17-leanback
 
 LOCAL_RESOURCE_DIR := \
     frameworks/support/v17/leanback/res \
@@ -21,10 +22,11 @@
     frameworks/support/v14/preference/res \
     frameworks/support/v17/preference-leanback/res \
     frameworks/support/v7/appcompat/res \
+    frameworks/support/v7/recyclerview/res \
     $(LOCAL_PATH)/res
 
 LOCAL_AAPT_FLAGS := --auto-add-overlay \
-    --extra-packages android.support.v17.leanback:android.support.v7.preference:android.support.v14.preference:android.support.v17.preference:android.support.v7.appcompat
+    --extra-packages android.support.v17.leanback:android.support.v7.preference:android.support.v14.preference:android.support.v17.preference:android.support.v7.appcompat:android.support.v7.recyclerview
 
 LOCAL_PACKAGE_NAME := PackageInstaller
 LOCAL_CERTIFICATE := platform
@@ -33,6 +35,4 @@
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
 
-include vendor/unbundled_google/libs/wearable/wearable-support.mk
-
 include $(BUILD_PACKAGE)
diff --git a/res/drawable-watch-280dpi/ic_cc_cancel.png b/res/drawable-watch-280dpi/ic_cc_cancel.png
deleted file mode 100644
index 249b869..0000000
--- a/res/drawable-watch-280dpi/ic_cc_cancel.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-watch-280dpi/ic_cc_checkmark.png b/res/drawable-watch-280dpi/ic_cc_checkmark.png
deleted file mode 100644
index 94db9ab..0000000
--- a/res/drawable-watch-280dpi/ic_cc_checkmark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-watch-hdpi/ic_cc_cancel.png b/res/drawable-watch-hdpi/ic_cc_cancel.png
deleted file mode 100644
index a57893e..0000000
--- a/res/drawable-watch-hdpi/ic_cc_cancel.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-watch-hdpi/ic_cc_checkmark.png b/res/drawable-watch-hdpi/ic_cc_checkmark.png
deleted file mode 100644
index 29f9ecd..0000000
--- a/res/drawable-watch-hdpi/ic_cc_checkmark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-watch-mdpi/ic_cc_cancel.png b/res/drawable-watch-mdpi/ic_cc_cancel.png
deleted file mode 100644
index 87fc65a..0000000
--- a/res/drawable-watch-mdpi/ic_cc_cancel.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-watch-mdpi/ic_cc_checkmark.png b/res/drawable-watch-mdpi/ic_cc_checkmark.png
deleted file mode 100644
index 0989daa..0000000
--- a/res/drawable-watch-mdpi/ic_cc_checkmark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-watch-xhdpi/ic_cc_cancel.png b/res/drawable-watch-xhdpi/ic_cc_cancel.png
deleted file mode 100644
index fec6ecb..0000000
--- a/res/drawable-watch-xhdpi/ic_cc_cancel.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-watch-xhdpi/ic_cc_checkmark.png b/res/drawable-watch-xhdpi/ic_cc_checkmark.png
deleted file mode 100644
index f98cc1e..0000000
--- a/res/drawable-watch-xhdpi/ic_cc_checkmark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-watch/action_negative_bg.xml b/res/drawable-watch/action_negative_bg.xml
deleted file mode 100644
index f1c33b5..0000000
--- a/res/drawable-watch/action_negative_bg.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="false">
-        <shape android:shape="oval">
-            <solid android:color="@color/circular_button_disabled"/>
-            <size android:width="40dp" android:height="40dp" />
-        </shape>
-    </item>
-    <item android:state_pressed="true">
-        <shape android:shape="oval">
-            <solid android:color="#757575"/>
-            <size android:width="40dp" android:height="40dp" />
-        </shape>
-    </item>
-    <item>
-        <shape android:shape="oval">
-            <solid android:color="#BDBDBD"/>
-            <size android:width="40dp" android:height="40dp" />
-        </shape>
-    </item>
-</selector>
diff --git a/res/drawable-watch/action_positive_bg.xml b/res/drawable-watch/action_positive_bg.xml
deleted file mode 100644
index bc3e88b..0000000
--- a/res/drawable-watch/action_positive_bg.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_enabled="false">
-        <shape android:shape="oval">
-            <solid android:color="@color/circular_button_disabled"/>
-            <size android:width="40dp" android:height="40dp" />
-        </shape>
-    </item>
-    <item android:state_pressed="true">
-        <shape android:shape="oval">
-            <solid android:color="#009688"/>
-            <size android:width="40dp" android:height="40dp" />
-        </shape>
-    </item>
-    <item>
-        <shape android:shape="oval">
-            <solid android:color="#00BFA5"/>
-            <size android:width="40dp" android:height="40dp" />
-        </shape>
-    </item>
-</selector>
diff --git a/res/drawable-watch/cancel_button.xml b/res/drawable-watch/cancel_button.xml
deleted file mode 100644
index 5b16f54..0000000
--- a/res/drawable-watch/cancel_button.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:drawable="@drawable/action_negative_bg" />
-    <item>
-        <bitmap android:src="@drawable/ic_cc_cancel" android:gravity="center" />
-    </item>
-</layer-list>
diff --git a/res/drawable-watch/confirm_button.xml b/res/drawable-watch/confirm_button.xml
deleted file mode 100644
index 6a895ec..0000000
--- a/res/drawable-watch/confirm_button.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item android:drawable="@drawable/action_positive_bg" />
-    <item>
-        <bitmap android:src="@drawable/ic_cc_checkmark" android:gravity="center" />
-    </item>
-</layer-list>
diff --git a/res/layout-watch/grant_permissions.xml b/res/layout-watch/grant_permissions.xml
deleted file mode 100644
index 80ed5b9..0000000
--- a/res/layout-watch/grant_permissions.xml
+++ /dev/null
@@ -1,126 +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.
--->
-<FrameLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools"
-        android:id="@+id/confirmation"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        >
-
-    <ScrollView
-            android:id="@+id/scrolling_container"
-            android:overScrollMode="never"
-            android:scrollbars="none"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-        <LinearLayout
-                android:id="@+id/content"
-                android:orientation="vertical"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content">
-
-            <TextView
-                    android:id="@+id/current_page_text"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:layout_marginBottom="@dimen/grant_permissions_app_breadcrumb_margin_bottom"
-                    android:textAppearance="@style/GrantPermissions.BreadcrumbText" />
-
-            <ImageView
-                    android:id="@+id/icon"
-                    android:layout_width="@dimen/grant_permissions_app_icon_size"
-                    android:layout_height="@dimen/grant_permissions_app_icon_size"
-                    android:tint="@color/grant_permissions_app_color"
-                    android:layout_gravity="center"
-                    android:layout_marginTop="@dimen/grant_permissions_app_icon_margin_top"/>
-
-            <TextView
-                    android:id="@+id/message"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="10dp"
-                    android:paddingLeft="16dp"
-                    android:paddingRight="16dp"
-                    android:textSize="20sp"
-                    android:gravity="center"
-                    android:fontFamily="sans-serif-condensed-light"
-                    android:textAppearance="@style/GrantPermissions.TitleText"/>
-
-            <!-- TODO: Change this to use a ViewStub instead of show/hiding the two layouts -->
-            <FrameLayout android:layout_width="match_parent"
-                         android:layout_height="wrap_content"
-                         android:id="@+id/button_bar_container"
-                         android:layout_gravity="bottom"
-                         android:background="#FF606060">
-                <android.support.wearable.view.WearableFrameLayout
-                        android:id="@+id/horizontal_button_bar"
-                        android:layout_width="match_parent"
-                        android:layout_height="72dp"
-                        app:layout_heightRound="96dp">
-                    <Button
-                            android:id="@+id/horizontal_deny_button"
-                            android:layout_width="54dp"
-                            android:layout_height="54dp"
-                            android:layout_gravity="top|left"
-                            android:layout_marginLeft="16dp"
-                            android:layout_marginTop="9dp"
-                            app:layout_marginLeftRound="36dp"
-                            app:layout_marginTopRound="12dp"
-                            android:background="@drawable/cancel_button"/>
-
-                    <Button
-                            android:id="@+id/horizontal_allow_button"
-                            android:layout_width="54dp"
-                            android:layout_height="54dp"
-                            android:layout_gravity="top|right"
-                            android:layout_marginRight="16dp"
-                            android:layout_marginTop="9dp"
-                            app:layout_marginRightRound="36dp"
-                            app:layout_marginTopRound="12dp"
-                            android:background="@drawable/confirm_button"/>
-                </android.support.wearable.view.WearableFrameLayout>
-
-                <android.support.wearable.view.WearableFrameLayout
-                        android:id="@+id/vertical_button_bar"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:visibility="gone">
-                    <LinearLayout
-                            android:id="@+id/buttonPanel"
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:orientation="vertical">
-                        <Button
-                                android:id="@+id/vertical_allow_button"
-                                style="@style/Widget.WearDiag.Button"/>
-
-                        <Button
-                                android:id="@+id/vertical_deny_button"
-                                style="@style/Widget.WearDiag.Button"/>
-
-                        <Button
-                                android:id="@+id/vertical_deny_do_not_ask_again_button"
-                                style="@style/Widget.WearDiag.Button"/>
-                    </LinearLayout>
-                </android.support.wearable.view.WearableFrameLayout>
-            </FrameLayout>
-        </LinearLayout>
-    </ScrollView>
-</FrameLayout>
\ No newline at end of file
diff --git a/res/values-watch/colors.xml b/res/values-watch/colors.xml
deleted file mode 100644
index 614e8f1..0000000
--- a/res/values-watch/colors.xml
+++ /dev/null
@@ -1,26 +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.
--->
-
-<resources>
-    <color name="grant_permissions_app_color">@color/grant_permissions_white_text_alpha_100</color>
-    <color name="grant_permissions_progress_color">@color/grant_permissions_white_text_alpha_100</color>
-    <color name="grant_permissions_title_color">@color/grant_permissions_white_text_alpha_70</color>
-
-    <color name="grant_permissions_white_text_alpha_100">@color/off_white</color>
-    <color name="grant_permissions_white_text_alpha_70">#b2eeeeee</color>
-
-    <color name="off_white">#ffeeeeee</color>
-</resources>
diff --git a/res/values-watch/dimens.xml b/res/values-watch/dimens.xml
deleted file mode 100644
index 29a65fd..0000000
--- a/res/values-watch/dimens.xml
+++ /dev/null
@@ -1,28 +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.
--->
-
-<resources>
-    <dimen name="grant_permissions_app_icon_size">32dp</dimen>
-    <dimen name="grant_permissions_app_icon_margin_top">8dp</dimen>
-
-    <dimen name="grant_permissions_app_breadcrumb_margin_bottom">3dp</dimen>
-
-    <dimen name="action_dialog_z">16dp</dimen>
-
-    <!-- Confirmation Dialog -->
-    <dimen name="conf_diag_floating_height">16dp</dimen>
-
-</resources>
diff --git a/res/values-watch/strings.xml b/res/values-watch/strings.xml
deleted file mode 100644
index 3ec72e5..0000000
--- a/res/values-watch/strings.xml
+++ /dev/null
@@ -1,29 +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.
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- Title for the dialog button to deny a permission grant and never ask the user again. -->
-    <string name="grant_dialog_button_deny_dont_ask_again">Deny and don\'t ask again</string>
-
-    <!-- Template for the current permission from the total number of permissions. -->
-    <string name="current_permission_template">
-        <xliff:g id="current_permission_index" example="1">%1$s</xliff:g>
-        <xliff:g id="permission_count" example="2">%2$s</xliff:g>
-    </string>
-
-    <!-- Preference row title for showing system apps. -->
-    <string name="preference_show_system_apps">Show system apps</string>
-</resources>
diff --git a/res/values-watch/themes.xml b/res/values-watch/themes.xml
deleted file mode 100644
index fd49185..0000000
--- a/res/values-watch/themes.xml
+++ /dev/null
@@ -1,46 +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
-  -->
-
-<resources>
-    <style name="Settings" parent="Theme.Leanback">
-        <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Permissions</item>
-    </style>
-
-    <style name="GrantPermissions" parent="Theme.Leanback">
-        <item name="android:windowIsFloating">true</item>
-        <item name="android:windowAnimationStyle">@style/Animation.Snackbar</item>
-        <item name="android:windowElevation">@dimen/action_dialog_z</item>
-    </style>
-
-    <style name="GrantPermissions.BreadcrumbText">
-        <item name="android:fontFamily">sans-serif-condensed</item>
-        <item name="android:textSize">14sp</item>
-        <item name="android:textColor">@color/grant_permissions_progress_color</item>
-    </style>
-
-    <style name="GrantPermissions.TitleText">
-        <item name="android:fontFamily">sans-serif-light</item>
-        <item name="android:textSize">18sp</item>
-        <item name="android:textColor">@color/grant_permissions_title_color</item>
-        <item name="android:lineSpacingMultiplier">1.221</item>
-    </style>
-
-    <style name="Animation.Snackbar" parent="@android:style/Animation">
-        <item name="android:windowEnterAnimation">@anim/snackbar_enter</item>
-        <item name="android:windowExitAnimation">@anim/snackbar_exit</item>
-    </style>
-</resources>
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
index c55267e..c451dd5 100644
--- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
+++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java
@@ -73,8 +73,6 @@
 
         if (Utils.isTelevision(this)) {
             mViewHandler = new GrantPermissionsTvViewHandler(this).setResultListener(this);
-        } else if (isWatch()) {
-            mViewHandler = new GrantPermissionsWatchViewHandler(this).setResultListener(this);
         } else {
             mViewHandler = new GrantPermissionsDefaultViewHandler(this).setResultListener(this);
         }
@@ -359,11 +357,6 @@
         SafetyNetLogger.logPermissionsRequested(mAppPermissions.getPackageInfo(), groups);
     }
 
-    private boolean isWatch() {
-        PackageManager pm = getPackageManager();
-        return pm.hasSystemFeature(pm.FEATURE_WATCH);
-    }
-
     private static final class GroupState {
         static final int STATE_UNKNOWN = 0;
         static final int STATE_ALLOWED = 1;
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsWatchViewHandler.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsWatchViewHandler.java
deleted file mode 100644
index ac573c4..0000000
--- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsWatchViewHandler.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package com.android.packageinstaller.permission.ui;
-
-import android.content.Context;
-import android.graphics.PixelFormat;
-import android.graphics.drawable.Icon;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.view.WindowManager;
-
-import com.android.packageinstaller.R;
-
-/**
- * Watch-specific view handler for the grant permissions activity.
- */
-final class GrantPermissionsWatchViewHandler extends PermissionConfirmationViewHandler
-        implements GrantPermissionsViewHandler {
-    private static final String TAG = "GrantPermissionsViewH";
-
-    private static final String ARG_GROUP_NAME = "ARG_GROUP_NAME";
-
-    private final Context mContext;
-
-    private ResultListener mResultListener;
-
-    private String mGroupName;
-    private boolean mShowDoNotAsk;
-
-    private CharSequence mMessage;
-    private String mCurrentPageText;
-    private Icon mIcon;
-
-    GrantPermissionsWatchViewHandler(Context context) {
-        super(context);
-        mContext = context;
-    }
-
-    @Override
-    public GrantPermissionsWatchViewHandler setResultListener(ResultListener listener) {
-        mResultListener = listener;
-        return this;
-    }
-
-    @Override
-    public View createView() {
-        if (Log.isLoggable(TAG, Log.DEBUG)) {
-            Log.d(TAG, "createView()");
-        }
-
-        mShowDoNotAsk = false;
-
-        return super.createView();
-    }
-
-    @Override
-    public void updateWindowAttributes(WindowManager.LayoutParams outLayoutParams) {
-        outLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
-        outLayoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
-        outLayoutParams.format = PixelFormat.OPAQUE;
-        outLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
-        outLayoutParams.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
-    }
-
-    @Override
-    public void updateUi(String groupName, int groupCount, int groupIndex, Icon icon,
-            CharSequence message, boolean showDoNotAsk) {
-        if (Log.isLoggable(TAG, Log.DEBUG)) {
-            Log.d(TAG, "updateUi() - groupName: " + groupName
-                            + ", groupCount: " + groupCount
-                            + ", groupIndex: " + groupIndex
-                            + ", icon: " + icon
-                            + ", message: " + message
-                            + ", showDoNotAsk: " + showDoNotAsk);
-        }
-
-        mGroupName = groupName;
-        mShowDoNotAsk = showDoNotAsk;
-        mMessage = message;
-        mIcon = icon;
-        mCurrentPageText = (groupCount > 1 ?
-                mContext.getString(R.string.current_permission_template, groupIndex + 1, groupCount)
-                : null);
-
-        invalidate();
-    }
-
-    @Override
-    public void saveInstanceState(Bundle outState) {
-        outState.putString(ARG_GROUP_NAME, mGroupName);
-    }
-
-    @Override
-    public void loadInstanceState(Bundle savedInstanceState) {
-        mGroupName = savedInstanceState.getString(ARG_GROUP_NAME);
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (mResultListener != null) {
-            mResultListener.onPermissionGrantResult(mGroupName, false, false);
-        }
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public void onAllow() {
-        onClick(true /* granted */, false /* doNotAskAgain */);
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public void onDeny() {
-        onClick(false /* granted */, false /* doNotAskAgain */);
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public void onDenyDoNotAskAgain() {
-        onClick(false /* granted */, true /* doNotAskAgain */);
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public CharSequence getCurrentPageText() {
-        return mCurrentPageText;
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public Icon getPermissionIcon() {
-        return mIcon;
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public CharSequence getMessage() {
-        return mMessage;
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public int getButtonBarMode() {
-        return mShowDoNotAsk ? MODE_VERTICAL_BUTTONS : MODE_HORIZONTAL_BUTTONS;
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public CharSequence getVerticalAllowText() {
-        return mContext.getString(R.string.grant_dialog_button_allow);
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public CharSequence getVerticalDenyText() {
-        return mContext.getString(R.string.grant_dialog_button_deny);
-    }
-
-    @Override // PermissionConfirmationViewHandler
-    public CharSequence getVerticalDenyDoNotAskAgainText() {
-        return mContext.getString(R.string.grant_dialog_button_deny_dont_ask_again);
-    }
-
-    private void onClick(boolean granted, boolean doNotAskAgain) {
-        if (mResultListener != null) {
-            mResultListener.onPermissionGrantResult(mGroupName, granted, doNotAskAgain);
-        }
-    }
-}
diff --git a/src/com/android/packageinstaller/permission/ui/PermissionConfirmationViewHandler.java b/src/com/android/packageinstaller/permission/ui/PermissionConfirmationViewHandler.java
deleted file mode 100644
index 63ed0a4..0000000
--- a/src/com/android/packageinstaller/permission/ui/PermissionConfirmationViewHandler.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package com.android.packageinstaller.permission.ui;
-
-import android.content.Context;
-import android.graphics.drawable.Icon;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.ScrollView;
-import android.widget.TextView;
-
-import com.android.packageinstaller.R;
-
-public abstract class PermissionConfirmationViewHandler implements
-        View.OnClickListener {
-    public static final int MODE_HORIZONTAL_BUTTONS = 0;
-    public static final int MODE_VERTICAL_BUTTONS = 1;
-
-    private View mRoot;
-    private TextView mCurrentPageText;
-    private ImageView mIcon;
-    private TextView mMessage;
-    private ScrollView mScrollingContainer;
-    private ViewGroup mContent;
-    private ViewGroup mHorizontalButtonBar;
-    private ViewGroup mVerticalButtonBar;
-    private Button mVerticalAllow;
-    private Button mVerticalDeny;
-    private Button mVerticalDenyDoNotAskAgain;
-    private View mButtonBarContainer;
-
-    private Context mContext;
-
-    // TODO: Move these into a builder
-    public abstract void onAllow();
-    public abstract void onDeny();
-    public abstract void onDenyDoNotAskAgain();
-    public abstract CharSequence getVerticalAllowText();
-    public abstract CharSequence getVerticalDenyText();
-    public abstract CharSequence getVerticalDenyDoNotAskAgainText();
-    public abstract CharSequence getCurrentPageText();
-    public abstract Icon getPermissionIcon();
-    public abstract CharSequence getMessage();
-
-    public PermissionConfirmationViewHandler(Context context) {
-        mContext = context;
-    }
-
-    public View createView() {
-        mRoot = LayoutInflater.from(mContext).inflate(R.layout.grant_permissions, null);
-
-        mMessage = (TextView) mRoot.findViewById(R.id.message);
-        mCurrentPageText = (TextView) mRoot.findViewById(R.id.current_page_text);
-        mIcon = (ImageView) mRoot.findViewById(R.id.icon);
-        mButtonBarContainer = mRoot.findViewById(R.id.button_bar_container);
-        mContent = (ViewGroup) mRoot.findViewById(R.id.content);
-        mScrollingContainer = (ScrollView) mRoot.findViewById(R.id.scrolling_container);
-        mHorizontalButtonBar = (ViewGroup) mRoot.findViewById(R.id.horizontal_button_bar);
-        mVerticalButtonBar = (ViewGroup) mRoot.findViewById(R.id.vertical_button_bar);
-
-        Button horizontalAllow = (Button) mRoot.findViewById(R.id.horizontal_allow_button);
-        Button horizontalDeny = (Button) mRoot.findViewById(R.id.horizontal_deny_button);
-        horizontalAllow.setOnClickListener(this);
-        horizontalDeny.setOnClickListener(this);
-
-        mVerticalAllow = (Button) mRoot.findViewById(R.id.vertical_allow_button);
-        mVerticalDeny = (Button) mRoot.findViewById(R.id.vertical_deny_button);
-        mVerticalDenyDoNotAskAgain =
-                (Button) mRoot.findViewById(R.id.vertical_deny_do_not_ask_again_button);
-        mVerticalAllow.setOnClickListener(this);
-        mVerticalDeny.setOnClickListener(this);
-        mVerticalDenyDoNotAskAgain.setOnClickListener(this);
-
-        return mRoot;
-    }
-
-    /**
-     * Child class should override this for other modes.  Call invalidate() to update the UI to the
-     * new button mode.
-     * @return The current mode the layout should use for the buttons
-     */
-    public int getButtonBarMode() {
-        return MODE_HORIZONTAL_BUTTONS;
-    }
-
-    public void invalidate() {
-        CharSequence currentPageText = getCurrentPageText();
-        if (!TextUtils.isEmpty(currentPageText)) {
-            mCurrentPageText.setText(currentPageText);
-            mCurrentPageText.setVisibility(View.VISIBLE);
-        } else {
-            mCurrentPageText.setVisibility(View.INVISIBLE);
-        }
-
-        Icon icon = getPermissionIcon();
-        if (icon != null) {
-            mIcon.setImageIcon(icon);
-            mIcon.setVisibility(View.VISIBLE);
-        } else {
-            mIcon.setVisibility(View.INVISIBLE);
-        }
-
-        mMessage.setText(getMessage());
-
-        switch (getButtonBarMode()) {
-            case MODE_HORIZONTAL_BUTTONS:
-                mHorizontalButtonBar.setVisibility(View.VISIBLE);
-                mVerticalButtonBar.setVisibility(View.GONE);
-                break;
-            case MODE_VERTICAL_BUTTONS:
-                mHorizontalButtonBar.setVisibility(View.GONE);
-                mVerticalButtonBar.setVisibility(View.VISIBLE);
-                mVerticalAllow.setText(getVerticalAllowText());
-                mVerticalDeny.setText(getVerticalDenyText());
-                mVerticalDenyDoNotAskAgain.setText(getVerticalDenyDoNotAskAgainText());
-
-                mVerticalAllow.setCompoundDrawablesWithIntrinsicBounds(
-                        mContext.getDrawable(R.drawable.confirm_button), null, null, null);
-                mVerticalDeny.setCompoundDrawablesWithIntrinsicBounds(
-                        mContext.getDrawable(R.drawable.cancel_button), null, null, null);
-                mVerticalDenyDoNotAskAgain.setCompoundDrawablesWithIntrinsicBounds(
-                        mContext.getDrawable(R.drawable.cancel_button), null, null, null);
-                break;
-        }
-
-        mScrollingContainer.scrollTo(0, 0);
-    }
-
-    @Override
-    public void onClick(View v) {
-        int id = v.getId();
-        switch (id) {
-            case R.id.horizontal_allow_button:
-            case R.id.vertical_allow_button:
-                onAllow();
-                break;
-            case R.id.horizontal_deny_button:
-            case R.id.vertical_deny_button:
-                onDeny();
-                break;
-            case R.id.vertical_deny_do_not_ask_again_button:
-                onDenyDoNotAskAgain();
-                break;
-        }
-    }
-}