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

Commit 34facaa4 authored by Vinit Nayak's avatar Vinit Nayak Committed by Automerger Merge Worker
Browse files

Merge "Pass button nav long press assistant availability to Launcher" into...

Merge "Pass button nav long press assistant availability to Launcher" into tm-qpr-dev am: 4987fc3a am: d44ae6aa

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20861845



Change-Id: Ic7ea442da6ba3758e3d142b46f7549fab3772c71
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 5639df59 d44ae6aa
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -46,8 +46,9 @@ oneway interface IOverviewProxy {

    /**
     * Sent when device assistant changes its default assistant whether it is available or not.
     * @param longPressHomeEnabled if 3-button nav assistant can be invoked or not
     */
    void onAssistantAvailable(boolean available) = 13;
    void onAssistantAvailable(boolean available, boolean longPressHomeEnabled) = 13;

    /**
     * Sent when the assistant changes how visible it is to the user.
+6 −5
Original line number Diff line number Diff line
@@ -185,7 +185,7 @@ public final class NavBarHelper implements
    public void registerNavTaskStateUpdater(NavbarTaskbarStateUpdater listener) {
        mA11yEventListeners.add(listener);
        listener.updateAccessibilityServicesState();
        listener.updateAssistantAvailable(mAssistantAvailable);
        listener.updateAssistantAvailable(mAssistantAvailable, mLongPressHomeEnabled);
    }

    public void removeNavTaskStateUpdater(NavbarTaskbarStateUpdater listener) {
@@ -198,9 +198,10 @@ public final class NavBarHelper implements
        }
    }

    private void dispatchAssistantEventUpdate(boolean assistantAvailable) {
    private void dispatchAssistantEventUpdate(boolean assistantAvailable,
            boolean longPressHomeEnabled) {
        for (NavbarTaskbarStateUpdater listener : mA11yEventListeners) {
            listener.updateAssistantAvailable(assistantAvailable);
            listener.updateAssistantAvailable(assistantAvailable, longPressHomeEnabled);
        }
    }

@@ -311,7 +312,7 @@ public final class NavBarHelper implements
        mAssistantAvailable = assistantAvailableForUser
                && mAssistantTouchGestureEnabled
                && QuickStepContract.isGesturalMode(mNavBarMode);
        dispatchAssistantEventUpdate(mAssistantAvailable);
        dispatchAssistantEventUpdate(mAssistantAvailable, mLongPressHomeEnabled);
    }

    public boolean getLongPressHomeEnabled() {
@@ -366,7 +367,7 @@ public final class NavBarHelper implements
     */
    public interface NavbarTaskbarStateUpdater {
        void updateAccessibilityServicesState();
        void updateAssistantAvailable(boolean available);
        void updateAssistantAvailable(boolean available, boolean longPressHomeEnabled);
    }

    /** Data class to help Taskbar/Navbar initiate state correctly when switching between the two.*/
+8 −5
Original line number Diff line number Diff line
@@ -347,15 +347,16 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
                }

                @Override
                public void updateAssistantAvailable(boolean available) {
                public void updateAssistantAvailable(boolean available,
                        boolean longPressHomeEnabled) {
                    // TODO(b/198002034): Content observers currently can still be called back after
                    //  being unregistered, and in this case we can ignore the change if the nav bar
                    //  has been destroyed already
                    if (mView == null) {
                        return;
                    }
                    mLongPressHomeEnabled = mNavBarHelper.getLongPressHomeEnabled();
                    updateAssistantEntrypoints(available);
                    mLongPressHomeEnabled = longPressHomeEnabled;
                    updateAssistantEntrypoints(available, longPressHomeEnabled);
                }
            };

@@ -1500,10 +1501,12 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
                .commitUpdate(mDisplayId);
    }

    private void updateAssistantEntrypoints(boolean assistantAvailable) {
    private void updateAssistantEntrypoints(boolean assistantAvailable,
            boolean longPressHomeEnabled) {
        if (mOverviewProxyService.getProxy() != null) {
            try {
                mOverviewProxyService.getProxy().onAssistantAvailable(assistantAvailable);
                mOverviewProxyService.getProxy().onAssistantAvailable(assistantAvailable,
                        longPressHomeEnabled);
            } catch (RemoteException e) {
                Log.w(TAG, "Unable to send assistant availability data to launcher");
            }
+7 −4
Original line number Diff line number Diff line
@@ -112,8 +112,9 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
                }

                @Override
                public void updateAssistantAvailable(boolean available) {
                    updateAssistantAvailability(available);
                public void updateAssistantAvailable(boolean available,
                        boolean longPressHomeEnabled) {
                    updateAssistantAvailability(available, longPressHomeEnabled);
                }
            };
    private int mDisabledFlags;
@@ -309,13 +310,15 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
        return (mSysUiState.getFlags() & View.STATUS_BAR_DISABLE_RECENT) == 0;
    }

    private void updateAssistantAvailability(boolean assistantAvailable) {
    private void updateAssistantAvailability(boolean assistantAvailable,
            boolean longPressHomeEnabled) {
        if (mOverviewProxyService.getProxy() == null) {
            return;
        }

        try {
            mOverviewProxyService.getProxy().onAssistantAvailable(assistantAvailable);
            mOverviewProxyService.getProxy().onAssistantAvailable(assistantAvailable,
                    longPressHomeEnabled);
        } catch (RemoteException e) {
            Log.e(TAG, "onAssistantAvailable() failed, available: " + assistantAvailable, e);
        }
+6 −6
Original line number Diff line number Diff line
@@ -146,7 +146,7 @@ public class NavBarHelperTest extends SysuiTestCase {
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAccessibilityServicesState();
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAssistantAvailable(anyBoolean());
                .updateAssistantAvailable(anyBoolean(), anyBoolean());
    }

    @Test
@@ -160,14 +160,14 @@ public class NavBarHelperTest extends SysuiTestCase {
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAccessibilityServicesState();
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAssistantAvailable(anyBoolean());
                .updateAssistantAvailable(anyBoolean(), anyBoolean());

        mNavBarHelper.onConnectionChanged(true);
        // assert no more callbacks fired
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAccessibilityServicesState();
        verify(mNavbarTaskbarStateUpdater, times(2))
                .updateAssistantAvailable(anyBoolean());
                .updateAssistantAvailable(anyBoolean(), anyBoolean());
    }

    @Test
@@ -180,7 +180,7 @@ public class NavBarHelperTest extends SysuiTestCase {
        verify(mNavbarTaskbarStateUpdater, times(2))
                .updateAccessibilityServicesState();
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAssistantAvailable(anyBoolean());
                .updateAssistantAvailable(anyBoolean(), anyBoolean());
    }

    @Test
@@ -193,7 +193,7 @@ public class NavBarHelperTest extends SysuiTestCase {
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAccessibilityServicesState();
        verify(mNavbarTaskbarStateUpdater, times(2))
                .updateAssistantAvailable(anyBoolean());
                .updateAssistantAvailable(anyBoolean(), anyBoolean());
    }

    @Test
@@ -212,7 +212,7 @@ public class NavBarHelperTest extends SysuiTestCase {
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAccessibilityServicesState();
        verify(mNavbarTaskbarStateUpdater, times(1))
                .updateAssistantAvailable(anyBoolean());
                .updateAssistantAvailable(anyBoolean(), anyBoolean());
    }

    @Test