netWatch
netWatch copied to clipboard
Simple Android library to notify Android device network changes and react properly.
netWatch 
Simple Android library to notify Android device network changes and react properly.
Preview GIF

Features:
- Detects internet connection changes(Connect / Disconnect)
- Alerts user via a customizable status-bar notification message on connection loos / hides it on connection regain
- Asks for a direct connection(Ping) to a reliable CDN(changeable IP address) to make sure user connected to internet
- Checks connectivity periodically (duration calculated automatically)
- Handles app close and open states
- Changeable messages and drawables
Installation
Step 1. Add this in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.draxdave:netWatch:0.d.6'
}
Step 3. Register NetWatch
Add below code inside base activity or Application class
NetWatch.builder(activity)
.setIcon(R.drawable.ic_signal_wifi_off)
.setCallBack(new NetworkChangeReceiver_navigator() {
@Override
public void onConnected(int source) {
// do some thing
}
@Override
public View onDisconnected() {
// do some other stuff
return null;//To display a dialog simply return a custom view or just null to ignore it
}
})
.setNotificationCancelable(false)
.build();
Available options
-
setIcon : Statusbar notification drawable graphic
-
setCallBack : onConnect and onDisconnect callbacks
-
setMessage : Statusbar notification message
-
setNotificationCancelable : Statusbar notification cancelable
-
setNotificationEnabled : Show statusbar notification on disconnect from internet
-
setNotificationBuilder : Create your own statusbar notification to show
-
unregister : disable NetWatch
-
isConnected : get latest internet connection status
-
And ...
Extra configs
Target server IP address
Add following line inside string.xml file :
<string name="netwatch_target_ping_server_ip_add">8.8.8.8</string>
Disconnect message text
Add following line inside string.xml file :
<string name="netwatch_lost_connection">No internet connection</string>
Final speech
Feel free to engage!
This tiny library have a lot to do obviously . So help it if you liked it.
There is always better solutions and libraries so search more and you'll found a better code.
Correct my mistakes and rewrite them in case you found some thing better or a more convenient way to handle issues.