Change disable accessibility service dialog layout

Bug: 140307087
Test: Visual
Change-Id: I78d573f121e2f799a8395fcd2d21ee48a5fffb23
diff --git a/res/layout/disable_accessibility_service_dialog_content.xml b/res/layout/disable_accessibility_service_dialog_content.xml
deleted file mode 100644
index 680de4a..0000000
--- a/res/layout/disable_accessibility_service_dialog_content.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2019 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="fill_parent"
-    android:layout_height="fill_parent"
-    android:textDirection="locale"
-    android:scrollbarStyle="outsideOverlay"
-    android:gravity="top">
-
-    <LinearLayout
-        android:theme="@style/Theme.AlertDialog"
-        style="@style/AccessibilityDialog">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:gravity="center_horizontal"
-            android:paddingTop="32dp"
-            android:paddingLeft="24dp"
-            android:paddingRight="24dp">
-
-            <TextView
-                android:id="@+id/permissionDialog_disable_title"
-                style="@style/AccessibilityDialogTitle" />
-
-            <TextView
-                android:id="@+id/permissionDialog_disable_message"
-                android:gravity="center"
-                android:text="@string/accessibility_service_warning_description"
-                style="@style/AccessibilityDialogDescription" />
-
-        </LinearLayout>
-            <!-- Buttons on bottom of dialog -->
-            <LinearLayout
-                style="@style/AccessibilityDialogButtonList">
-
-                <Space
-                    style="@style/AccessibilityDialogButtonBarSpace"/>
-
-                <Button
-                    android:id="@+id/permission_disable_stop_button"
-                    android:text="@string/accessibility_dialog_button_stop"
-                    style="@style/AccessibilityDialogButton" />
-
-                <Button
-                    android:id="@+id/permission_disable_cancel_button"
-                    android:text="@string/accessibility_dialog_button_cancel"
-                    style="@style/AccessibilityDialogButton" />
-
-            </LinearLayout>
-
-    </LinearLayout>
-
-</ScrollView>
diff --git a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
index 40ac641..1203e11 100644
--- a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
+++ b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
@@ -22,6 +22,7 @@
 import android.app.Activity;
 import android.app.Dialog;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.graphics.drawable.Drawable;
 import android.os.storage.StorageManager;
 import android.text.BidiFormatter;
@@ -77,10 +78,16 @@
     }
 
     public static Dialog createDisableDialog(Activity parentActivity,
-            AccessibilityServiceInfo info, View.OnClickListener listener) {
+            AccessibilityServiceInfo info, DialogInterface.OnClickListener listener) {
         final AlertDialog ad = new AlertDialog.Builder(parentActivity)
-                .setView(createDisableDialogContentView(parentActivity, info, listener))
+                .setTitle(parentActivity.getString(R.string.disable_service_title,
+                        info.getResolveInfo().loadLabel(parentActivity.getPackageManager())))
+                .setMessage(parentActivity.getString(R.string.disable_service_message,
+                        parentActivity.getString(R.string.accessibility_dialog_button_stop),
+                        getServiceName(parentActivity, info)))
                 .setCancelable(true)
+                .setPositiveButton(R.string.accessibility_dialog_button_stop, listener)
+                .setNegativeButton(R.string.accessibility_dialog_button_cancel, listener)
                 .create();
 
         return ad;
@@ -148,33 +155,6 @@
         return content;
     }
 
-    private static View createDisableDialogContentView(Context context,
-            AccessibilityServiceInfo info, View.OnClickListener listener) {
-        LayoutInflater inflater = (LayoutInflater) context.getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-
-        View content = inflater.inflate(R.layout.disable_accessibility_service_dialog_content,
-                null);
-
-        TextView permissionDialogTitle = content.findViewById(R.id.permissionDialog_disable_title);
-        permissionDialogTitle.setText(context.getString(R.string.disable_service_title,
-                getServiceName(context, info)));
-        TextView permissionDialogMessage = content
-                .findViewById(R.id.permissionDialog_disable_message);
-        permissionDialogMessage.setText(context.getString(R.string.disable_service_message,
-                context.getString(R.string.accessibility_dialog_button_stop),
-                getServiceName(context, info)));
-
-        Button permissionAllowButton = content.findViewById(
-                R.id.permission_disable_stop_button);
-        Button permissionDenyButton = content.findViewById(
-                R.id.permission_disable_cancel_button);
-        permissionAllowButton.setOnClickListener(listener);
-        permissionDenyButton.setOnClickListener(listener);
-
-        return content;
-    }
-
     // Get the service name and bidi wrap it to protect from bidi side effects.
     private static CharSequence getServiceName(Context context, AccessibilityServiceInfo info) {
         final Locale locale = context.getResources().getConfiguration().getLocales().get(0);
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index ec8df88..1556bec 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -25,6 +25,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
@@ -49,8 +50,7 @@
 
 import java.util.List;
 
-public class ToggleAccessibilityServicePreferenceFragment
-        extends ToggleFeaturePreferenceFragment implements View.OnClickListener {
+public class ToggleAccessibilityServicePreferenceFragment extends ToggleFeaturePreferenceFragment {
 
     private static final int DIALOG_ID_ENABLE_WARNING = 1;
     private static final int DIALOG_ID_DISABLE_WARNING = 2;
@@ -72,6 +72,42 @@
 
     private Dialog mDialog;
 
+    private final View.OnClickListener mViewOnClickListener =
+            (View view) -> {
+                if (view.getId() == R.id.permission_enable_allow_button) {
+                    if (isFullDiskEncrypted()) {
+                        String title = createConfirmCredentialReasonMessage();
+                        Intent intent = ConfirmDeviceCredentialActivity.createIntent(title, null);
+                        startActivityForResult(intent,
+                                ACTIVITY_REQUEST_CONFIRM_CREDENTIAL_FOR_WEAKER_ENCRYPTION);
+                    } else {
+                        handleConfirmServiceEnabled(true);
+                        if (isServiceSupportAccessibilityButton()) {
+                            showDialog(DIALOG_ID_LAUNCH_ACCESSIBILITY_TUTORIAL);
+                        }
+                    }
+                } else if (view.getId() == R.id.permission_enable_deny_button) {
+                    handleConfirmServiceEnabled(false);
+                } else {
+                    throw new IllegalArgumentException();
+                }
+                mDialog.dismiss();
+            };
+
+    private final DialogInterface.OnClickListener mDialogInterfaceOnClickListener =
+            (DialogInterface dialog, int which) -> {
+                switch (which) {
+                    case DialogInterface.BUTTON_POSITIVE:
+                        handleConfirmServiceEnabled(false);
+                        break;
+                    case DialogInterface.BUTTON_NEGATIVE:
+                        handleConfirmServiceEnabled(true);
+                        break;
+                    default:
+                        throw new IllegalArgumentException();
+                }
+            };
+
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.ACCESSIBILITY_SERVICE;
@@ -137,7 +173,7 @@
                     return null;
                 }
                 mDialog = AccessibilityServiceWarning
-                        .createCapabilitiesDialog(getActivity(), info, this);
+                        .createCapabilitiesDialog(getActivity(), info, mViewOnClickListener);
                 break;
             }
             case DIALOG_ID_DISABLE_WARNING: {
@@ -146,7 +182,7 @@
                     return null;
                 }
                 mDialog = AccessibilityServiceWarning
-                        .createDisableDialog(getActivity(), info, this);
+                        .createDisableDialog(getActivity(), info, mDialogInterfaceOnClickListener);
                 break;
             }
             case DIALOG_ID_LAUNCH_ACCESSIBILITY_TUTORIAL: {
@@ -210,32 +246,6 @@
         }
     }
 
-    @Override
-    public void onClick(View view) {
-        if (view.getId() == R.id.permission_enable_allow_button) {
-            if (isFullDiskEncrypted()) {
-                String title = createConfirmCredentialReasonMessage();
-                Intent intent = ConfirmDeviceCredentialActivity.createIntent(title, null);
-                startActivityForResult(intent,
-                        ACTIVITY_REQUEST_CONFIRM_CREDENTIAL_FOR_WEAKER_ENCRYPTION);
-            } else {
-                handleConfirmServiceEnabled(true);
-                if (isServiceSupportAccessibilityButton()) {
-                    showDialog(DIALOG_ID_LAUNCH_ACCESSIBILITY_TUTORIAL);
-                }
-            }
-        } else if (view.getId() == R.id.permission_enable_deny_button) {
-            handleConfirmServiceEnabled(false);
-        } else if (view.getId() == R.id.permission_disable_stop_button) {
-            handleConfirmServiceEnabled(false);
-        } else if (view.getId() == R.id.permission_disable_cancel_button) {
-            handleConfirmServiceEnabled(true);
-        } else {
-            throw new IllegalArgumentException();
-        }
-        mDialog.dismiss();
-    }
-
     private boolean isGestureNavigateEnabled() {
         return getContext().getResources().getInteger(
                 com.android.internal.R.integer.config_navBarInteractionMode)