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

Commit 96f35e5c authored by Tony Wickham's avatar Tony Wickham
Browse files

Recents onboarding fixes

- Allow onboarding to be disabled for tests
  - If isDemoUser(), onboarding is disabled by default
  - Can force disabled via "adb shell setprop
    persist.quickstep.onboarding.enabled false"
- Fix crash when hiding onboarding while it's animating by
  canceling the animation (so it doesn't remove the view)

Test: used adb shell setprop and verified onboarding no longer
shows up; dismissed onboarding while animating and verfied
no crash occurs

Bug: 73549472
Bug: 73345650
Change-Id: I03a58ac8b0f2bb42090c0d02bd196f55dc115ec2
parent 50140665
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import android.graphics.PorterDuff;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.RippleDrawable;
import android.os.Build;
import android.os.SystemProperties;
import android.os.UserManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
@@ -176,6 +178,9 @@ public class RecentsOnboarding {
    }

    public void show() {
        if (!shouldShow()) {
            return;
        }
        CharSequence onboardingText = mOverviewProxyService.getOnboardingText();
        if (TextUtils.isEmpty(onboardingText)) {
            Log.w(TAG, "Unable to get onboarding text");
@@ -205,6 +210,14 @@ public class RecentsOnboarding {
        }
    }

    /**
     * @return True unless setprop has been set to false, or we're in demo mode.
     */
    private boolean shouldShow() {
        return SystemProperties.getBoolean("persist.quickstep.onboarding.enabled",
                !(mContext.getSystemService(UserManager.class)).isDemoUser());
    }

    public void hide(boolean animate) {
        if (mLayoutAttachedToWindow) {
            if (animate) {
@@ -217,6 +230,7 @@ public class RecentsOnboarding {
                        .withEndAction(() -> mWindowManager.removeView(mLayout))
                        .start();
            } else {
                mLayout.animate().cancel();
                mWindowManager.removeView(mLayout);
            }
        }