import
android.content.Context;
import
android.content.IntentFilter;
import
android.graphics.Color;
import
android.net.ConnectivityManager;
import
android.net.NetworkInfo;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.Button;
import
android.widget.TextView;
import
androidx.appcompat.app.AppCompatActivity;
import
com.google.android.material.snackbar.Snackbar;
public
class
MainActivity
extends
AppCompatActivity
implements
ConnectionReceiver.ReceiverListener {
Button btn_check;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_check = findViewById(R.id.btn_check);
checkConnection();
btn_check.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View view) {
checkConnection();
}
});
}
private
void
checkConnection() {
IntentFilter intentFilter =
new
IntentFilter();
intentFilter.addAction(
"android.new.conn.CONNECTIVITY_CHANGE"
);
registerReceiver(
new
ConnectionReceiver(), intentFilter);
ConnectionReceiver.Listener =
this
;
ConnectivityManager manager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
boolean
isConnected = networkInfo !=
null
&& networkInfo.isConnectedOrConnecting();
showSnackBar(isConnected);
}
private
void
showSnackBar(
boolean
isConnected) {
String message;
int
color;
if
(isConnected) {
message =
"Connected to Internet"
;
color = Color.WHITE;
}
else
{
message =
"Not Connected to Internet"
;
color = Color.RED;
}
Snackbar snackbar = Snackbar.make(findViewById(R.id.btn_check), message, Snackbar.LENGTH_LONG);
View view = snackbar.getView();
TextView textView = view.findViewById(R.id.snackbar_text);
textView.setTextColor(color);
snackbar.show();
}
@Override
public
void
onNetworkChange(
boolean
isConnected) {
showSnackBar(isConnected);
}
@Override
protected
void
onResume() {
super
.onResume();
checkConnection();
}
@Override
protected
void
onPause() {
super
.onPause();
checkConnection();
}
}