blob: 0b65be2862b9c1f4ff0476f113665e3a3e1d8233 [file] [log] [blame]
jeffreyhuang8d8f1662017-09-21 11:14:22 -07001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.settings.development;
18
jeffreyhuang8d8f1662017-09-21 11:14:22 -070019import android.app.Dialog;
Fan Zhang31b21002019-01-16 13:49:47 -080020import android.app.settings.SettingsEnums;
jeffreyhuang8d8f1662017-09-21 11:14:22 -070021import android.content.DialogInterface;
22import android.os.Bundle;
23
tmfang41ab6b42018-07-17 13:53:04 +080024import androidx.appcompat.app.AlertDialog;
tmfang99cc23d2018-06-26 19:01:57 +080025import androidx.fragment.app.Fragment;
26import androidx.fragment.app.FragmentManager;
27
Fan Zhang23f8d592018-08-28 15:11:40 -070028import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
29
jeffreyhuang8d8f1662017-09-21 11:14:22 -070030public class EnableAdbWarningDialog extends InstrumentedDialogFragment implements
31 DialogInterface.OnClickListener, DialogInterface.OnDismissListener {
32
33 public static final String TAG = "EnableAdbDialog";
34
35 public static void show(Fragment host) {
tmfang27c84de2018-06-28 11:39:05 +080036 final FragmentManager manager = host.getActivity().getSupportFragmentManager();
jeffreyhuang8d8f1662017-09-21 11:14:22 -070037 if (manager.findFragmentByTag(TAG) == null) {
38 final EnableAdbWarningDialog dialog = new EnableAdbWarningDialog();
39 dialog.setTargetFragment(host, 0 /* requestCode */);
40 dialog.show(manager, TAG);
41 }
42 }
43
44 @Override
45 public int getMetricsCategory() {
Fan Zhang31b21002019-01-16 13:49:47 -080046 return SettingsEnums.DIALOG_ENABLE_ADB;
jeffreyhuang8d8f1662017-09-21 11:14:22 -070047 }
48
49 @Override
50 public Dialog onCreateDialog(Bundle savedInstanceState) {
51 return new AlertDialog.Builder(getActivity())
Chaohui Wang25413812023-07-31 15:56:42 +080052 .setTitle(com.android.settingslib.R.string.adb_warning_title)
53 .setMessage(com.android.settingslib.R.string.adb_warning_message)
Cole Faust43ff8982022-10-15 21:33:29 -070054 .setPositiveButton(android.R.string.ok, this /* onClickListener */)
55 .setNegativeButton(android.R.string.cancel, this /* onClickListener */)
jeffreyhuang8d8f1662017-09-21 11:14:22 -070056 .create();
57 }
58
59 @Override
60 public void onClick(DialogInterface dialog, int which) {
61 final AdbDialogHost host = (AdbDialogHost) getTargetFragment();
62 if (host == null) {
63 return;
64 }
65 if (which == DialogInterface.BUTTON_POSITIVE) {
66 host.onEnableAdbDialogConfirmed();
67 } else {
68 host.onEnableAdbDialogDismissed();
69 }
70 }
71
72 @Override
73 public void onDismiss(DialogInterface dialog) {
74 super.onDismiss(dialog);
75 final AdbDialogHost host = (AdbDialogHost) getTargetFragment();
76 if (host == null) {
77 return;
78 }
79 host.onEnableAdbDialogDismissed();
80 }
81}