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}