Style-related changes
authorsrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Tue, 15 Jun 2010 16:25:24 +0000 (16:25 +0000)
committersrowen <srowen@59b500cc-1b3d-0410-9834-0bbf25fbcc57>
Tue, 15 Jun 2010 16:25:24 +0000 (16:25 +0000)
git-svn-id: http://zxing.googlecode.com/svn/trunk@1428 59b500cc-1b3d-0410-9834-0bbf25fbcc57

android/res/layout/network.xml
android/src/com/google/zxing/client/android/wifi/ConnectedReceiver.java [new file with mode: 0644]
android/src/com/google/zxing/client/android/wifi/Killer.java
android/src/com/google/zxing/client/android/wifi/NetworkSetting.java
android/src/com/google/zxing/client/android/wifi/NetworkUtil.java
android/src/com/google/zxing/client/android/wifi/WifiActivity.java

index 8ca7665..1fbe63d 100644 (file)
@@ -1,14 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-       android:orientation="vertical" android:layout_width="fill_parent"
-       android:layout_height="fill_parent">
-<!--   <ImageView android:id="@+id/imageStatus"-->
-<!--           android:layout_width="wrap_content" android:layout_height="wrap_content"-->
-<!--           android:layout_gravity="center_horizontal" android:padding="10dip"-->
-<!--           android:src="@drawable/up" />-->
-               
-                       <TextView android:layout_width="wrap_content"
-               android:layout_height="wrap_content" android:id="@+id/networkStatus"
-               android:text="Status" android:textSize="20dip"  android:padding="8dip"
-               android:layout_gravity="center_horizontal|bottom" />
+  android:orientation="vertical" android:layout_width="fill_parent"
+  android:layout_height="fill_parent">
+  <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:id="@+id/networkStatus"
+      android:text="Status" android:textSize="20dip"
+      android:padding="8dip"
+      android:layout_gravity="center_horizontal|bottom" />
 </LinearLayout>
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 (file)
index 0000000..542169e
--- /dev/null
@@ -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();
+          }
+        }
+      }
+    }
+  }
+}
index 8eba9cc..dcb8955 100644 (file)
@@ -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);
   }
 }
index 955088e..ddef685 100644 (file)
 
 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<String> 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
index 0fbad03..9a84d43 100644 (file)
@@ -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);
+  }
+
 }
index ae8dc64..82f43a3 100644 (file)
@@ -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 <WifiConfiguration> existingConfigs = mWifiManager.getConfiguredNetworks();
-    for (int i = 0; i < existingConfigs.size(); i++){
-      if (existingConfigs.get(i).SSID.compareTo(ssid) == 0){
-        return existingConfigs.get(i);
+    List <WifiConfiguration> 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