package yuku.alkitab.reminder.util;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import yuku.afw.storage.Preferences;
import yuku.alkitab.base.App;
import yuku.alkitab.base.widget.Localized;
import yuku.alkitab.debug.R;
import yuku.alkitab.reminder.br.DevotionReminderReceiver;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DevotionReminder {
public static final String TAG = DevotionReminder.class.getSimpleName();
public static final String REMINDER_TIME = "reminder_time";
public static final String REMINDER_SOUND = "reminder_sound";
public static final String REMINDER_VIBRATE = "reminder_vibrate";
public static final String REMINDER_TEXT = "reminder_text";
public static void scheduleAlarm() {
String reminder_time = Preferences.getString(REMINDER_TIME);
setAlarm(reminder_time);
}
private static void setAlarm(final String reminder_time) {
final AlarmManager am = (AlarmManager) App.context.getSystemService(Context.ALARM_SERVICE);
final Intent intent = new Intent(App.context, DevotionReminderReceiver.class);
final PendingIntent pi = PendingIntent.getBroadcast(App.context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// always cancel current (if any)
am.cancel(pi);
if (TextUtils.isEmpty(reminder_time)) {
return;
}
int hour = Integer.parseInt(reminder_time.substring(0, 2));
int minute = Integer.parseInt(reminder_time.substring(2, 4));
Calendar c = GregorianCalendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, hour);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
if (c.getTimeInMillis() < System.currentTimeMillis()) {
c.add(Calendar.DAY_OF_YEAR, 1);
}
am.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
}
public static String getNotificationText() {
String notificationText = Preferences.getString(REMINDER_TEXT);
if (TextUtils.isEmpty(notificationText)) {
notificationText = Localized.string(R.string.dr_notification_text);
}
return notificationText;
}
}