package info.papdt.blackblub.ui.shortcut; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Parcelable; import info.papdt.blackblub.C; import info.papdt.blackblub.R; import info.papdt.blackblub.receiver.TileReceiver; import info.papdt.blackblub.services.MaskService; public class ToggleActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (Intent.ACTION_CREATE_SHORTCUT.equals(getIntent().getAction())) { Intent intent = new Intent(); Parcelable icon = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_shortcut_switch); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcut_label_switch)); intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon); Intent launchIntent = new Intent(getApplicationContext(), ToggleActivity.class); launchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launchIntent); setResult(RESULT_OK, intent); finish(); } else { Intent i = new Intent(this, MaskService.class); i.putExtra(C.EXTRA_ACTION, C.ACTION_CHECK); i.putExtra(C.EXTRA_CHECK_FROM_TOGGLE, true); startService(i); finish(); } } public static class MessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { int eventId = intent.getIntExtra(C.EXTRA_EVENT_ID, -1); switch (eventId) { case C.EVENT_CHECK: Intent i = new Intent(); i.setAction(TileReceiver.ACTION_UPDATE_STATUS); i.putExtra(C.EXTRA_ACTION, intent.getBooleanExtra("isShowing", false) ? C.ACTION_STOP : C.ACTION_START); context.sendBroadcast(i); break; } } } }