summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/wifi/WifiSettings.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/wifi/WifiSettings.java')
-rw-r--r--src/com/android/settings/wifi/WifiSettings.java438
1 files changed, 0 insertions, 438 deletions
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
deleted file mode 100644
index d2683c0..0000000
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi;
-
-import com.android.settings.ProgressCategory;
-import com.android.settings.R;
-
-import android.app.Dialog;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.net.wifi.WifiManager;
-import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceScreen;
-import android.preference.CheckBoxPreference;
-import android.provider.Settings;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.widget.AdapterView;
-import android.widget.Toast;
-import android.widget.AdapterView.AdapterContextMenuInfo;
-
-import java.util.Set;
-import java.util.WeakHashMap;
-
-/**
- * Settings screen for WiFi. This will be launched from the main system settings.
- */
-public class WifiSettings extends PreferenceActivity implements WifiLayer.Callback,
- DialogInterface.OnDismissListener {
-
- private static final String TAG = "WifiSettings";
-
- //============================
- // Preference/activity member variables
- //============================
-
- private static final String INSTANCE_KEY_DIALOG_BUNDLE =
- "com.android.settings.wifi.WifiSettings:dialogBundle";
- /*
- * We don't use Activity's dialog management because AlertDialog isn't fully
- * able to change many of its features after it's been created, and the
- * dialog management only creates once.
- */
- private Dialog mDialog;
-
- private static final String KEY_ADD_OTHER_NETWORK = "add_other_network";
-
- private static final int CONTEXT_MENU_ID_CONNECT = Menu.FIRST;
- private static final int CONTEXT_MENU_ID_FORGET = Menu.FIRST + 1;
- private static final int CONTEXT_MENU_ID_CHANGE_PASSWORD = Menu.FIRST + 2;
-
- private static final int MENU_ID_SCAN = Menu.FIRST;
- private static final int MENU_ID_ADVANCED = Menu.FIRST + 1;
-
- private static final String KEY_WIFI_ENABLED = "wifi_enabled";
- private static final String KEY_OPEN_NETWORK_NOTIFICATIONS_ENABLED =
- "open_network_notifications_enabled";
- private static final String KEY_ACCESS_POINTS = "access_points";
-
- private ProgressCategory mApCategory;
- private CheckBoxPreference mWifiEnabled;
- private WifiEnabler mWifiEnabler;
- private CheckBoxPreference mOpenNetworkNotificationsEnabled;
- private Preference mAddOtherNetwork;
-
- private WeakHashMap<AccessPointState, AccessPointPreference> mAps;
-
- //============================
- // Wifi member variables
- //============================
-
- private WifiLayer mWifiLayer;
-
- //============================
- // Activity lifecycle
- //============================
-
- public WifiSettings() {
- mAps = new WeakHashMap<AccessPointState, AccessPointPreference>();
- mWifiLayer = new WifiLayer(this, this);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- onCreatePreferences();
- mWifiLayer.onCreate();
-
- onCreatedWifi();
- mWifiLayer.onCreatedCallback();
- }
-
- /**
- * Shouldn't have any dependency on the wifi layer.
- */
- private void onCreatePreferences() {
- addPreferencesFromResource(R.xml.wifi_settings);
-
- final PreferenceScreen preferenceScreen = getPreferenceScreen();
-
- mApCategory = (ProgressCategory) preferenceScreen.findPreference(KEY_ACCESS_POINTS);
- // We don't want the ordering to be the order preferences are added,
- // instead we want*:
- // 1) preferred, visible APs
- // 2) visible APs
- // 3) preferred, APs out of range
- // * this ordering logic is in AccessPointPreference's compareTo
- mApCategory.setOrderingAsAdded(false);
-
- mWifiEnabled = (CheckBoxPreference) preferenceScreen.findPreference(KEY_WIFI_ENABLED);
- mWifiEnabler = new WifiEnabler(this, (WifiManager) getSystemService(WIFI_SERVICE),
- mWifiEnabled);
-
- mOpenNetworkNotificationsEnabled = (CheckBoxPreference) preferenceScreen
- .findPreference(KEY_OPEN_NETWORK_NOTIFICATIONS_ENABLED);
- mOpenNetworkNotificationsEnabled.setChecked(Settings.Secure.getInt(getContentResolver(),
- Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0) == 1);
-
- mAddOtherNetwork = preferenceScreen.findPreference(KEY_ADD_OTHER_NETWORK);
-
- registerForContextMenu(getListView());
- }
-
- private void onCreatedWifi() {
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- mWifiLayer.onResume();
- mWifiEnabler.resume();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- mWifiLayer.onPause();
- mWifiEnabler.pause();
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
-
- if (mDialog != null) {
- mDialog.dismiss();
- }
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- super.onCreateOptionsMenu(menu);
-
- menu.add(0, MENU_ID_SCAN, 0, R.string.scan_wifi)
- .setIcon(R.drawable.ic_menu_scan_network);
-
- menu.add(0, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced)
- .setIcon(android.R.drawable.ic_menu_manage);
-
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- super.onOptionsItemSelected(item);
-
- switch (item.getItemId()) {
-
- case MENU_ID_SCAN:
- mWifiLayer.attemptScan();
- return true;
-
- case MENU_ID_ADVANCED:
- Intent intent = new Intent(this, AdvancedSettings.class);
- startActivity(intent);
- return true;
-
- default:
- return false;
- }
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
-
- if (mDialog != null) {
- Bundle dialogBundle = mDialog.onSaveInstanceState();
- outState.putBundle(INSTANCE_KEY_DIALOG_BUNDLE, dialogBundle);
- }
- }
-
- @Override
- protected void onRestoreInstanceState(Bundle state) {
- super.onRestoreInstanceState(state);
-
- Bundle dialogBundle = state.getBundle(INSTANCE_KEY_DIALOG_BUNDLE);
- if (dialogBundle != null) {
- mDialog = new AccessPointDialog(this, mWifiLayer);
- mDialog.onRestoreInstanceState(dialogBundle);
- showDialog(mDialog);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public void onDismiss(DialogInterface dialog) {
- if (dialog == mDialog) {
- mDialog = null;
- }
- }
-
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
- super.onCreateContextMenu(menu, v, menuInfo);
-
- AccessPointState state = getStateFromMenuInfo(menuInfo);
- if (state == null) {
- return;
- }
-
- menu.setHeaderTitle(state.getHumanReadableSsid());
-
- if (state.isConnectable()) {
- menu.add(0, CONTEXT_MENU_ID_CONNECT, 0, R.string.wifi_context_menu_connect);
- }
-
- if (state.isForgetable()) {
- menu.add(0, CONTEXT_MENU_ID_FORGET, 1, R.string.wifi_context_menu_forget);
-
- if (state.hasPassword()) {
- menu.add(0, CONTEXT_MENU_ID_CHANGE_PASSWORD, 2,
- R.string.wifi_context_menu_change_password);
- }
- }
- }
-
- @Override
- public boolean onContextItemSelected(MenuItem item) {
-
- AccessPointState state = getStateFromMenuInfo(item.getMenuInfo());
- if (state == null) {
- return false;
- }
-
- switch (item.getItemId()) {
-
- case CONTEXT_MENU_ID_CONNECT:
- connectToNetwork(state);
- return true;
-
- case CONTEXT_MENU_ID_FORGET:
- mWifiLayer.forgetNetwork(state);
- return true;
-
- case CONTEXT_MENU_ID_CHANGE_PASSWORD:
- showAccessPointDialog(state, AccessPointDialog.MODE_CONFIGURE);
- return true;
-
- default:
- return false;
- }
- }
-
- /**
- * Decides what needs to happen to connect to a particular access point. If
- * it is secured and doesn't already have a password, it will bring up a
- * password box. Otherwise it will just connect.
- */
- private void connectToNetwork(AccessPointState state) {
- if (state.hasSecurity() && !state.hasPassword()) {
- showAccessPointDialog(state, AccessPointDialog.MODE_INFO);
- } else {
- mWifiLayer.connectToNetwork(state);
- }
- }
-
- private AccessPointState getStateFromMenuInfo(ContextMenuInfo menuInfo) {
- if ((menuInfo == null) || !(menuInfo instanceof AdapterContextMenuInfo)) {
- return null;
- }
-
- AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo) menuInfo;
- Preference pref = (Preference) getPreferenceScreen().getRootAdapter().getItem(
- adapterMenuInfo.position);
- if (pref == null || !(pref instanceof AccessPointPreference)) {
- return null;
- }
-
- return ((AccessPointPreference) pref).getAccessPointState();
- }
-
- //============================
- // Preference callbacks
- //============================
-
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
- super.onPreferenceTreeClick(preferenceScreen, preference);
-
- if (preference == mAddOtherNetwork) {
- showAddOtherNetworkDialog();
- } else if (preference == mOpenNetworkNotificationsEnabled) {
- Settings.Secure.putInt(getContentResolver(),
- Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON,
- mOpenNetworkNotificationsEnabled.isChecked() ? 1 : 0);
- } else if (preference instanceof AccessPointPreference) {
- AccessPointState state = ((AccessPointPreference) preference).getAccessPointState();
- showAccessPointDialog(state, AccessPointDialog.MODE_INFO);
- }
-
- return false;
- }
-
- //============================
- // Wifi-related
- //============================
-
- public WifiLayer getWifiLayer() {
- return mWifiLayer;
- }
-
- private void showAddOtherNetworkDialog() {
- AccessPointDialog dialog = new AccessPointDialog(this, mWifiLayer);
- dialog.setState(new AccessPointState(this));
- dialog.setMode(AccessPointDialog.MODE_CONFIGURE);
- dialog.setTitle(R.string.wifi_add_other_network);
- dialog.setAutoSecurityAllowed(false);
- showDialog(dialog);
- }
-
- public void showAccessPointDialog(AccessPointState state, int mode) {
- AccessPointDialog dialog = new AccessPointDialog(this, mWifiLayer);
- dialog.setMode(mode);
- dialog.setState(state);
- showDialog(dialog);
- }
-
- private void showDialog(Dialog dialog) {
- // Have only one dialog open at a time
- if (mDialog != null) {
- mDialog.dismiss();
- }
-
- mDialog = dialog;
- dialog.setOnDismissListener(this);
- if (dialog != null) {
- dialog.show();
- }
- }
-
- //============================
- // Wifi callbacks
- //============================
-
- public void onError(int messageResId) {
- Toast.makeText(this, messageResId, Toast.LENGTH_LONG).show();
- }
-
- public void onScanningStatusChanged(boolean started) {
- mApCategory.setProgress(started);
- }
-
- public void onAccessPointSetChanged(AccessPointState ap, boolean added) {
-
- AccessPointPreference pref = mAps.get(ap);
-
- if (WifiLayer.LOGV) {
- Log.v(TAG, "onAccessPointSetChanged with " + ap + " and "
- + (added ? "added" : "removed") + ", found pref " + pref);
- }
-
- if (added) {
-
- if (pref == null) {
- pref = new AccessPointPreference(this, ap);
- mAps.put(ap, pref);
- } else {
- pref.setEnabled(true);
- }
-
- mApCategory.addPreference(pref);
-
- } else {
-
- mAps.remove(ap);
-
- if (pref != null) {
- mApCategory.removePreference(pref);
- }
-
- }
- }
-
- public void onAccessPointsStateChanged(boolean enabled) {
- if (enabled) {
- mApCategory.setEnabled(true);
- } else {
- mApCategory.removeAll();
- mAps.clear();
- }
-
- mAddOtherNetwork.setEnabled(enabled);
- }
-
- public void onRetryPassword(AccessPointState ap) {
-
- if ((mDialog != null) && mDialog.isShowing()) {
- // If we're already showing a dialog, ignore this request
- return;
- }
-
- showAccessPointDialog(ap, AccessPointDialog.MODE_RETRY_PASSWORD);
- }
-
-}