summaryrefslogtreecommitdiff
path: root/src/com/android/settings/wifi/NetworkRequestSingleSsidDialogFragment.java
blob: ec919276f6cea6de44150bd7c79afc185d8e95b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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();
        }
    }
}