| package com.android.settings.wifi; |
| |
| import android.app.Dialog; |
| import android.content.Context; |
| import android.os.Bundle; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| import android.widget.ProgressBar; |
| import android.widget.TextView; |
| |
| import androidx.appcompat.app.AlertDialog; |
| |
| import com.android.settings.R; |
| |
| /** |
| * This is similar fragment with {@link NetworkRequestDialogFragment} but only for single SSID mode. |
| */ |
| public class NetworkRequestSingleSsidDialogFragment extends |
| NetworkRequestDialogBaseFragment { |
| public static final String EXTRA_SSID = "DIALOG_REQUEST_SSID"; |
| public static final String EXTRA_TRYAGAIN = "DIALOG_IS_TRYAGAIN"; |
| |
| @Override |
| public Dialog onCreateDialog(Bundle savedInstanceState) { |
| boolean isTryAgain = false; |
| String requestSsid = ""; |
| if (getArguments() != null) { |
| isTryAgain = getArguments().getBoolean(EXTRA_TRYAGAIN, true); |
| requestSsid = getArguments().getString(EXTRA_SSID, ""); |
| } |
| |
| final Context context = getContext(); |
| final LayoutInflater inflater = LayoutInflater.from(context); |
| |
| final View customTitle = inflater.inflate(R.layout.network_request_dialog_title, null); |
| final TextView title = customTitle.findViewById(R.id.network_request_title_text); |
| title.setText(getTitle()); |
| final TextView summary = customTitle.findViewById(R.id.network_request_summary_text); |
| summary.setText(getSummary()); |
| final ProgressBar progressBar = customTitle |
| .findViewById(R.id.network_request_title_progress); |
| progressBar.setVisibility(View.GONE); |
| |
| final AlertDialog.Builder builder = new AlertDialog.Builder(context) |
| .setCustomTitle(customTitle) |
| .setMessage(requestSsid) |
| .setPositiveButton(isTryAgain ? R.string.network_connection_timeout_dialog_ok |
| : R.string.wifi_connect, (dialog, which) -> onUserClickConnectButton()) |
| .setNeutralButton(R.string.cancel, (dialog, which) -> onCancel(dialog)); |
| |
| // Don't dismiss dialog when touching outside. User reports it is easy to touch outside. |
| // This causes dialog to close. |
| setCancelable(false); |
| |
| return builder.create(); |
| } |
| |
| private void onUserClickConnectButton() { |
| if (mActivity != null) { |
| mActivity.onClickConnectButton(); |
| } |
| } |
| } |