package com.twormobile.itrackmygps; import android.app.Activity; import android.app.AlertDialog; import android.app.Application; import android.content.Context; import android.content.SharedPreferences; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Environment; import android.preference.PreferenceManager; import android.widget.Toast; import com.twormobile.itrackmygps.android.Log; import android.widget.EditText; import com.twormobile.itrackmygps.android.DialogBoxFactory; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.nio.channels.FileChannel; public class GpsLoggerApplication extends Application { private static final String TAG = GpsLoggerApplication.class.getSimpleName(); public static String LOCATION_NEW_URL; public static String REGISTER_URL; public static String LOGIN_URL; private DeviceUUIDFactory uuidFactory; private String deviceId; private GpsManager gpsManager; private boolean bServiceEnabled; private SharedPreferences prefs; private boolean bLoggedIn = false; private String username; @Override public void onCreate() { setURLs(); prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); checkUser(); Log.i(TAG, "onCreated"); uuidFactory = new DeviceUUIDFactory(getApplicationContext()); deviceId = uuidFactory.getDeviceUuid().toString(); gpsManager = GpsManager.get(getApplicationContext()); bServiceEnabled = false; //exportDB(); } @Override public void onTerminate(){ Log.i(TAG, "onTerminated"); } public GpsManager getGpsManager() { return gpsManager; } public boolean isON(){ return bServiceEnabled; } public void setON(boolean b){ bServiceEnabled = b; } public String getUUID(){ return deviceId; } public void setURLs(){ LOCATION_NEW_URL = getResources().getString(R.string.NEW_LOCATION_URL); REGISTER_URL = getResources().getString(R.string.REGISTER_URL); LOGIN_URL = getResources().getString(R.string.LOGIN_URL); } public boolean isLoggedIn() { return bLoggedIn; } public String getUsername() { return username; } private void checkUser() { username = prefs.getString("username", null); if(username == null) { bLoggedIn = false; } else { bLoggedIn = true; } } public void showDialog(String title, String message, Activity activity){ AlertDialog dialog = DialogBoxFactory.setDialog(title, message, activity); dialog.show(); } public void showToast(String message){ Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show(); } public void setLoggedIn(String u){ username = u; bLoggedIn = true; } public boolean isUsernameValid(EditText etxt, Activity activity){ boolean valid = false; String value = String.valueOf(etxt.getText()); if(value != null && value.trim().length() > 0) { int length = value.trim().length(); if(length >= 6 && length <= 16) { valid = true; } } if(!valid){ String message = getResources().getString(R.string.invalid_username); showDialog("Error", message, activity); } return valid; } public boolean isEmailValid(EditText etxt, Activity activity){ boolean valid = false; String value = String.valueOf(etxt.getText()); if(value != null && value.trim().length() > 0) { valid = true; } if(!valid){ String message = getResources().getString(R.string.invalid_email); showDialog("Error", message, activity); } return valid; } public boolean isPasswordValid(EditText etxt, Activity activity){ boolean valid = true; String password = String.valueOf(etxt.getText()); if(password.isEmpty() || password.length() < 8){ valid = false; } if(!valid){ String message = getResources().getString(R.string.invalid_password); showDialog("Error", message, activity); } return valid; } public void saveLogin(String username, String email, String pin){ final String uuid = getUUID(); Context context = getApplicationContext(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences.Editor editor = prefs.edit(); editor.putString("username", username); editor.putString("email", email); editor.putString("uuid", uuid); editor.putString("pin", pin); editor.commit(); setLoggedIn(username); } public boolean isWiFiConnected() { ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = null; if (connectivityManager != null) { networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); } return networkInfo == null ? false : networkInfo.isConnected(); } private void exportDB(){ File sd = Environment.getExternalStorageDirectory(); File data = Environment.getDataDirectory(); FileChannel source=null; FileChannel destination=null; String currentDBPath = "/data/"+ "com.twormobile.itrackmygps/databases/" + LocationDatabaseHelper.DB_NAME; String backupDBPath = LocationDatabaseHelper.DB_NAME; File currentDB = new File(data, currentDBPath); File backupDB = new File(sd, backupDBPath); try { source = new FileInputStream(currentDB).getChannel(); destination = new FileOutputStream(backupDB).getChannel(); destination.transferFrom(source, 0, source.size()); source.close(); destination.close(); Log.d(TAG, "DB Exported!"); } catch(Exception e) { Log.d(TAG, "DB Export Fail " + e.getMessage()); e.printStackTrace(); } } }