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

Commit bc6c1e62 authored by Fabián Kozynski's avatar Fabián Kozynski
Browse files

Prevent BrightnessDialog to finishing twice in test

Calling finish in the real dialog will lead to a bad state in the
ActivityTestRule. This can lead to trying to finish after the test has
finished and cleared mocks.

Test: atest SystemUITests
Fixes: 309737682
Flag: None
Change-Id: Ie3152a889afe2c84b378540356cac115315ac16d
parent 8621fe01
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -181,12 +181,16 @@ public class BrightnessDialog extends Activity {
            if (mCancelTimeoutRunnable != null) {
                mCancelTimeoutRunnable.run();
            }
            finish();
            requestFinish();
        }

        return super.onKeyDown(keyCode, event);
    }

    protected void requestFinish() {
        finish();
    }

    private boolean triggeredByBrightnessKey() {
        return getIntent().getBooleanExtra(EXTRA_FROM_BRIGHTNESS_KEY, false);
    }
@@ -197,6 +201,6 @@ public class BrightnessDialog extends Activity {
        }
        final int timeout = mAccessibilityMgr.getRecommendedTimeoutMillis(DIALOG_TIMEOUT_MILLIS,
                AccessibilityManager.FLAG_CONTENT_CONTROLS);
        mCancelTimeoutRunnable = mMainExecutor.executeDelayed(this::finish, timeout);
        mCancelTimeoutRunnable = mMainExecutor.executeDelayed(this::requestFinish, timeout);
    }
}
+12 −2
Original line number Diff line number Diff line
@@ -25,9 +25,9 @@ import android.view.ViewGroup
import android.view.WindowManagerPolicyConstants.EXTRA_FROM_BRIGHTNESS_KEY
import androidx.test.filters.SmallTest
import androidx.test.rule.ActivityTestRule
import com.android.systemui.res.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.activity.SingleActivityFactory
import com.android.systemui.res.R
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper
import com.android.systemui.util.concurrency.DelayableExecutor
import com.android.systemui.util.concurrency.FakeExecutor
@@ -182,5 +182,15 @@ class BrightnessDialogTest : SysuiTestCase() {
            brightnessControllerFactory,
            mainExecutor,
            accessibilityMgr
        )
        ) {
        private var finishing = false

        override fun isFinishing(): Boolean {
            return finishing
        }

        override fun requestFinish() {
            finishing = true
        }
    }
}