package info.papdt.blackblub.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Build; import android.util.Log; import info.papdt.blackblub.C; import info.papdt.blackblub.services.MaskService; import info.papdt.blackblub.services.MaskTileService; import info.papdt.blackblub.utils.NightScreenSettings; public class TileReceiver extends BroadcastReceiver { public static final String ACTION_UPDATE_STATUS = "info.papdt.blackbulb.ACTION_UPDATE_STATUS"; private static String TAG = "TileReceiver"; @Override public void onReceive(Context context, Intent intent) { if (ACTION_UPDATE_STATUS.equals(intent.getAction())) { String action = intent.getStringExtra(C.EXTRA_ACTION); int brightness = intent.getIntExtra(C.EXTRA_BRIGHTNESS, 50); boolean dontSendCheck = intent.getBooleanExtra(C.EXTRA_DO_NOT_SEND_CHECK, false); Log.i(TAG, "handle \"" + action + "\" action"); NightScreenSettings settings = NightScreenSettings.getInstance(context); switch (action) { case C.ACTION_START: Intent intent1 = new Intent(context, MaskService.class); intent1.putExtra(C.EXTRA_ACTION, C.ACTION_START); intent1.putExtra(C.EXTRA_BRIGHTNESS, settings.getInt(NightScreenSettings.KEY_BRIGHTNESS, brightness)); intent1.putExtra(C.EXTRA_MODE, settings.getInt(NightScreenSettings.KEY_MODE, C.MODE_NO_PERMISSION)); intent1.putExtra(C.EXTRA_DO_NOT_SEND_CHECK, dontSendCheck); context.startService(intent1); break; case C.ACTION_PAUSE: Intent intent2 = new Intent(context, MaskService.class); intent2.putExtra(C.EXTRA_ACTION, C.ACTION_PAUSE); intent2.putExtra(C.EXTRA_BRIGHTNESS, settings.getInt(NightScreenSettings.KEY_BRIGHTNESS, brightness)); intent2.putExtra(C.EXTRA_MODE, settings.getInt(NightScreenSettings.KEY_MODE, C.MODE_NO_PERMISSION)); intent2.putExtra(C.EXTRA_DO_NOT_SEND_CHECK, dontSendCheck); context.startService(intent2); break; case C.ACTION_STOP: Intent intent3 = new Intent(context, MaskService.class); intent3.putExtra(C.EXTRA_ACTION, C.ACTION_STOP); intent3.putExtra(C.EXTRA_DO_NOT_SEND_CHECK, dontSendCheck); context.startService(intent3); break; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { Intent tileUpdateIntent = new Intent(context, MaskTileService.class); tileUpdateIntent.putExtra(C.EXTRA_ACTION, action); context.startService(tileUpdateIntent); } } } }