/** * */ package org.commcare.dalvik.activities; import org.javarosa.core.services.locale.Localization; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; /** * @author ctsims * */ public class UnrecoverableErrorActivity extends Activity { public static final String EXTRA_ERROR_TITLE = "UnrecoverableErrorActivity_Title"; public static final String EXTRA_ERROR_MESSAGE = "UnrecoverableErrorActivity_Message"; String title; String message; /* * (non-Javadoc) * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); title = this.getIntent().getStringExtra(EXTRA_ERROR_TITLE); message = this.getIntent().getStringExtra(EXTRA_ERROR_MESSAGE); this.showDialog(0); } /* (non-Javadoc) * @see android.app.Activity#onCreateDialog(int) */ @Override protected Dialog onCreateDialog(int id) { AlertDialog mNoStorageDialog = new AlertDialog.Builder(this).create(); mNoStorageDialog.setTitle(title); mNoStorageDialog.setMessage(message + "\n\n" + Localization.get("app.handled.error.explanation")); DialogInterface.OnClickListener noStorageButton = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int i) { Intent intent = new Intent(UnrecoverableErrorActivity.this, CommCareHomeActivity.class); //Make sure that the new stack starts with a home activity, and clear everything between. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); UnrecoverableErrorActivity.this.startActivity(intent); UnrecoverableErrorActivity.this.moveTaskToBack(true); System.runFinalizersOnExit(true); System.exit(0); } }; mNoStorageDialog.setCancelable(false); mNoStorageDialog.setButton(Localization.get("app.storage.missing.button"), noStorageButton); return mNoStorageDialog; } }