Example #1
0
 // Callback used by AlarmTimePickerDialogFragment
 @Override
 public void onDialogTimeSet(Alarm alarm, int hourOfDay, int minute) {
   alarm.hour = hourOfDay;
   alarm.minutes = minute;
   alarm.enabled = true;
   mScrollToAlarmId = alarm.id;
   asyncUpdateAlarm(alarm, true);
 }
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) {
    LogUtils.v("Upgrading alarms database from version %d to %d", oldVersion, currentVersion);

    if (oldVersion <= VERSION_7) {
      // This was not used in VERSION_7 or prior, so we can just drop it.
      db.execSQL("DROP TABLE IF EXISTS " + SELECTED_CITIES_TABLE_NAME + ";");
    }

    if (oldVersion <= VERSION_6) {
      // This was not used in VERSION_6 or prior, so we can just drop it.
      db.execSQL("DROP TABLE IF EXISTS " + INSTANCES_TABLE_NAME + ";");

      // Create new alarms table and copy over the data
      createAlarmsTable(db);
      createInstanceTable(db);

      LogUtils.i("Copying old alarms to new table");
      final String[] OLD_TABLE_COLUMNS = {
        "_id", "hour", "minutes", "daysofweek", "enabled", "vibrate", "message", "alert",
      };
      try (Cursor cursor =
          db.query(OLD_ALARMS_TABLE_NAME, OLD_TABLE_COLUMNS, null, null, null, null, null)) {
        final Calendar currentTime = Calendar.getInstance();
        while (cursor != null && cursor.moveToNext()) {
          final Alarm alarm = new Alarm();
          alarm.id = cursor.getLong(0);
          alarm.hour = cursor.getInt(1);
          alarm.minutes = cursor.getInt(2);
          alarm.daysOfWeek = new DaysOfWeek(cursor.getInt(3));
          alarm.enabled = cursor.getInt(4) == 1;
          alarm.vibrate = cursor.getInt(5) == 1;
          alarm.label = cursor.getString(6);

          final String alertString = cursor.getString(7);
          if ("silent".equals(alertString)) {
            alarm.alert = Alarm.NO_RINGTONE_URI;
          } else {
            alarm.alert = TextUtils.isEmpty(alertString) ? null : Uri.parse(alertString);
          }

          // Save new version of alarm and create alarm instance for it
          db.insert(ALARMS_TABLE_NAME, null, Alarm.createContentValues(alarm));
          if (alarm.enabled) {
            AlarmInstance newInstance = alarm.createInstanceAfter(currentTime);
            db.insert(INSTANCES_TABLE_NAME, null, AlarmInstance.createContentValues(newInstance));
          }
        }
      }

      LogUtils.i("Dropping old alarm table");
      db.execSQL("DROP TABLE IF EXISTS " + OLD_ALARMS_TABLE_NAME + ";");
    }
  }
Example #3
0
  private long saveAlarm() {
    Alarm alarm = new Alarm();
    alarm.id = mId;
    alarm.enabled = mEnabledPref.isChecked();
    alarm.hour = mHour;
    alarm.minutes = mMinutes;
    alarm.daysOfWeek = mRepeatPref.getDaysOfWeek();
    alarm.vibrate = mVibratePref.isChecked();
    alarm.label = mLabel.getText();
    alarm.alert = mAlarmPref.getAlert();

    long time;
    if (alarm.id == -1) {
      time = Alarms.addAlarm(this, alarm);
      // addAlarm populates the alarm with the new id. Update mId so that
      // changes to other preferences update the new alarm.
      mId = alarm.id;
    } else {
      time = Alarms.setAlarm(this, alarm);
    }
    return time;
  }