Add (untested) alarm backend
[unical.git] / src / ro / ieval / unical / Utils.java
index df57cda73262ff9f5ac6d13aeb1492cf786b9b0f..e8423478c84b112f02aa1195ce560f3633f5283c 100644 (file)
@@ -5,8 +5,11 @@ import java.util.Locale;
 
 import android.app.AlarmManager;
 import android.app.PendingIntent;
+import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
+import android.database.SQLException;
+import android.database.sqlite.SQLiteDatabase;
 import android.view.View;
 import android.view.ViewGroup;
 
@@ -25,10 +28,34 @@ final class Utils {
        public static String formatDate(final int year, final int month, final int day){
                return String.format(Locale.ENGLISH, "%4d-%02d-%02d", year, month, day);
        }
-       
-       public static void setAlarm(final GregorianCalendar cal, final Context context) {
-               final PendingIntent pi = PendingIntent.getActivity(context, 1234, new Intent(context, AlarmReceiverActivity.class), PendingIntent.FLAG_CANCEL_CURRENT);
-               final AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
-               am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pi);
+
+       public static void addAlarm(final Application application, final long time, final long eventId) throws SQLException{
+               final SQLiteDatabase db = application.alarmOpenHelper.getWritableDatabase();
+               final ContentValues values = new ContentValues(2);
+               values.put(AlarmOpenHelper.TIME, time);
+               values.put(AlarmOpenHelper.EVENT, eventId);
+               db.insertOrThrow(AlarmOpenHelper.TABLE, null, values);
+               setAlarm(application, time, eventId);
+       }
+
+       public static void deleteAlarm(final Application application, final long time) throws SQLException{
+               final SQLiteDatabase db = application.alarmOpenHelper.getWritableDatabase();
+               db.delete(AlarmOpenHelper.TABLE, AlarmOpenHelper.TIME + " = " + time, new String[]{});
+               unsetAlarm(application, time);
+       }
+
+       public static void setAlarm(final Context context, final long time, final long eventId){
+               final Intent intent = new Intent(context, AlarmReceiverActivity.class);
+               intent.setAction(Long.toString(time));
+               intent.putExtra(AlarmReceiverActivity.EXTRA_EVENT, eventId);
+               final AlarmManager man = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+               man.set(AlarmManager.RTC_WAKEUP, time, PendingIntent.getActivity(context, 0, intent, 0));
+       }
+
+       public static void unsetAlarm(final Context context, final long time){
+               final Intent intent = new Intent(context, AlarmReceiverActivity.class);
+               intent.setAction(Long.toString(time));
+               final AlarmManager man = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+               man.cancel(PendingIntent.getActivity(context, 0, intent, 0));
        }
 }
This page took 0.010318 seconds and 4 git commands to generate.