Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd5729b7 authored by Mikhail Malakhov's avatar Mikhail Malakhov
Browse files

Sometime, Settings app crash when AllowBindAppWidgetActivity closing



Process: com.android.settings
E AndroidRuntime: java.lang.RuntimeException:
Unable to destroy activity {com.android.settings/
com.android.settings.AllowBindAppWidgetActivity}:
java.lang.IllegalArgumentException: Receiver not registered:
android.app.Activity$1@5817135

Change-Id: I0f8b61f4c1772b43bffd949928ccaafd295f5fac
Signed-off-by: default avatarMikhail Malakhov <malakhv@gmail.com>
parent 363c529d
Loading
Loading
Loading
Loading
+7 −6
Original line number Original line Diff line number Diff line
@@ -51,9 +51,8 @@ public class AllowBindAppWidgetActivity extends AlertActivity implements
    private boolean mClicked;
    private boolean mClicked;


    public void onClick(DialogInterface dialog, int which) {
    public void onClick(DialogInterface dialog, int which) {
        mClicked = true;
        if (which == AlertDialog.BUTTON_POSITIVE) {
        if (which == AlertDialog.BUTTON_POSITIVE) {
            // By default, set the result to cancelled
            setResult(RESULT_CANCELED);
            if (mAppWidgetId != -1 && mComponentName != null && mCallingPackage != null) {
            if (mAppWidgetId != -1 && mComponentName != null && mCallingPackage != null) {
                try {
                try {
                    final boolean bound = mAppWidgetManager.bindAppWidgetIdIfAllowed(mAppWidgetId,
                    final boolean bound = mAppWidgetManager.bindAppWidgetIdIfAllowed(mAppWidgetId,
@@ -79,15 +78,18 @@ public class AllowBindAppWidgetActivity extends AlertActivity implements
        finish();
        finish();
    }
    }


    @Override
    protected void onPause() {
    protected void onPause() {
        if (isDestroyed() && !mClicked) {
        if (!mClicked) { // RESULT_CANCELED
            setResult(RESULT_CANCELED);
            finish();
        }
        }
        super.onDestroy();
        super.onPause();
    }
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.onCreate(savedInstanceState);
        setResult(RESULT_CANCELED); // By default, set the result to cancelled
        Intent intent = getIntent();
        Intent intent = getIntent();
        CharSequence label = "";
        CharSequence label = "";
        if (intent != null) {
        if (intent != null) {
@@ -109,7 +111,6 @@ public class AllowBindAppWidgetActivity extends AlertActivity implements
                mComponentName = null;
                mComponentName = null;
                mCallingPackage = null;
                mCallingPackage = null;
                Log.v("BIND_APPWIDGET", "Error getting parameters");
                Log.v("BIND_APPWIDGET", "Error getting parameters");
                setResult(RESULT_CANCELED);
                finish();
                finish();
                return;
                return;
            }
            }