From 3f8a60227a660fdd010f853bd26d33cd3323de7f Mon Sep 17 00:00:00 2001 From: srowen Date: Tue, 15 Jun 2010 16:25:24 +0000 Subject: [PATCH] Style-related changes git-svn-id: http://zxing.googlecode.com/svn/trunk@1428 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- android/res/layout/network.xml | 20 ++- .../android/wifi/ConnectedReceiver.java | 41 ++++++ .../zxing/client/android/wifi/Killer.java | 16 ++- .../client/android/wifi/NetworkSetting.java | 49 +++---- .../client/android/wifi/NetworkUtil.java | 34 +++-- .../client/android/wifi/WifiActivity.java | 129 ++++++------------ 6 files changed, 140 insertions(+), 149 deletions(-) create mode 100644 android/src/com/google/zxing/client/android/wifi/ConnectedReceiver.java diff --git a/android/res/layout/network.xml b/android/res/layout/network.xml index 8ca7665b..1fbe63d8 100644 --- a/android/res/layout/network.xml +++ b/android/res/layout/network.xml @@ -1,14 +1,12 @@ - - - - - - + android:orientation="vertical" android:layout_width="fill_parent" + android:layout_height="fill_parent"> + diff --git a/android/src/com/google/zxing/client/android/wifi/ConnectedReceiver.java b/android/src/com/google/zxing/client/android/wifi/ConnectedReceiver.java new file mode 100644 index 00000000..542169e9 --- /dev/null +++ b/android/src/com/google/zxing/client/android/wifi/ConnectedReceiver.java @@ -0,0 +1,41 @@ +package com.google.zxing.client.android.wifi; + +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.widget.TextView; + +/** + * Get a broadcast when the network is connected, and kill the activity. + */ +final class ConnectedReceiver extends BroadcastReceiver { + + private final Activity parent; + private final TextView statusView; + + ConnectedReceiver(Activity wifiActivity, TextView statusView) { + parent = wifiActivity; + this.statusView = statusView; + } + + @Override + public void onReceive(Context context, Intent intent) { + if (intent.getAction().equals(android.net.ConnectivityManager.CONNECTIVITY_ACTION)) { + ConnectivityManager con = (ConnectivityManager) parent.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo[] s = con.getAllNetworkInfo(); + for (NetworkInfo i : s){ + if (i.getTypeName().contentEquals("WIFI")){ + NetworkInfo.State state = i.getState(); + if (state == NetworkInfo.State.CONNECTED){ + statusView.setText("Connected!"); + Runnable delayKill = new Killer(parent); + delayKill.run(); + } + } + } + } + } +} diff --git a/android/src/com/google/zxing/client/android/wifi/Killer.java b/android/src/com/google/zxing/client/android/wifi/Killer.java index 8eba9cc0..dcb89553 100644 --- a/android/src/com/google/zxing/client/android/wifi/Killer.java +++ b/android/src/com/google/zxing/client/android/wifi/Killer.java @@ -25,16 +25,18 @@ import android.os.Handler; /** * Close the parent after a delay. * @author Vikram Aggarwal - * */ -class Killer implements Runnable { +final class Killer implements Runnable { + // Three full seconds - final int delay_millis = 3 * 1000; - Activity parent = null; - public Killer(Activity parent) { + private static final long DELAY_MS = 3 * 1000L; + + private final Activity parent; + + Killer(Activity parent) { this.parent = parent; } - @Override + public void run() { final Handler handler = new Handler(); Timer t = new Timer(); @@ -47,6 +49,6 @@ class Killer implements Runnable { } }); } - }, delay_millis); + }, DELAY_MS); } } diff --git a/android/src/com/google/zxing/client/android/wifi/NetworkSetting.java b/android/src/com/google/zxing/client/android/wifi/NetworkSetting.java index 955088e8..ddef6858 100644 --- a/android/src/com/google/zxing/client/android/wifi/NetworkSetting.java +++ b/android/src/com/google/zxing/client/android/wifi/NetworkSetting.java @@ -16,51 +16,44 @@ package com.google.zxing.client.android.wifi; -import java.util.Vector; - import com.google.zxing.client.android.wifi.WifiActivity.NetworkType; /** * Everything we could get from the barcode is to be here - * @author Vikram Aggarwal * + * @author Vikram Aggarwal */ -class NetworkSetting { - // The ancillary network setting from the barcode - private NetworkType mNetworkType; - // The password this ssid has - private String mPassword; - // The ssid we read from the barcode - private String mSsid; +final class NetworkSetting { + + /** The ancillary network setting from the barcode */ + private final NetworkType networkType; + /** The password this ssid has */ + private final String password; + /** The ssid we read from the barcode */ + private final String ssid; - static String[] toStringArray(Vector strings) { - int size = strings.size(); - String[] result = new String[size]; - for (int j = 0; j < size; j++) { - result[j] = (String) strings.elementAt(j); - } - return result; - } /** * Create a new NetworkSetting object. * @param ssid: The SSID * @param password: Password for the setting, blank if unsecured network * @param networkType: WPA for WPA/WPA2, or WEP for WEP or unsecured */ - public NetworkSetting(String ssid, String password, NetworkType networkType){ - mSsid = ssid; - mPassword = password; - mNetworkType = networkType; + NetworkSetting(String ssid, String password, NetworkType networkType){ + this.ssid = ssid; + this.password = password; + this.networkType = networkType; } - public NetworkType getNetworkType() { - return mNetworkType; + NetworkType getNetworkType() { + return networkType; } - public String getPassword() { - return mPassword; + + String getPassword() { + return password; } - public String getSsid() { - return mSsid; + String getSsid() { + return ssid; } + } \ No newline at end of file diff --git a/android/src/com/google/zxing/client/android/wifi/NetworkUtil.java b/android/src/com/google/zxing/client/android/wifi/NetworkUtil.java index 0fbad039..9a84d439 100644 --- a/android/src/com/google/zxing/client/android/wifi/NetworkUtil.java +++ b/android/src/com/google/zxing/client/android/wifi/NetworkUtil.java @@ -21,36 +21,41 @@ import android.text.TextUtils; /** * Try with: * http://chart.apis.google.com/chart?cht=qr&chs=240x240&chl=WIFI:S:linksys;P:mypass;T:WPA;; - * @author Vikram Aggarwal * * TODO(vikrama): Test with binary ssid or password. + * + * @author Vikram Aggarwal */ -public final class NetworkUtil { +final class NetworkUtil { + + private NetworkUtil() { + } + /** * Encloses the incoming string inside double quotes, if it isn't already quoted. * @param string: the input string * @return a quoted string, of the form "input". If the input string is null, it returns null as well. */ - public static String convertToQuotedString(String string) { + static String convertToQuotedString(String string) { if (string == null){ return null; } if (TextUtils.isEmpty(string)) { return ""; } - final int lastPos = string.length() - 1; + int lastPos = string.length() - 1; if (lastPos < 0 || (string.charAt(0) == '"' && string.charAt(lastPos) == '"')) { return string; } - return "\"" + string + "\""; + return '\"' + string + '\"'; } - private static boolean isHex(String key) { + private static boolean isHex(CharSequence key) { if (key == null){ return false; } for (int i = key.length() - 1; i >= 0; i--) { - final char c = key.charAt(i); + char c = key.charAt(i); if (!(c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a' && c <= 'f')) { return false; } @@ -63,14 +68,13 @@ public final class NetworkUtil { * @param wepKey the input to be checked * @return true if the input string is indeed hex or empty. False if the input string is non-hex or null. */ - public static boolean isHexWepKey(String wepKey) { - if (wepKey == null) - return false; - final int len = wepKey.length(); - // WEP-40, WEP-104, and some vendors using 256-bit WEP (WEP-232?) - if (len != 10 && len != 26 && len != 58) { + static boolean isHexWepKey(CharSequence wepKey) { + if (wepKey == null) { return false; } - return isHex(wepKey); - } + int len = wepKey.length(); + // WEP-40, WEP-104, and some vendors using 256-bit WEP (WEP-232?) + return (len == 10 || len == 26 || len == 58) && isHex(wepKey); + } + } diff --git a/android/src/com/google/zxing/client/android/wifi/WifiActivity.java b/android/src/com/google/zxing/client/android/wifi/WifiActivity.java index ae8dc642..82f43a37 100644 --- a/android/src/com/google/zxing/client/android/wifi/WifiActivity.java +++ b/android/src/com/google/zxing/client/android/wifi/WifiActivity.java @@ -19,73 +19,38 @@ package com.google.zxing.client.android.wifi; import java.util.List; import android.app.Activity; -import android.content.BroadcastReceiver; -import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.ConnectivityManager; -import android.net.NetworkInfo; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.os.Bundle; import android.util.Log; -import android.widget.ImageView; import android.widget.TextView; import com.google.zxing.client.android.Intents; import com.google.zxing.client.android.R; -import com.google.zxing.client.android.wifi.Killer; -import com.google.zxing.client.android.wifi.NetworkUtil; -import com.google.zxing.client.android.wifi.NetworkSetting; /** * A new activity showing the progress of Wifi connection - * @author Vikram Aggarwal * + * @author Vikram Aggarwal */ public class WifiActivity extends Activity { - public static enum NetworkType { - NETWORK_WEP, NETWORK_WPA, - } - /** - * Get a broadcast when the network is connected, and kill the activity. - */ - class ConnectedReceiver extends BroadcastReceiver { - Activity parent = null; - public ConnectedReceiver(WifiActivity wifiActivity) { - parent = wifiActivity; - } + private static final String TAG = WifiActivity.class.getSimpleName(); - @Override - public void onReceive(Context context, Intent intent) { - if (intent.getAction().equals(android.net.ConnectivityManager.CONNECTIVITY_ACTION)){ - ConnectivityManager con = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo[] s = con.getAllNetworkInfo(); - for (NetworkInfo i : s){ - if (i.getTypeName().contentEquals("WIFI")){ - NetworkInfo.State state = i.getState(); - if (state == NetworkInfo.State.CONNECTED){ - statusT.setText("Connected!"); - Killer delay_kill = new Killer(parent); - delay_kill.run(); - } - } - } - } - } - } + private WifiManager wifiManager; + private TextView statusView; + private ConnectedReceiver connectedReceiver; - private static final String tag = "NetworkActivity"; - WifiManager mWifiManager = null; - TextView statusT = null; - ImageView statusI = null; - ConnectedReceiver rec = null; - boolean debug = true; + public enum NetworkType { + NETWORK_WEP, NETWORK_WPA, + } private int changeNetwork(NetworkSetting setting) { // If the password is empty, this is an unencrypted network - if (setting.getPassword() == null || setting.getPassword() == "") { + if (setting.getPassword() == null || setting.getPassword().length() == 0) { return changeNetworkUnEncrypted(setting); } if (setting.getNetworkType() == NetworkType.NETWORK_WPA) { @@ -96,11 +61,8 @@ public class WifiActivity extends Activity { } private WifiConfiguration changeNetworkCommon(NetworkSetting input){ - statusT.setText("Creating settings..."); - if (debug) { - Log.d(tag, "adding new configuration: \nSSID: " + input.getSsid() + "\nPassword: \"" - + input.getPassword() + "\"\nType: " + input.getNetworkType()); - } + statusView.setText("Creating settings..."); + Log.d(TAG, "Adding new configuration: \nSSID: " + input.getSsid() + "\nType: " + input.getNetworkType()); WifiConfiguration config = new WifiConfiguration(); config.allowedAuthAlgorithms.clear(); @@ -115,10 +77,9 @@ public class WifiActivity extends Activity { return config; } - private int requestNetworkChange(WifiConfiguration config){ - boolean disableOthers = false; - statusT.setText("Changing Network..."); - return updateNetwork(config, disableOthers); + private int requestNetworkChange(WifiConfiguration config){ + statusView.setText("Changing Network..."); + return updateNetwork(config, false); } // Adding a WEP network @@ -155,9 +116,7 @@ public class WifiActivity extends Activity { // Adding an open, unsecured network private int changeNetworkUnEncrypted(NetworkSetting input){ WifiConfiguration config = changeNetworkCommon(input); - if (debug){ - Log.d(tag, "Empty password prompting a simple account setting"); - } + Log.d(TAG, "Empty password prompting a simple account setting"); config.wepKeys[0] = ""; config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; @@ -169,10 +128,10 @@ public class WifiActivity extends Activity { * @param ssid */ private WifiConfiguration findNetworkInExistingConfig(String ssid){ - List existingConfigs = mWifiManager.getConfiguredNetworks(); - for (int i = 0; i < existingConfigs.size(); i++){ - if (existingConfigs.get(i).SSID.compareTo(ssid) == 0){ - return existingConfigs.get(i); + List existingConfigs = wifiManager.getConfiguredNetworks(); + for (WifiConfiguration existingConfig : existingConfigs) { + if (existingConfig.SSID.equals(ssid)) { + return existingConfig; } } return null; @@ -193,68 +152,62 @@ public class WifiActivity extends Activity { String networkType = intent.getStringExtra(Intents.WifiConnect.TYPE); // TODO(vikrama): Error checking here, to ensure ssid exists. - NetworkType networkT = null; + NetworkType networkT; if (networkType.contains("WPA")) { networkT = NetworkType.NETWORK_WPA; - } - else if (networkType.contains("WEP")) { + } else if (networkType.contains("WEP")) { networkT = NetworkType.NETWORK_WEP; - } - else { + } else { // Got an incorrect network type finish(); return; } setContentView(R.layout.network); - statusT = (TextView) findViewById(R.id.networkStatus); + statusView = (TextView) findViewById(R.id.networkStatus); // This is not available before onCreate - mWifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); + wifiManager = (WifiManager) this.getSystemService(WIFI_SERVICE); // So we know when the network changes - rec = new ConnectedReceiver(this); - registerReceiver(rec, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); + connectedReceiver = new ConnectedReceiver(this, statusView); + registerReceiver(connectedReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); - if (password == null) + if (password == null) { password = ""; - if (debug) { - Log.d(tag, "adding new configuration: \nSSID: " + ssid + "\nPassword: \"" + password + "\"\nType: " + networkT); } + Log.d(TAG, "Adding new configuration: \nSSID: " + ssid + "Type: " + networkT); NetworkSetting setting = new NetworkSetting(ssid, password, networkT); changeNetwork(setting); } @Override protected void onDestroy() { + if (connectedReceiver != null) { + unregisterReceiver(connectedReceiver); + connectedReceiver = null; + } super.onDestroy(); - if (rec != null) - unregisterReceiver(rec); - rec = null; } /** * Update the network: either create a new network or modify an existing network - * @param config: the new network configuration - * @param disableOthers: true if other networks must be disabled + * @param config the new network configuration + * @param disableOthers true if other networks must be disabled * @return network ID of the connected network. */ private int updateNetwork(WifiConfiguration config, boolean disableOthers){ - WifiConfiguration existing = findNetworkInExistingConfig(config.SSID); int networkId; - if (existing == null){ - statusT.setText("Creating network..."); - networkId = mWifiManager.addNetwork(config); + if (findNetworkInExistingConfig(config.SSID) == null){ + statusView.setText("Creating network..."); + networkId = wifiManager.addNetwork(config); } else { - statusT.setText("Modifying network..."); - networkId = mWifiManager.updateNetwork(config); - } - if (networkId == -1){ - return networkId; + statusView.setText("Modifying network..."); + networkId = wifiManager.updateNetwork(config); } - if (!mWifiManager.enableNetwork(networkId, disableOthers)) { + if (networkId == -1 || !wifiManager.enableNetwork(networkId, disableOthers)) { return -1; } - mWifiManager.saveConfiguration(); + wifiManager.saveConfiguration(); return networkId; } } \ No newline at end of file -- 2.20.1