148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh/*
248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * Copyright (C) 2010 The Android Open Source Project
348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh *
448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * Licensed under the Apache License, Version 2.0 (the "License");
548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * you may not use this file except in compliance with the License.
648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * You may obtain a copy of the License at
748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh *
848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh *      http://www.apache.org/licenses/LICENSE-2.0
948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh *
1048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * Unless required by applicable law or agreed to in writing, software
1148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * distributed under the License is distributed on an "AS IS" BASIS,
1248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * See the License for the specific language governing permissions and
1448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh * limitations under the License.
1548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh */
1648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
1748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehpackage com.android.settings.wifi;
1848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
195cd60eb8aa5a4d5cf1a850ddd05d4f94eae1eb2fDaisuke Miyakawaimport com.android.settings.R;
20fc1b00cfe439b0c462b3acbba709c3cbc1132a1fJason Monkimport com.android.settingslib.wifi.AccessPoint;
215cd60eb8aa5a4d5cf1a850ddd05d4f94eae1eb2fDaisuke Miyakawa
2248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.app.AlertDialog;
2348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.content.Context;
2448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.content.DialogInterface;
2548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.os.Bundle;
2648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.view.View;
27d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawaimport android.widget.Button;
2848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
29d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawaclass WifiDialog extends AlertDialog implements WifiConfigUiBase {
3048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
3148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    static final int BUTTON_FORGET = DialogInterface.BUTTON_NEUTRAL;
3248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
33d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    private final boolean mEdit;
343bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3Sanket Padawe    private final boolean mModify;
3548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    private final DialogInterface.OnClickListener mListener;
3648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    private final AccessPoint mAccessPoint;
3748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
3848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    private View mView;
39d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    private WifiConfigController mController;
40a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest    private boolean mHideSubmitButton;
4189403529adf7584ded2bdadf985fde12a346ec3bZoltan Szatmary-Ban    private boolean mHideForgetButton;
42a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest
43a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest    public WifiDialog(Context context, DialogInterface.OnClickListener listener,
443bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3Sanket Padawe            AccessPoint accessPoint, boolean edit, boolean modify,
453bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3Sanket Padawe            boolean hideSubmitButton, boolean hideForgetButton) {
463bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3Sanket Padawe        this(context, listener, accessPoint, edit, modify);
47a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        mHideSubmitButton = hideSubmitButton;
4889403529adf7584ded2bdadf985fde12a346ec3bZoltan Szatmary-Ban        mHideForgetButton = hideForgetButton;
49a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest    }
5048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
51d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public WifiDialog(Context context, DialogInterface.OnClickListener listener,
523bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3Sanket Padawe            AccessPoint accessPoint, boolean edit, boolean modify) {
53e8a80b5db3418ee9824e457420c3536f0eb71139Russell Brenner        super(context);
54d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        mEdit = edit;
553bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3Sanket Padawe        mModify = modify;
5648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        mListener = listener;
5748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        mAccessPoint = accessPoint;
58a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        mHideSubmitButton = false;
5989403529adf7584ded2bdadf985fde12a346ec3bZoltan Szatmary-Ban        mHideForgetButton = false;
6048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
6148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
62d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
63d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public WifiConfigController getController() {
64d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return mController;
6548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
6648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
6748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    @Override
6848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    protected void onCreate(Bundle savedInstanceState) {
6948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        mView = getLayoutInflater().inflate(R.layout.wifi_dialog, null);
7048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        setView(mView);
7148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        setInverseBackgroundForced(true);
723bf0db8d10fee87c6c2cb7f012dcf97d1ce458f3Sanket Padawe        mController = new WifiConfigController(this, mView, mAccessPoint, mEdit, mModify);
7348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        super.onCreate(savedInstanceState);
74a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest
75a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        if (mHideSubmitButton) {
76a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest            mController.hideSubmitButton();
77a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        } else {
78a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest            /* During creation, the submit button can be unavailable to determine
79a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest             * visibility. Right after creation, update button visibility */
80a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest            mController.enableSubmitIfAppropriate();
81a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        }
8289403529adf7584ded2bdadf985fde12a346ec3bZoltan Szatmary-Ban
8389403529adf7584ded2bdadf985fde12a346ec3bZoltan Szatmary-Ban        if (mHideForgetButton) {
8489403529adf7584ded2bdadf985fde12a346ec3bZoltan Szatmary-Ban            mController.hideForgetButton();
8589403529adf7584ded2bdadf985fde12a346ec3bZoltan Szatmary-Ban        }
8648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
8748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
883eb3b104d7f05ae330e2d91b346d4ecf765845f2Sanket Padawe    public void onRestoreInstanceState(Bundle savedInstanceState) {
893eb3b104d7f05ae330e2d91b346d4ecf765845f2Sanket Padawe            super.onRestoreInstanceState(savedInstanceState);
903eb3b104d7f05ae330e2d91b346d4ecf765845f2Sanket Padawe            mController.updatePassword();
913eb3b104d7f05ae330e2d91b346d4ecf765845f2Sanket Padawe    }
923eb3b104d7f05ae330e2d91b346d4ecf765845f2Sanket Padawe
93d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
94d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public boolean isEdit() {
95d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return mEdit;
9648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
9748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
98d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
99d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public Button getSubmitButton() {
100d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return getButton(BUTTON_SUBMIT);
10148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
10248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
103d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
104d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public Button getForgetButton() {
105d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return getButton(BUTTON_FORGET);
10648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
10748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
108d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
109d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public Button getCancelButton() {
110d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return getButton(BUTTON_NEGATIVE);
11148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
11248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
113d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
114d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public void setSubmitButton(CharSequence text) {
115d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        setButton(BUTTON_SUBMIT, text, mListener);
11648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
11748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
118d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
119d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public void setForgetButton(CharSequence text) {
120d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        setButton(BUTTON_FORGET, text, mListener);
12148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
12248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
123d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
124d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public void setCancelButton(CharSequence text) {
125d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        setButton(BUTTON_NEGATIVE, text, mListener);
12648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
12748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh}
128