From: Jaehong Jo Date: Mon, 6 Feb 2017 10:14:48 +0000 (+0900) Subject: Check initialized and Changed logic of IP connect state check. X-Git-Tag: 1.3.0~665 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=69530ea57b0267a19d3a1192977d97d30d11449e;p=platform%2Fupstream%2Fiotivity.git Check initialized and Changed logic of IP connect state check. getNetworkInfo was deprecated in API level 23. So changed to getActiveNetworkInfo() API. Change-Id: I72942758ecf3576d79bb889f168569a24967b1dd Signed-off-by: Jaehong Jo Reviewed-on: https://gerrit.iotivity.org/gerrit/17069 Tested-by: jenkins-iotivity Reviewed-by: jihwan seo Reviewed-by: Ashok Babu Channa --- diff --git a/java/iotivity-android/src/main/java/org/iotivity/ca/CaBtPairingInterface.java b/java/iotivity-android/src/main/java/org/iotivity/ca/CaBtPairingInterface.java index e06d574..5811afd 100644 --- a/java/iotivity-android/src/main/java/org/iotivity/ca/CaBtPairingInterface.java +++ b/java/iotivity-android/src/main/java/org/iotivity/ca/CaBtPairingInterface.java @@ -29,12 +29,16 @@ import android.content.IntentFilter; public class CaBtPairingInterface { private static Context mContext; + private static volatile boolean isBtInitialized = false; private CaBtPairingInterface(Context context) { synchronized(CaBtPairingInterface.class) { mContext = context; } - registerIntentFilter(); + if (!isBtInitialized) { + registerIntentFilter(); + isBtInitialized = true; + } } private static IntentFilter registerIntentFilter() { @@ -47,7 +51,10 @@ public class CaBtPairingInterface { } public static void destroyEdrInterface() { - mContext.unregisterReceiver(mReceiver); + if (isBtInitialized) { + mContext.unregisterReceiver(mReceiver); + isBtInitialized = false; + } } private native static void oicEdrStateChangedCallback(int state); diff --git a/java/iotivity-android/src/main/java/org/iotivity/ca/CaEdrInterface.java b/java/iotivity-android/src/main/java/org/iotivity/ca/CaEdrInterface.java index aaf8bc6..067dbf3 100644 --- a/java/iotivity-android/src/main/java/org/iotivity/ca/CaEdrInterface.java +++ b/java/iotivity-android/src/main/java/org/iotivity/ca/CaEdrInterface.java @@ -30,12 +30,16 @@ import android.util.Log; public class CaEdrInterface { private static Context mContext; + private static volatile boolean isEdrInitialized = false; private CaEdrInterface(Context context) { synchronized(CaEdrInterface.class) { mContext = context; } - registerIntentFilter(); + if (!isEdrInitialized) { + registerIntentFilter(); + isEdrInitialized = true; + } } private static IntentFilter registerIntentFilter() { @@ -48,7 +52,10 @@ public class CaEdrInterface { } public static void destroyEdrInterface() { - mContext.unregisterReceiver(mReceiver); + if (isEdrInitialized) { + mContext.unregisterReceiver(mReceiver); + isEdrInitialized = false; + } } // Network Monitor diff --git a/java/iotivity-android/src/main/java/org/iotivity/ca/CaIpInterface.java b/java/iotivity-android/src/main/java/org/iotivity/ca/CaIpInterface.java index a747953..be00712 100644 --- a/java/iotivity-android/src/main/java/org/iotivity/ca/CaIpInterface.java +++ b/java/iotivity-android/src/main/java/org/iotivity/ca/CaIpInterface.java @@ -26,87 +26,52 @@ import android.content.Intent; import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.NetworkInfo; -import android.net.wifi.WifiManager; import android.util.Log; public class CaIpInterface { private static Context mContext; - - public enum WifiAPState{ - WIFI_AP_STATE_DISABLING (10), - WIFI_AP_STATE_DISABLED (11), - WIFI_AP_STATE_ENABLING (12), - WIFI_AP_STATE_ENABLED (13), - WIFI_AP_STATE_FAILED (14) - ; // semicolon needed when fields / methods follow - - - private final int apstate; - - WifiAPState(int apstate) - { - this.apstate = apstate; - } - public int getIntValue() { - return this.apstate; - } - } + private static volatile boolean isIpInitialized = false; + private static String TAG = "OIC_IP_CB_INTERFACE"; private CaIpInterface(Context context) { synchronized(CaIpInterface.class) { mContext = context; } - registerIpStateReceiver(); + if (!isIpInitialized) { + registerIpStateReceiver(); + isIpInitialized = true; + } } private void registerIpStateReceiver() { IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); - intentFilter.addAction("android.net.wifi.WIFI_AP_STATE_CHANGED"); mContext.registerReceiver(mReceiver, intentFilter); } public static void destroyIpInterface() { - mContext.unregisterReceiver(mReceiver); + if (isIpInitialized) { + mContext.unregisterReceiver(mReceiver); + isIpInitialized = false; + } } private static BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) { - ConnectivityManager manager = (ConnectivityManager) - mContext.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo wifiInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - NetworkInfo mobileInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); - - if (mobileInfo != null && mobileInfo.isConnected() || wifiInfo.isConnected()) { + NetworkInfo activeNetwork = ((ConnectivityManager) mContext + .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo(); + if (activeNetwork != null && activeNetwork.isConnected()) { + Log.d(TAG, "CONNECTIVITY_ACTION - activeNetwork: " + + activeNetwork.getTypeName()); caIpStateEnabled(); } else { + Log.d(TAG, "CONNECTIVITY_ACTION - activeNetwork: NONE"); caIpStateDisabled(); } } - - if (intent.getAction().equals("android.net.wifi.WIFI_AP_STATE_CHANGED")) { - if (intent.getIntExtra("wifi_state", - WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue()) - == WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue()) - { - caIpStateDisabled(); - }else if(intent.getIntExtra("wifi_state", - WifiAPState.WIFI_AP_STATE_DISABLED.getIntValue()) - == WifiAPState.WIFI_AP_STATE_ENABLED.getIntValue()) - { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - caIpStateEnabled(); - } - } } }; diff --git a/java/iotivity-android/src/main/java/org/iotivity/ca/CaLeClientInterface.java b/java/iotivity-android/src/main/java/org/iotivity/ca/CaLeClientInterface.java index 3984992..c3f5262 100644 --- a/java/iotivity-android/src/main/java/org/iotivity/ca/CaLeClientInterface.java +++ b/java/iotivity-android/src/main/java/org/iotivity/ca/CaLeClientInterface.java @@ -43,6 +43,7 @@ public class CaLeClientInterface { private static String SERVICE_UUID = "ADE3D529-C784-4F63-A987-EB69F70EE816"; private static String TAG = "OIC_LE_CB_INTERFACE"; private static Context mContext; + private static volatile boolean isLeClientInitialized = false; private CaLeClientInterface(Context context) { caLeRegisterLeScanCallback(mLeScanCallback); @@ -50,7 +51,10 @@ public class CaLeClientInterface { synchronized(CaLeClientInterface.class) { mContext = context; } - registerIntentFilter(); + if (!isLeClientInitialized) { + registerIntentFilter(); + isLeClientInitialized = true; + } } @@ -72,7 +76,10 @@ public class CaLeClientInterface { } public static void destroyLeInterface() { - mContext.unregisterReceiver(mReceiver); + if (isLeClientInitialized) { + mContext.unregisterReceiver(mReceiver); + isLeClientInitialized = false; + } } private native static void caLeRegisterLeScanCallback(BluetoothAdapter.LeScanCallback callback);