package org.qii.weiciyuan.othercomponent;
import org.qii.weiciyuan.R;
import org.qii.weiciyuan.support.settinghelper.SettingUtility;
import org.qii.weiciyuan.support.utils.GlobalContext;
import android.app.AlarmManager;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
/**
* User: qii
* Date: 12-9-14
*/
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 = FetchNewMsgService.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 = FetchNewMsgService.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());
}
}
}