package fq.router2.feedback; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import fq.router2.utils.LoggedBroadcastReceiver; public class HandleFatalErrorIntent extends Intent { private final static String ACTION_HANDLE_FATAL_ERROR = "HandleFatalError"; public HandleFatalErrorIntent(String message) { setAction(ACTION_HANDLE_FATAL_ERROR); putExtra("message", message); } public static void register(final Handler handler) { handler.getBaseContext().registerReceiver(new LoggedBroadcastReceiver() { @Override protected void handle(Context context, Intent intent) { handler.onHandleFatalError(intent.getStringExtra("message")); } }, new IntentFilter(ACTION_HANDLE_FATAL_ERROR)); } public static interface Handler { void onHandleFatalError(String message); Context getBaseContext(); } public static class Message extends RuntimeException { public Message(String msg) { super(msg); } } }