package com.byagowi.persiancalendar.service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.support.v4.content.LocalBroadcastManager; import android.telephony.TelephonyManager; import android.text.TextUtils; import com.byagowi.persiancalendar.Constants; import com.byagowi.persiancalendar.util.UpdateUtils; import com.byagowi.persiancalendar.util.Utils; import com.byagowi.persiancalendar.view.activity.AthanActivity; /** * Startup broadcast receiver * * @author ebraminio */ public class BroadcastReceivers extends BroadcastReceiver { private Context context; private UpdateUtils updateUtils; private Utils utils; @Override public void onReceive(Context context, Intent intent) { this.context = context; utils = Utils.getInstance(context); updateUtils = UpdateUtils.getInstance(context); if (intent != null && intent.getAction() != null && !TextUtils.isEmpty(intent.getAction())) { if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) || intent.getAction().equals(TelephonyManager.ACTION_PHONE_STATE_CHANGED) || intent.getAction().equals(Constants.BROADCAST_RESTART_APP)) { if (!Utils.getInstance(context).isServiceRunning(ApplicationService.class)) { context.startService(new Intent(context, ApplicationService.class)); } } else if (intent.getAction().equals(Intent.ACTION_TIME_TICK) || intent.getAction().equals(Intent.ACTION_TIME_CHANGED) || intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { updateUtils.update(false); } else if (intent.getAction().equals(Intent.ACTION_DATE_CHANGED) || intent.getAction().equals(Intent.ACTION_TIMEZONE_CHANGED)) { updateUtils.update(true); utils.loadApp(); LocalBroadcastManager.getInstance(context) .sendBroadcast(new Intent(Constants.LOCAL_INTENT_DAY_PASSED)); } else if (intent.getAction().equals(Constants.BROADCAST_ALARM)) { startAthanActivity(intent.getStringExtra(Constants.KEY_EXTRA_PRAYER_KEY)); } } } private void startAthanActivity(String string) { Intent intent = new Intent(context, AthanActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(Constants.KEY_EXTRA_PRAYER_KEY, string); context.startActivity(intent); } }