I am just trying to convert my blog into an app. Everything goes well but i got stuck at one point. When there is no internet available it shows the custom message but it happens only when the app is launched. I mean when i turn off the wifi / mobile net after launching the app it displays "Web page not available" and my URL.
My code is:
public class MainActivity extends AppCompatActivity {
WebView webView;
RelativeLayout relativeLayout;
Button btnNoInternetConnection;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.myWebView);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
btnNoInternetConnection = (Button) findViewById(R.id.btnNoConnection);
relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
checkConnection();
btnNoInternetConnection.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checkConnection();
}
});
}
@Override
public void onBackPressed() {
final WebView WebView = webView;
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
public void checkConnection() {
ConnectivityManager connectivityManager = (ConnectivityManager)
this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobileNetwork = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isConnected()) {
webView.loadUrl("http://www.abc.blogspot.com");
webView.setVisibility(View.VISIBLE);
relativeLayout.setVisibility(View.GONE);
} else if (mobileNetwork.isConnected()) {
webView.loadUrl("http://www.abc.blogspot.com");
webView.setVisibility(View.VISIBLE);
relativeLayout.setVisibility(View.GONE);
} else {
webView.setVisibility(View.GONE);
relativeLayout.setVisibility(View.VISIBLE);
}
}
}