private void startPanic() { try { _prefs = new Preferences(PanicConstants.PANIC_PREFS_DB); String recipients = _prefs.get(PanicConstants.PREFS_KEY_RECIPIENT); if (recipients == null) { showMessage("Please run the 'Panic! Config' app first to enter your alert information."); _tbMain.removeCommand(_cmdCancel); _tbMain.addCommand(_cmdExit); } else { _keepPanicing = true; // startSmsServer(); _thread = new Thread(this); _thread.start(); } } catch (RecordStoreException e) { Logger.error(PanicConstants.TAG, "error access preferences", e); showAlert( l10n.getString(L10nConstants.keys.PANIC_TITLE_ERROR), l10n.getString(L10nConstants.keys.PANIC_ERROR_PREFS), null); } }
private void showMessage(String msg) { Logger.debug(PanicConstants.TAG, "msg: " + msg); if (_display.getCurrent() == _tbMain) { try { _tbMain.setString(msg); } catch (Exception e) { e.printStackTrace(); } } else if (_display.getCurrent() == _lsCanvas) { _lsCanvas.setLargeString(msg); } }
public void wipingFileError(String path, String msg) { showMessage("ERROR wiping: " + path); Logger.debug(PanicConstants.TAG, "wiping error: " + path + ": " + msg); }
public void wipingFileSuccess(String path) { showMessage("wiping: " + path); Logger.debug(PanicConstants.TAG, "wiping: " + path); }
public void run() { ShoutController sControl = new ShoutController(); Logger.debug(PanicConstants.TAG, "starting panic run(); loading prefs..."); String recipients = _prefs.get(PanicConstants.PREFS_KEY_RECIPIENT); String userName = _prefs.get(PanicConstants.PREFS_KEY_NAME); String userMessage = _prefs.get(PanicConstants.PREFS_KEY_MESSAGE); String userLocation = _prefs.get(PanicConstants.PREFS_KEY_LOCATION); String panicMsg = sControl.buildShoutMessage(userName, userMessage, userLocation); String panicData = sControl.buildShoutData(userName); showMessage("PANIC MESSAGE: " + panicMsg + "\n\npreparing to send..."); doSecPause(5); _lsCanvas = new LargeStringCanvas(""); _lsCanvas.setCommandListener(this); _lsCanvas.addCommand(_cmdCancel); _manager.next(_lsCanvas); for (int i = 5; i > 0; i--) { showMessage("Sending in " + i + "..."); doSecPause(1); } int resendTimeout = PanicConstants.DEFAULT_RESEND_TIMEOUT; // one minute boolean wipeComplete = false; while (_keepPanicing) { try { showMessage("Sending messages..."); sControl.sendSMSShout(recipients, panicMsg, panicData); showMessage("Panic Sent!"); doSecPause(2); } catch (Exception e) { _display.setCurrent(_tbMain); doSecPause(1); showMessage("Error Sending: " + e.toString()); doSecPause(10); } // now that first shout has been sent, time to wipe if (!wipeComplete) { showMessage("Preparing to wipe data..."); WipeController wc = new WipeController(); String prefBool = _prefs.get(PanicConstants.PREFS_KEY_WIPE_CONTACTS); boolean wipeContacts = (prefBool != null && prefBool.equals("true")); prefBool = _prefs.get(PanicConstants.PREFS_KEY_WIPE_EVENTS); boolean wipeEvents = (prefBool != null && prefBool.equals("true")); prefBool = _prefs.get(PanicConstants.PREFS_KEY_WIPE_TODOS); boolean wipeToDos = (prefBool != null && prefBool.equals("true")); prefBool = _prefs.get(PanicConstants.PREFS_KEY_WIPE_PHOTOS); boolean wipePhotos = (prefBool != null && prefBool.equals("true")); prefBool = _prefs.get(PanicConstants.PREFS_KEY_WIPE_VIDEOS); boolean wipeVideos = (prefBool != null && prefBool.equals("true")); prefBool = _prefs.get(PanicConstants.PREFS_KEY_WIPE_ALL_FILES); boolean wipeAllFiles = (prefBool != null && prefBool.equals("true")); doSecPause(1); showMessage("Wiping selected personal data..."); try { wc.wipePIMData(wipeContacts, wipeEvents, wipeToDos); showMessage("Success! Personal data wiped!"); } catch (Exception e) { showMessage("WARNING: There was an error wiping your personal data."); e.printStackTrace(); } doSecPause(3); if (wipePhotos) { showMessage("Wiping all photos..."); try { wc.wipePhotos(this); showMessage("Wiping photos...\nWIPE COMPLETE."); } catch (Exception e) { showMessage("Wiping photos...nERROR. UNABLE TO WIPE PHOTOS."); e.printStackTrace(); } } doSecPause(3); if (wipeVideos) { showMessage("Wiping all videos..."); try { wc.wipePhotos(this); showMessage("Wiping videos...\nWIPE COMPLETE."); } catch (Exception e) { showMessage("Wiping videos...nERROR. UNABLE TO WIPE PHOTOS."); e.printStackTrace(); } } doSecPause(3); if (wipeAllFiles) { showMessage("Wiping all files..."); try { wc.wipeMemoryCard(this); wc.wipeAllRootPaths(this); showMessage("Wiping all files...\nWIPE COMPLETE."); } catch (Exception e) { showMessage("Wiping all photos...\nERROR. UNABLE TO WIPE ALL FILES."); e.printStackTrace(); } } wipeComplete = true; } int secs = resendTimeout / 1000; while (secs > 0) { showMessage("Panic! again in\n" + secs + "secs..."); doSecPause(1); secs--; } // update message with new mobile cid, lac info panicMsg = sControl.buildShoutMessage(userName, userMessage, userLocation); } _manager.next(_tbMain); }