package com.jasonchen.microlang.utils;
import android.app.AlarmManager;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.util.TypedValue;
import android.widget.Toast;
import com.jasonchen.microlang.R;
import com.jasonchen.microlang.services.FetchUnreadService;
import com.jasonchen.microlang.settings.SettingUtility;
/**
* jasonchen
* 2015/06/12
*/
public class AppNewMsgAlarm {
private static final int REQUEST_CODE = 195;
public static void startAlarm(Context context, boolean silent) {
String value = SettingUtility.getFrequency();
long time = AlarmManager.INTERVAL_DAY;
if (value.equals("1")) {
time = (3 * 60 * 1000);
}
if (value.equals("2")) {
time = (AlarmManager.INTERVAL_FIFTEEN_MINUTES);
}
if (value.equals("3")) {
time = (AlarmManager.INTERVAL_HALF_HOUR);
}
AlarmManager alarm = (AlarmManager) context.getSystemService(
Context.ALARM_SERVICE);
Intent intent = FetchUnreadService.newIntentFromAlarmManager();
PendingIntent sender = PendingIntent
.getService(context, REQUEST_CODE, intent, PendingIntent.FLAG_CANCEL_CURRENT);
alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, 0, time, sender);
if (!silent) {
Toast.makeText(context, context.getString(R.string.start_fetch_msg), Toast.LENGTH_SHORT)
.show();
}
}
public static void stopAlarm(Context context, boolean clearNotification) {
AlarmManager alarm = (AlarmManager) context.getSystemService(
Context.ALARM_SERVICE);
Intent intent = FetchUnreadService.newIntentFromAlarmManager();
PendingIntent sender = PendingIntent
.getService(context, REQUEST_CODE, intent, PendingIntent.FLAG_CANCEL_CURRENT);
alarm.cancel(sender);
if (clearNotification) {
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager
.cancel(Long.valueOf(GlobalContext.getInstance().getCurrentAccountId())
.intValue());
}
}
}