179c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa/*
279c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * Copyright (C) 2011 The Android Open Source Project
379c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa *
479c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License");
579c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * you may not use this file except in compliance with the License.
679c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * You may obtain a copy of the License at
779c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa *
879c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa *      http://www.apache.org/licenses/LICENSE-2.0
979c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa *
1079c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * Unless required by applicable law or agreed to in writing, software
1179c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS,
1279c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1379c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * See the License for the specific language governing permissions and
1479c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa * limitations under the License.
1579c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa */
1679c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawapackage com.android.settings.wifi;
1779c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa
1879c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawaimport com.android.settings.ButtonBarHandler;
1979c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa
20ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawaimport android.app.Fragment;
2179c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawaimport android.content.Intent;
22ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawaimport android.os.Bundle;
2379c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawaimport android.preference.PreferenceActivity;
2479c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawaimport android.widget.Button;
2579c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa
2679c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawapublic class WifiPickerActivity extends PreferenceActivity implements ButtonBarHandler {
27ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa
28ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa    // Same as what are in PreferenceActivity as private.
29ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa    private static final String EXTRA_PREFS_SHOW_BUTTON_BAR = "extra_prefs_show_button_bar";
30ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa    private static final String EXTRA_PREFS_SET_NEXT_TEXT = "extra_prefs_set_next_text";
31ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa    private static final String EXTRA_PREFS_SET_BACK_TEXT = "extra_prefs_set_back_text";
32ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa
3379c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    @Override
3479c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    public Intent getIntent() {
3579c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa        Intent modIntent = new Intent(super.getIntent());
36ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        if (!modIntent.hasExtra(EXTRA_SHOW_FRAGMENT)) {
37ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa            modIntent.putExtra(EXTRA_SHOW_FRAGMENT, WifiSettings.class.getName());
38ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        }
3979c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa        modIntent.putExtra(EXTRA_NO_HEADERS, true);
4079c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa        return modIntent;
4179c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    }
4279c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa
43ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa    /**
44ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa     * Almost dead copy of
45ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa     * {@link PreferenceActivity#startWithFragment(String, Bundle, Fragment, int)}, except
46ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa     * this has additional codes for button bar handling.
47ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa     */
48ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa    @Override
49ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa    public void startWithFragment(String fragmentName, Bundle args,
50ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa            Fragment resultTo, int resultRequestCode) {
51ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        Intent intent = new Intent(Intent.ACTION_MAIN);
52ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        intent.setClass(this, getClass());
53ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        intent.putExtra(EXTRA_SHOW_FRAGMENT, fragmentName);
54ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        intent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
55ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        intent.putExtra(EXTRA_NO_HEADERS, true);
56ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa
57ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        final Intent orgIntent = getIntent();
58ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        if (orgIntent.hasExtra(EXTRA_PREFS_SHOW_BUTTON_BAR)) {
59ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa            intent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR,
60ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa                    orgIntent.getBooleanExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false));
61ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        }
62ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        if (orgIntent.hasExtra(EXTRA_PREFS_SET_NEXT_TEXT)) {
63ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa            intent.putExtra(EXTRA_PREFS_SET_NEXT_TEXT,
64ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa                    orgIntent.getStringExtra(EXTRA_PREFS_SET_NEXT_TEXT));
65ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        }
66ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        if (orgIntent.hasExtra(EXTRA_PREFS_SET_BACK_TEXT)) {
67ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa            intent.putExtra(EXTRA_PREFS_SET_BACK_TEXT,
68ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa                    orgIntent.getStringExtra(EXTRA_PREFS_SET_BACK_TEXT));
69ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        }
70ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa
71ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        if (resultTo == null) {
72ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa            startActivity(intent);
73ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        } else {
74ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa            resultTo.startActivityForResult(intent, resultRequestCode);
75ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa        }
76ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa    }
77ece3bef58d8657fc0b584881e95757fecb7159e9Daisuke Miyakawa
7879c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    @Override
7979c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    public boolean hasNextButton() {
8079c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa        // PreferenceActivity#hasNextButton() is protected, so we need to expose it here.
8179c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa        return super.hasNextButton();
8279c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    }
8379c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa
8479c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    @Override
8579c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    public Button getNextButton() {
8679c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa        // PreferenceActivity#getNextButton() is protected, so we need to expose it here.
8779c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa        return super.getNextButton();
8879c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa    }
8979c5fd971e71fe7a7f3037474285c1812e3c2c5bDaisuke Miyakawa}