@@ -11,18 +11,15 @@ import android.os.Bundle
1111import android.os.Handler
1212import android.os.Looper
1313import android.util.Log
14+ import java.net.InetAddress
1415
1516internal class NetworkXManager constructor(
1617 private val application : Application ,
1718 private val isSpeedMeterEnabled : Boolean
1819) {
1920 // Callback for activity lifecycle for this specific application
2021 private val activityCallback = object : Application .ActivityLifecycleCallbacks {
21- override fun onActivityCreated (activity : Activity , savedInstanceState : Bundle ? ) {}
22-
23- override fun onActivityStarted (activity : Activity ) {}
24-
25- override fun onActivityResumed (activity : Activity ) {
22+ override fun onActivityCreated (activity : Activity , savedInstanceState : Bundle ? ) {
2623 try {
2724 getConnectivityManager(application).apply {
2825 registerNetworkCallback(
@@ -31,36 +28,40 @@ internal class NetworkXManager constructor(
3128 )
3229 if (isSpeedMeterEnabled) {
3330 enabledSpeedMeter()
34- logThis(" onActivityResumed : speed meter enabled" )
31+ logThis(" onActivityCreated : speed meter enabled" )
3532 }
36- logThis(" onActivityResumed : listener registered" )
33+ logThis(" onActivityCreated : listener registered" )
3734 }
3835 } catch (e: Exception ) {
3936 e.printStackTrace()
4037 logThis(e.message)
4138 }
4239 }
4340
44- override fun onActivityPaused (activity : Activity ) {
41+ override fun onActivityStarted (activity : Activity ) {}
42+
43+ override fun onActivityResumed (activity : Activity ) {}
44+
45+ override fun onActivityPaused (activity : Activity ) {}
46+
47+ override fun onActivityStopped (activity : Activity ) {}
48+
49+ override fun onActivitySaveInstanceState (activity : Activity , outState : Bundle ) {}
50+
51+ override fun onActivityDestroyed (activity : Activity ) {
4552 try {
4653 getConnectivityManager(application).unregisterNetworkCallback(getNetworkCallBack)
47- logThis(" onActivityPaused : listener unregistered" )
54+ logThis(" onActivityDestroyed : listener unregistered" )
4855 if (isSpeedMeterEnabled) {
4956 disableSpeedMeter()
50- logThis(" onActivityResumed : speed meter disabled" )
57+ logThis(" onActivityDestroyed : speed meter disabled" )
5158 }
5259 } catch (e: Exception ) {
5360 e.printStackTrace()
5461 logThis(e.message)
5562 }
5663 }
5764
58- override fun onActivityStopped (activity : Activity ) {}
59-
60- override fun onActivitySaveInstanceState (activity : Activity , outState : Bundle ) {}
61-
62- override fun onActivityDestroyed (activity : Activity ) {}
63-
6465 }
6566
6667 @Volatile
@@ -114,11 +115,28 @@ internal class NetworkXManager constructor(
114115 .build()
115116 }
116117
118+ private fun isInternetAvailable (): Boolean {
119+ return try {
120+ return ! InetAddress .getByName(" google.com" ).equals(" " )
121+ } catch (e: java.lang.Exception ) {
122+ false
123+ }
124+ }
125+
126+ private fun updateInternetConnectionStatus () {
127+ try {
128+ NetworkXProvider .setConnection(isInternetAvailable())
129+ } catch (e: Exception ) {
130+ NetworkXProvider .setConnection(false )
131+ }
132+ }
133+
117134 // Callback to get notified about network availability
118135 private val getNetworkCallBack = object : ConnectivityManager .NetworkCallback () {
119136 override fun onAvailable (network : Network ) {
120137 super .onAvailable(network)
121- NetworkXProvider .setConnection(true )
138+ /* NetworkXProvider.setConnection(true)*/
139+ updateInternetConnectionStatus()
122140 }
123141
124142 override fun onLost (network : Network ) {
0 commit comments