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;
205cd60eb8aa5a4d5cf1a850ddd05d4f94eae1eb2fDaisuke Miyakawa
2148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.app.AlertDialog;
2248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.content.Context;
2348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.content.DialogInterface;
2448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.os.Bundle;
2548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yehimport android.view.View;
26d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawaimport android.widget.Button;
2748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
28d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawaclass WifiDialog extends AlertDialog implements WifiConfigUiBase {
2948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
3048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    static final int BUTTON_FORGET = DialogInterface.BUTTON_NEUTRAL;
3148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
32d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    private final boolean mEdit;
3348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    private final DialogInterface.OnClickListener mListener;
3448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    private final AccessPoint mAccessPoint;
3548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
3648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    private View mView;
37d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    private WifiConfigController mController;
38a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest    private boolean mHideSubmitButton;
39a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest
40a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest    public WifiDialog(Context context, DialogInterface.OnClickListener listener,
41a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest            AccessPoint accessPoint, boolean edit, boolean hideSubmitButton) {
42a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        this(context, listener, accessPoint, edit);
43a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        mHideSubmitButton = hideSubmitButton;
44a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest    }
4548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
46d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public WifiDialog(Context context, DialogInterface.OnClickListener listener,
4748090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh            AccessPoint accessPoint, boolean edit) {
48e8a80b5db3418ee9824e457420c3536f0eb71139Russell Brenner        super(context);
49d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        mEdit = edit;
5048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        mListener = listener;
5148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        mAccessPoint = accessPoint;
52a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        mHideSubmitButton = false;
5348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
5448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
55d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
56d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public WifiConfigController getController() {
57d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return mController;
5848090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
5948090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
6048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    @Override
6148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    protected void onCreate(Bundle savedInstanceState) {
6248090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        mView = getLayoutInflater().inflate(R.layout.wifi_dialog, null);
6348090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        setView(mView);
6448090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        setInverseBackgroundForced(true);
6558b0291fe6e6e47bf3d7457d8cf2648b8ce4a1aeDaisuke Miyakawa        mController = new WifiConfigController(this, mView, mAccessPoint, mEdit);
6648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh        super.onCreate(savedInstanceState);
67a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest
68a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        if (mHideSubmitButton) {
69a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest            mController.hideSubmitButton();
70a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        } else {
71a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest            /* During creation, the submit button can be unavailable to determine
72a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest             * visibility. Right after creation, update button visibility */
73a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest            mController.enableSubmitIfAppropriate();
74a7383f3862232fefe060a7e2aa9e1ae02c676bffPauloftheWest        }
7548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
7648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
77d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
78d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public boolean isEdit() {
79d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return mEdit;
8048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
8148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
82d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
83d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public Button getSubmitButton() {
84d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return getButton(BUTTON_SUBMIT);
8548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
8648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
87d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
88d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public Button getForgetButton() {
89d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return getButton(BUTTON_FORGET);
9048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
9148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
92d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
93d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public Button getCancelButton() {
94d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        return getButton(BUTTON_NEGATIVE);
9548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
9648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
97d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
98d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public void setSubmitButton(CharSequence text) {
99d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        setButton(BUTTON_SUBMIT, text, mListener);
10048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
10148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
102d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
103d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public void setForgetButton(CharSequence text) {
104d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        setButton(BUTTON_FORGET, text, mListener);
10548090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
10648090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh
107d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    @Override
108d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa    public void setCancelButton(CharSequence text) {
109d36699282cbd0a6897f425106081d3f2c0db55d4Daisuke Miyakawa        setButton(BUTTON_NEGATIVE, text, mListener);
11048090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh    }
11148090d4066fdf3084a4fb31277e785149c1bce37Chia-chi Yeh}
112