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

Commit 90bc78c2 authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Merge "Perform receiver un/registration in bg for RotationButtonController" into udc-qpr-dev

parents a3f36b1e 9371691e
Loading
Loading
Loading
Loading
+24 −7
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.shared.rotation;

import static android.content.pm.PackageManager.FEATURE_PC;
import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
import static android.view.Display.DEFAULT_DISPLAY;

import static com.android.internal.view.RotationPolicy.NATURAL_ROTATION;
@@ -37,6 +38,8 @@ import android.content.IntentFilter;
import android.graphics.drawable.AnimatedVectorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.RemoteException;
import android.os.SystemProperties;
@@ -67,6 +70,7 @@ import com.android.systemui.shared.system.TaskStackChangeListeners;

import java.io.PrintWriter;
import java.util.Optional;
import java.util.concurrent.Executor;
import java.util.function.Supplier;

/**
@@ -119,6 +123,8 @@ public class RotationButtonController {
    private final int mIconCwStart0ResId;
    @DrawableRes
    private final int mIconCwStart90ResId;
    /** Defaults to mainExecutor if not set via {@link #setBgExecutor(Executor)}. */
    private Executor mBgExecutor;

    @DrawableRes
    private int mIconResId;
@@ -178,6 +184,8 @@ public class RotationButtonController {
        mAccessibilityManager = AccessibilityManager.getInstance(context);
        mTaskStackListener = new TaskStackListenerImpl();
        mWindowRotationProvider = windowRotationProvider;

        mBgExecutor = context.getMainExecutor();
    }

    public void setRotationButton(RotationButton rotationButton,
@@ -193,6 +201,10 @@ public class RotationButtonController {
        return mContext;
    }

    public void setBgExecutor(Executor bgExecutor) {
        mBgExecutor = bgExecutor;
    }

    /**
     * Called during Taskbar initialization.
     */
@@ -219,8 +231,11 @@ public class RotationButtonController {

        mListenersRegistered = true;

        updateDockedState(mContext.registerReceiver(mDockedReceiver,
                new IntentFilter(Intent.ACTION_DOCK_EVENT)));
        mBgExecutor.execute(() -> {
            final Intent intent = mContext.registerReceiver(mDockedReceiver,
                    new IntentFilter(Intent.ACTION_DOCK_EVENT));
            mContext.getMainExecutor().execute(() -> updateDockedState(intent));
        });

        if (registerRotationWatcher) {
            try {
@@ -246,11 +261,13 @@ public class RotationButtonController {

        mListenersRegistered = false;

        mBgExecutor.execute(() -> {
            try {
                mContext.unregisterReceiver(mDockedReceiver);
            } catch (IllegalArgumentException e) {
                Log.e(TAG, "Docked receiver already unregistered", e);
            }
        });

        if (mRotationWatcherRegistered) {
            try {
+1 −0
Original line number Diff line number Diff line
@@ -359,6 +359,7 @@ public class NavigationBarView extends FrameLayout {

    public void setBackgroundExecutor(Executor bgExecutor) {
        mBgExecutor = bgExecutor;
        mRotationButtonController.setBgExecutor(bgExecutor);
    }

    public void setDisplayTracker(DisplayTracker displayTracker) {