| /* | |
| * Copyright (C) 2020 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. | |
| */ | |
| package com.android.settings.development; | |
| import android.content.Context; | |
| import android.content.DialogInterface; | |
| import android.os.Bundle; | |
| import android.view.View; | |
| import android.widget.Button; | |
| import androidx.appcompat.app.AlertDialog; | |
| import com.android.settings.R; | |
| /** | |
| * Class to show a variety of dialogs for the Wireless debugging | |
| * fragment. | |
| */ | |
| public class AdbWirelessDialog extends AlertDialog implements | |
| AdbWirelessDialogUiBase, | |
| DialogInterface.OnClickListener { | |
| /** | |
| * Interface for subscribers to implement in order to listen | |
| * to AdbWirelessDialog events. | |
| */ | |
| public interface AdbWirelessDialogListener { | |
| /** | |
| * Called when the dialog was closed by clicking a negative button. | |
| */ | |
| default void onCancel() { | |
| } | |
| /** | |
| * Called when the dialog was closed by clicking a positive button. | |
| * | |
| * @param dialog the dialog that was closed. | |
| */ | |
| default void onSubmit(AdbWirelessDialog dialog) { | |
| } | |
| /** | |
| * Called when the dialog was dismissed. | |
| */ | |
| default void onDismiss() { | |
| } | |
| } | |
| private static final String TAG = "AdbWirelessDialog"; | |
| private static final int BUTTON_CANCEL = DialogInterface.BUTTON_NEGATIVE; | |
| private static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE; | |
| private final AdbWirelessDialogListener mListener; | |
| private final int mMode; | |
| private View mView; | |
| private AdbWirelessDialogController mController; | |
| /** | |
| * Creates a AdbWirelessDialog with no additional style. It displays as a dialog above the | |
| * current view. | |
| */ | |
| public static AdbWirelessDialog createModal( | |
| Context context, | |
| AdbWirelessDialogListener listener, | |
| int mode) { | |
| return new AdbWirelessDialog(context, listener, mode); | |
| } | |
| AdbWirelessDialog(Context context, AdbWirelessDialogListener listener, int mode) { | |
| super(context); | |
| mListener = listener; | |
| mMode = mode; | |
| } | |
| @Override | |
| protected void onCreate(Bundle savedInstanceState) { | |
| mView = getLayoutInflater().inflate(R.layout.adb_wireless_dialog, null); | |
| setView(mView); | |
| mController = new AdbWirelessDialogController(this, mView, mMode); | |
| super.onCreate(savedInstanceState); | |
| } | |
| @Override | |
| protected void onStop() { | |
| super.onStop(); | |
| dismiss(); | |
| if (mListener != null) { | |
| mListener.onDismiss(); | |
| } | |
| } | |
| @Override | |
| public void onClick(DialogInterface dialogInterface, int id) { | |
| if (mListener != null) { | |
| switch (id) { | |
| case BUTTON_CANCEL: | |
| mListener.onCancel(); | |
| break; | |
| } | |
| } | |
| } | |
| @Override | |
| public AdbWirelessDialogController getController() { | |
| return mController; | |
| } | |
| @Override | |
| public void dispatchSubmit() { | |
| if (mListener != null) { | |
| mListener.onSubmit(this); | |
| } | |
| dismiss(); | |
| } | |
| @Override | |
| public int getMode() { | |
| return mMode; | |
| } | |
| @Override | |
| public Button getSubmitButton() { | |
| return getButton(BUTTON_SUBMIT); | |
| } | |
| @Override | |
| public Button getCancelButton() { | |
| return getButton(BUTTON_NEGATIVE); | |
| } | |
| @Override | |
| public void setSubmitButton(CharSequence text) { | |
| setButton(BUTTON_SUBMIT, text, this); | |
| } | |
| @Override | |
| public void setCancelButton(CharSequence text) { | |
| setButton(BUTTON_NEGATIVE, text, this); | |
| } | |
| } |