Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -206,14 +206,13 @@ protected void onResume() {
Log.i(TAG, "onResume - user NOT logged in, so avoiding launching services.");
return;
}



Log.i(TAG, "onResume - user logged in, so launching services.");
startServices();
LocalBroadcastManager.getInstance(this).registerReceiver(exitMessageReceiver, new IntentFilter("EXIT"));
LocalBroadcastManager.getInstance(this).registerReceiver(switchToMapReceiver, new IntentFilter("GO-TO-MAP"));
LocalBroadcastManager.getInstance(this).registerReceiver(serverMessageReceiver, new IntentFilter("MESSAGE"));

LocalBroadcastManager.getInstance(this).registerReceiver(switchToSignUpReceiver, new IntentFilter("SIGN-UP"));

Log.i(TAG, "onResume - check if dashboard is null");
if (MainApplication.dashboard == null) {
Expand Down Expand Up @@ -343,6 +342,7 @@ protected void onPause() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(switchToMapReceiver);
LocalBroadcastManager.getInstance(this).unregisterReceiver(exitMessageReceiver);
LocalBroadcastManager.getInstance(this).unregisterReceiver(serverMessageReceiver);
LocalBroadcastManager.getInstance(this).unregisterReceiver(switchToSignUpReceiver);
super.onPause();
//Set location update accuracy to low if the service has been initialized
if (mBoundLocationService != null) {
Expand Down Expand Up @@ -688,6 +688,29 @@ public void onClick(DialogInterface dialog, int which) {
}
};

private BroadcastReceiver switchToSignUpReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "switchToSignUp onReceive");

AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(getString(R.string.app_name));
String message = intent.getStringExtra("message");
alertDialog.setMessage(message)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
logoutSilent();
}
})
.setCancelable(false);
alertDialog.show();

signUserIn();
}
};

private BroadcastReceiver switchToMapReceiver = new BroadcastReceiver() {

Expand Down Expand Up @@ -728,6 +751,24 @@ public void onClick(DialogInterface dialog, int which){
.show();
}

public void logoutSilent(){
final MainActivity main = this;
PreferenceUtils.setString(main, PreferenceUtils.KEY_USER_ACCOUNT, null);
PreferenceUtils.setString(main, PreferenceUtils.KEY_USER_ID, null);
PreferenceUtils.setString(main, PreferenceUtils.KEY_AUTH_TOKEN, null);
PreferenceUtils.setString(main, PreferenceUtils.KEY_CONTACTS, null);
PreferenceUtils.setString(main, PreferenceUtils.KEY_DASHBOARD, null);
PreferenceUtils.setString(main, PreferenceUtils.KEY_LOCAL_CONTACTS, null);
PreferenceUtils.setString(main, PreferenceUtils.KEY_PLACES, null);
MainApplication.user = null;
MainApplication.dashboard = null;
MainApplication.contacts = null;
MainApplication.places = null;
MainApplication.firstTimeZoom = true;
//Restart main activity to clear state
main.recreate();
}

public void setPhoneContacts(List<Contact> phoneContacts) {
this.phoneContacts = phoneContacts;
AddContactsFragment acf = new AddContactsFragment(this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,17 +70,33 @@ public void callback(String url, JSONObject json, AjaxStatus status) {
Intent intent = new Intent("EXIT");
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);

} else if (status.getCode() == 404) {
Log.e(TAG, "User does not exist. Must sign up again.");
String message = "Your account has expired. Please sign up again.";
Intent intent = new Intent("SIGN-UP");
intent.putExtra("message", message);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
} else if (json != null) {
Log.d(TAG, "json returned: " + json);
try {
if (json.has("serverMessage"))
if (json.has("outOfDateVersionMessage"))
{
String message = json.get("serverMessage").toString();
String message = json.get("outOfDateVersionMessage").toString();
Intent intent = new Intent("MESSAGE");
intent.putExtra("message", message);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
return;
}

if (json.has("accountExpiredMessage"))
{
String message = json.get("accountExpiredMessage").toString();
Intent intent = new Intent("SIGN-UP");
intent.putExtra("message", message);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
return;
}

MainApplication.dashboard = JsonUtils.createFromJson(json.toString(), MainApplication.Dashboard.class);
PreferenceUtils.setString(context, PreferenceUtils.KEY_DASHBOARD, JsonUtils.serialize(MainApplication.dashboard));
MainApplication.user.setLocation(MainApplication.dashboard.getLocation());
Expand Down