Exemple #1
0
  public long updatePlans() {
    boolean changeFlag = false;

    SQLManager sqlManager = SQLManager.getInstance();
    if (sqlManager.getVersion() != sqlVersion) {
      sqlVersion = sqlManager.getVersion();

      Cursor c = sqlManager.selectFuturePlan();
      plans.clear();
      if (c.moveToFirst()) {
        do {
          int id = SQLManager.getId(c);
          String title = SQLManager.getTitle(c);
          String text = SQLManager.getText(c);

          boolean remindFlag = false;
          boolean dailyFlag = false;

          int repeat = SQLManager.getRepeat(c);
          if (repeat > 0) {
            remindFlag = true;
          }

          int type = SQLManager.getType(c);
          if (type == Constants.DAILY_TYPE) {
            dailyFlag = true;
          }
          long time = SQLManager.getActualTime(c);

          int period = SQLManager.getPeriod(c);

          Plan p = new Plan(id, title, text, time, remindFlag, dailyFlag, period);
          plans.add(p);
        } while (c.moveToNext());
      }
      changeFlag = true;
    }

    long now = System.currentTimeMillis();
    for (Plan p : plans) {
      long pt = p.getTime();
      long delta = pt - now;
      long newBefore = 0;
      String newBeforeString = "";
      if (delta / Constants.DAY_TIME > 0) {
        long day = delta / Constants.DAY_TIME;
        newBefore = day * Constants.DAY_TIME;
        newBeforeString = "还有" + day + "天";
      } else if (delta / Constants.HOUR_TIME > 0) {
        long hour = delta / Constants.HOUR_TIME;
        newBefore = hour * Constants.HOUR_TIME;
        newBeforeString = "还有" + hour + "小时";
      } else if (delta / Constants.MINUTE_TIME > 0) {
        long minute = delta / Constants.MINUTE_TIME;
        newBefore = minute * Constants.MINUTE_TIME;
        newBeforeString = "还有" + minute + "分钟";
      } else if (delta / Constants.SECOND_TIME > 0) {
        long second = delta / Constants.SECOND_TIME;
        newBefore = second * Constants.SECOND_TIME;
        newBeforeString = "还有" + second + "秒";
      }

      if (p.checkBefore(newBefore)) {
        changeFlag = true;
        p.setBefore(newBefore);
        p.setBeforeString(newBeforeString);
      }
    }

    if (changeFlag) {
      version++;
    }
    return version;
  }