package cri.sanity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
public class ModeReceiver extends BroadcastReceiver
{
public static boolean skip = false;
@Override
public void onReceive(Context ctx, Intent i)
{
if(i==null || MainService.isRunning() || !A.isEnabled()) return;
String act = i.getAction();
if(act == null) return;
if(skip) { skip = false; return; }
String enable;
int nid;
boolean abort;
if(AudioManager.RINGER_MODE_CHANGED_ACTION.equals(act)) {
act = Alarmer.ACT_SILENTLIMIT;
enable = K.SILENT_LIMIT;
nid = ModeActivity.NID_SILENT;
abort = i.getIntExtra(AudioManager.EXTRA_RINGER_MODE, AudioManager.RINGER_MODE_NORMAL) == AudioManager.RINGER_MODE_NORMAL;
}
else if(Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(act)) {
act = Alarmer.ACT_FLIGHTOFF;
enable = K.AIRPLANE_LIMIT;
nid = ModeActivity.NID_FLIGHT;
abort = !i.getBooleanExtra("state", false);
}
else return;
if(abort) {
Alarmer.stop(act);
A.notifyCanc(nid);
} else if(A.is(enable))
ModeActivity.start(act, false);
}
}