package com.biznow.ordernow; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.KeyEvent; import com.biznow.ordernow.R; import com.biznow.ordernow.fragments.LoginFragment; import com.parse.ParseAnalytics; import com.parse.ParseInstallation; public class MainActivity extends FragmentActivity { private LoginFragment loginFragment; @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Check for Internet Connectivity, Block Application Access if the Internet Connection is not available if (!isNetworkAvailable()) { openFailedInternetConnectionAlertDialog(savedInstanceState); } else { initiateLoginFragment(savedInstanceState); } } private void initiateLoginFragment(final Bundle savedInstanceState) { if (savedInstanceState == null) { loginFragment = new LoginFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, loginFragment).commit(); } else { loginFragment = (LoginFragment) getSupportFragmentManager().findFragmentById(android.R.id.content); } ParseInstallation.getCurrentInstallation().saveInBackground(); ParseAnalytics.trackAppOpened(getIntent()); } private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); return activeNetworkInfo != null && activeNetworkInfo.isConnected(); } private void openFailedInternetConnectionAlertDialog(final Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Internet Connection Unavailable!"); builder.setMessage("Please check your connection and try again"); builder.setCancelable(false); builder.setPositiveButton(R.string.retry, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if(!isNetworkAvailable()){ openFailedInternetConnectionAlertDialog(savedInstanceState); } else { initiateLoginFragment(savedInstanceState); } } }); builder.setNegativeButton(R.string.cancel, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }); AlertDialog alert = builder.create(); alert.setOnKeyListener(new Dialog.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { finish(); dialog.dismiss(); } return true; } }); alert.show(); } }