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

Commit d44ae6aa 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

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



Change-Id: I39157ca10cad3ad80fa852c10e3a63ba6d4c30aa
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 108d04c3 4987fc3a
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line 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.
     * 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.
     * Sent when the assistant changes how visible it is to the user.
+6 −5
Original line number Original line Diff line number Diff line
@@ -185,7 +185,7 @@ public final class NavBarHelper implements
    public void registerNavTaskStateUpdater(NavbarTaskbarStateUpdater listener) {
    public void registerNavTaskStateUpdater(NavbarTaskbarStateUpdater listener) {
        mA11yEventListeners.add(listener);
        mA11yEventListeners.add(listener);
        listener.updateAccessibilityServicesState();
        listener.updateAccessibilityServicesState();
        listener.updateAssistantAvailable(mAssistantAvailable);
        listener.updateAssistantAvailable(mAssistantAvailable, mLongPressHomeEnabled);
    }
    }


    public void removeNavTaskStateUpdater(NavbarTaskbarStateUpdater listener) {
    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) {
        for (NavbarTaskbarStateUpdater listener : mA11yEventListeners) {
            listener.updateAssistantAvailable(assistantAvailable);
            listener.updateAssistantAvailable(assistantAvailable, longPressHomeEnabled);
        }
        }
    }
    }


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


    public boolean getLongPressHomeEnabled() {
    public boolean getLongPressHomeEnabled() {
@@ -366,7 +367,7 @@ public final class NavBarHelper implements
     */
     */
    public interface NavbarTaskbarStateUpdater {
    public interface NavbarTaskbarStateUpdater {
        void updateAccessibilityServicesState();
        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.*/
    /** Data class to help Taskbar/Navbar initiate state correctly when switching between the two.*/
+8 −5
Original line number Original line Diff line number Diff line
@@ -335,15 +335,16 @@ public class NavigationBar extends ViewController<NavigationBarView> implements
                }
                }


                @Override
                @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
                    // 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
                    //  being unregistered, and in this case we can ignore the change if the nav bar
                    //  has been destroyed already
                    //  has been destroyed already
                    if (mView == null) {
                    if (mView == null) {
                        return;
                        return;
                    }
                    }
                    mLongPressHomeEnabled = mNavBarHelper.getLongPressHomeEnabled();
                    mLongPressHomeEnabled = longPressHomeEnabled;
                    updateAssistantEntrypoints(available);
                    updateAssistantEntrypoints(available, longPressHomeEnabled);
                }
                }
            };
            };


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


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


                @Override
                @Override
                public void updateAssistantAvailable(boolean available) {
                public void updateAssistantAvailable(boolean available,
                    updateAssistantAvailability(available);
                        boolean longPressHomeEnabled) {
                    updateAssistantAvailability(available, longPressHomeEnabled);
                }
                }
            };
            };
    private int mDisabledFlags;
    private int mDisabledFlags;
@@ -309,13 +310,15 @@ public class TaskbarDelegate implements CommandQueue.Callbacks,
        return (mSysUiState.getFlags() & View.STATUS_BAR_DISABLE_RECENT) == 0;
        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) {
        if (mOverviewProxyService.getProxy() == null) {
            return;
            return;
        }
        }


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


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


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


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


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


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


    @Test
    @Test