| /* |
| * 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.res.Resources; |
| import android.view.View; |
| import android.widget.TextView; |
| |
| import com.android.settings.R; |
| |
| /** |
| * The class for allowing UIs like {@link AdbWirelessDialog} and {@link AdbWirelessDialogUiBase} to |
| * share the logic for controlling buttons, text fields, etc. |
| */ |
| public class AdbWirelessDialogController { |
| private static final String TAG = "AdbWirelessDialogCtrl"; |
| |
| private final AdbWirelessDialogUiBase mUi; |
| private final View mView; |
| |
| private int mMode; |
| |
| // The dialog for showing the six-digit code |
| private TextView mPairingCodeTitle; |
| private TextView mSixDigitCode; |
| private TextView mIpAddr; |
| |
| // The dialog for showing pairing failed message |
| private TextView mFailedMsg; |
| |
| private Context mContext; |
| |
| public AdbWirelessDialogController(AdbWirelessDialogUiBase parent, View view, |
| int mode) { |
| mUi = parent; |
| mView = view; |
| mMode = mode; |
| |
| mContext = mUi.getContext(); |
| final Resources res = mContext.getResources(); |
| |
| mSixDigitCode = mView.findViewById(R.id.pairing_code); |
| mIpAddr = mView.findViewById(R.id.ip_addr); |
| |
| switch (mMode) { |
| case AdbWirelessDialogUiBase.MODE_PAIRING: |
| String title = res.getString(R.string.adb_pairing_device_dialog_title); |
| mUi.setTitle(title); |
| mView.findViewById(R.id.l_pairing_six_digit).setVisibility(View.VISIBLE); |
| mUi.setCancelButton(res.getString(R.string.cancel)); |
| mUi.setCanceledOnTouchOutside(false); |
| break; |
| case AdbWirelessDialogUiBase.MODE_PAIRING_FAILED: |
| String msg = res.getString(R.string.adb_pairing_device_dialog_failed_msg); |
| mUi.setTitle(R.string.adb_pairing_device_dialog_failed_title); |
| mView.findViewById(R.id.l_pairing_failed).setVisibility(View.VISIBLE); |
| mFailedMsg = (TextView) mView.findViewById(R.id.pairing_failed_label); |
| mFailedMsg.setText(msg); |
| mUi.setSubmitButton(res.getString(R.string.okay)); |
| break; |
| case AdbWirelessDialogUiBase.MODE_QRCODE_FAILED: |
| mUi.setTitle(R.string.adb_pairing_device_dialog_failed_title); |
| mView.findViewById(R.id.l_qrcode_pairing_failed).setVisibility(View.VISIBLE); |
| mUi.setSubmitButton(res.getString(R.string.okay)); |
| break; |
| } |
| |
| // After done view show and hide, request focus from parent view |
| mView.findViewById(R.id.l_adbwirelessdialog).requestFocus(); |
| } |
| |
| /** |
| * Set the pairing code UI text field to code. |
| * |
| * @param code the pairing code string |
| */ |
| public void setPairingCode(String code) { |
| mSixDigitCode.setText(code); |
| } |
| |
| /** |
| * Set the Ip address UI text field to ipAddr. |
| * |
| * @param ipAddr the ip address string |
| */ |
| public void setIpAddr(String ipAddr) { |
| mIpAddr.setText(ipAddr); |
| } |
| } |