package org.iilab.pb; import org.iilab.pb.alert.PanicAlert; import org.iilab.pb.common.ApplicationSettings; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public abstract class PanicButtonActivity extends Activity { public static final int ADD_TO_TOP = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(">>>>>", "Registering Restart Install receiver"); registerRestartInstallReceiver(); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); View alertStatusStrip = LayoutInflater.from(this).inflate(R.layout.alert_status_strip, getRootLayout(), false); getRootLayout().addView(alertStatusStrip, ADD_TO_TOP); } private int alertStatusStripColor() { return ApplicationSettings.isAlertActive(this) ? getResources().getColor(R.color.active_color) : getResources().getColor(R.color.standby_color); } private ViewGroup getRootLayout() { return (ViewGroup) ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0); } @Override protected void onResume() { super.onResume(); updateAlertStatusStrip(); } @Override protected void onDestroy() { super.onDestroy(); try { unregisterReceiver(activityFinishReceiver); } catch (Exception e) { e.printStackTrace(); } } protected void updateAlertStatusStrip() { findViewById(R.id.alert_status_strip).setBackgroundColor(alertStatusStripColor()); } PanicAlert getPanicAlert() { return new PanicAlert(this); } public void registerRestartInstallReceiver() { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("org.iilab.pb.RESTART_INSTALL"); registerReceiver(activityFinishReceiver, intentFilter); } BroadcastReceiver activityFinishReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("org.iilab.pb.RESTART_INSTALL")) { finish(); } } }; }