private static void handleTimeChange(Context context) {
    //		TriggerTypeMap trigMap = new TriggerTypeMap();

    TriggerDB db = new TriggerDB(context);
    db.open();

    Cursor c = db.getAllTriggers();

    if (c.moveToFirst()) {
      do {
        int trigId = c.getInt(c.getColumnIndexOrThrow(TriggerDB.KEY_ID));
        String trigDesc = c.getString(c.getColumnIndexOrThrow(TriggerDB.KEY_TRIG_DESCRIPT));
        //				String trigType = c.getString(
        //				 		   		  c.getColumnIndexOrThrow(TriggerDB.KEY_TRIG_TYPE));
        String actDesc = c.getString(c.getColumnIndexOrThrow(TriggerDB.KEY_TRIG_ACTIVE_DESCRIPT));

        TriggerBase trig = new Blackout(); // trigMap.getTrigger(trigType);
        if (trig != null) {
          TriggerActionDesc aDesc = new TriggerActionDesc();
          // Restart the trigger if it is active
          if (aDesc.loadBoolean(actDesc) && aDesc.getCount() > 0) {
            trig.resetTrigger(context, trigId, trigDesc);
          }
        }
      } while (c.moveToNext());
    }

    c.close();
    db.close();

    // Finally, quietly refresh the notification
    Notifier.refreshNotification(context, true);
  }
  /*
   * A new trigger type must be registered here.
   *
   * In order to disable a type of trigger altogether,
   * the corresponding boolean flag in ..\config\TriggerTypesConfig
   * can be set to false.
   */
  public TriggerTypeMap() {

    mTrigTypeMap = new LinkedHashMap<String, TriggerBase>();

    // Time trigger
    if (TriggerTypesConfig.timeTriggers) {
      TriggerBase timeTrig = new TimeTrigger();
      mTrigTypeMap.put(timeTrig.getTriggerType(), timeTrig);
    }

    // Location trigger
    if (TriggerTypesConfig.locationTriggers) {
      TriggerBase locTrig = new LocationTrigger();
      mTrigTypeMap.put(locTrig.getTriggerType(), locTrig);
    }
  }