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

Unverified Commit 80ff2a54 authored by LuK1337's avatar LuK1337 Committed by Michael Bestas
Browse files

fixup! Add support for runtime toggle of navbar

Change-Id: I8d24b686ad8aec942e185c8956ee81fef2d191b7
parent b16a042f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -70,4 +70,8 @@ public interface NavigationBarController {
    /** @return {@link NavigationBar} on the default display. */
    @Nullable
    NavigationBar getDefaultNavigationBar();

    /** Aliased to internal CommandQueue callbacks. */
    void onDisplayReady(int displayId);
    void onDisplayRemoved(int displayId);
}
+2 −0
Original line number Diff line number Diff line
@@ -42,4 +42,6 @@ class NavigationBarControllerEmptyImpl @Inject constructor() : NavigationBarCont
    override fun getNavigationBarView(displayId: Int): NavigationBarView? = null
    override fun isOverviewEnabled(displayId: Int) = false
    override fun getDefaultNavigationBar(): NavigationBar? = null
    override fun onDisplayReady(displayId: Int) {}
    override fun onDisplayRemoved(displayId: Int) {}
}
+22 −3
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ import com.android.wm.shell.pip.Pip;

import dalvik.annotation.optimization.NeverCompile;

import lineageos.providers.LineageSettings;

import java.io.PrintWriter;
import java.util.Optional;

@@ -233,7 +235,14 @@ public class NavigationBarControllerImpl implements
        }
    }

    private boolean shouldCreateNavBarAndTaskBar(int displayId) {
    private boolean shouldCreateNavBarAndTaskBar(Context context, int displayId) {
        if (displayId == mDisplayTracker.getDefaultDisplayId() &&
                LineageSettings.System.getIntForUser(context.getContentResolver(),
                        LineageSettings.System.FORCE_SHOW_NAVBAR, 0,
                        UserHandle.USER_CURRENT) == 1) {
            return true;
        }

        if (mHasNavBar.indexOfKey(displayId) > -1) {
            return mHasNavBar.get(displayId);
        }
@@ -264,7 +273,7 @@ public class NavigationBarControllerImpl implements
    private boolean initializeTaskbarIfNecessary() {
        // Enable for large screens or (phone AND flag is set); assuming phone = !mIsLargeScreen
        boolean taskbarEnabled = (shouldShowTaskbar() || enableTaskbarNavbarUnification())
                && shouldCreateNavBarAndTaskBar(mContext.getDisplayId());
                && shouldCreateNavBarAndTaskBar(mContext, mContext.getDisplayId());

        if (taskbarEnabled) {
            Trace.beginSection("NavigationBarController#initializeTaskbarIfNecessary");
@@ -377,7 +386,7 @@ public class NavigationBarControllerImpl implements
        final int displayId = display.getDisplayId();
        final boolean isOnDefaultDisplay = displayId == mDisplayTracker.getDefaultDisplayId();

        if (!shouldCreateNavBarAndTaskBar(displayId)) {
        if (!shouldCreateNavBarAndTaskBar(mContext, displayId)) {
            return;
        }

@@ -497,6 +506,16 @@ public class NavigationBarControllerImpl implements
        return mNavigationBars.get(mDisplayTracker.getDefaultDisplayId());
    }

    @Override
    public void onDisplayReady(int displayId) {
        mCommandQueueCallbacks.onDisplayReady(displayId);
    }

    @Override
    public void onDisplayRemoved(int displayId) {
        mCommandQueueCallbacks.onDisplayRemoved(displayId);
    }

    @NeverCompile
    @Override
    public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {