Imported Upstream version 1.0.0
[platform/upstream/iotivity.git] / android / android_api / base / src / main / java / org / iotivity / ca / CaIpInterface.java
index 1e807d1..a011dfe 100644 (file)
@@ -27,10 +27,31 @@ import android.content.IntentFilter;
 import android.net.ConnectivityManager;\r
 import android.net.NetworkInfo;\r
 import android.net.wifi.WifiManager;\r
+import android.util.Log;\r
 \r
 public class CaIpInterface {\r
     private static Context mContext;\r
 \r
+    public enum WifiAPState{\r
+        WIFI_AP_STATE_DISABLING (10),\r
+        WIFI_AP_STATE_DISABLED (11),\r
+        WIFI_AP_STATE_ENABLING (12),\r
+        WIFI_AP_STATE_ENABLED (13),\r
+        WIFI_AP_STATE_FAILED (14)\r
+        ; // semicolon needed when fields / methods follow\r
+\r
+\r
+        private final int apstate;\r
+\r
+        WifiAPState(int apstate)\r
+        {\r
+            this.apstate = apstate;\r
+        }\r
+        public int getIntValue() {\r
+           return this.apstate;\r
+        }\r
+    }\r
+\r
     private CaIpInterface(Context context) {\r
         mContext = context;\r
         registerIpStateReceiver();\r
@@ -40,6 +61,7 @@ public class CaIpInterface {
         IntentFilter intentFilter = new IntentFilter();\r
         intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);\r
         intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);\r
+        intentFilter.addAction("android.net.wifi.WIFI_AP_STATE_CHANGED");\r
 \r
         mContext.registerReceiver(mReceiver, intentFilter);\r
     }\r
@@ -59,6 +81,26 @@ public class CaIpInterface {
                     caIpStateEnabled();\r
                 }\r
             }\r
+\r
+            if (intent.getAction().equals("android.net.wifi.WIFI_AP_STATE_CHANGED")) {\r
+                if (intent.getIntExtra("wifi_state",\r
+                    WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue())\r
+                    == WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue())\r
+                {\r
+                    caIpStateDisabled();\r
+                }else if(intent.getIntExtra("wifi_state",\r
+                    WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue())\r
+                    == WifiAPState.WIFI_AP_STATE_ENABLED.getIntValue())\r
+                {\r
+                    try {\r
+                        Thread.sleep(1000);\r
+                    } catch (InterruptedException e) {\r
+                        // TODO Auto-generated catch block\r
+                        e.printStackTrace();\r
+                    }\r
+                    caIpStateEnabled();\r
+                }\r
+           }\r
         }\r
     };\r
 \r