private void handleCommand(Intent intent) { Task task = TaskHelper.getTaskFromIntent(intent); if (task == null) return; if (intent.getAction() == TASK_DONE) { task.setDone(true); task.safeSave(); Toast.makeText( this, getString(R.string.reminder_notification_done_confirm), Toast.LENGTH_LONG) .show(); } else if (intent.getAction() == TASK_LATER && !task.hasRecurringReminder()) { GregorianCalendar reminder = new GregorianCalendar(); int addMinutes = MirakelCommonPreferences.getAlarmLater(); reminder.add(Calendar.MINUTE, addMinutes); task.setReminder(reminder); task.safeSave(); Toast.makeText( this, getString(R.string.reminder_notification_later_confirm, addMinutes), Toast.LENGTH_LONG) .show(); } ReminderAlarm.closeNotificationFor(this, task.getId()); ReminderAlarm.updateAlarms(this); stopSelf(); }
public static void undoLast() { String last = MirakelCommonPreferences.getFromLog(0); if (last != null && !last.equals("")) { short type = Short.parseShort(last.charAt(0) + ""); if (last.charAt(1) != '{') { try { long id = Long.parseLong(last.substring(1)); switch (type) { case TASK: Task.get(id).destroy(true); break; case LIST: ListMirakel.getList((int) id).destroy(true); break; default: Log.wtf(TAG, "unkown Type"); break; } } catch (Exception e) { Log.e(TAG, "cannot parse String"); } } else { JsonObject json = new JsonParser().parse(last.substring(1)).getAsJsonObject(); switch (type) { case TASK: Task t = Task.parse_json(json, AccountMirakel.getLocal(), false); if (Task.get(t.getId()) != null) { t.safeSave(false); } else { try { MirakelContentProvider.getWritableDatabase() .insert(Task.TABLE, null, t.getContentValues()); } catch (Exception e) { Log.e(TAG, "cannot restore Task"); } } break; case LIST: ListMirakel l = ListMirakel.parseJson(json); if (ListMirakel.getList(l.getId()) != null) { l.save(false); } else { try { MirakelContentProvider.getWritableDatabase() .insert(ListMirakel.TABLE, null, l.getContentValues()); } catch (Exception e) { Log.e(TAG, "cannot restore List"); } } break; default: Log.wtf(TAG, "unkown Type"); break; } } } SharedPreferences.Editor editor = MirakelCommonPreferences.getEditor(); for (int i = 0; i < MirakelCommonPreferences.getUndoNumber(); i++) { String old = MirakelCommonPreferences.getFromLog(i + 1); editor.putString(UNDO + i, old); } editor.putString(UNDO + 10, ""); editor.commit(); }