Merge "Pass button nav long press assistant availability to Launcher" into tm-qpr-dev

This commit is contained in:
Vinit Nayak
2023-01-05 21:28:22 +00:00
committed by Android (Google) Code Review
5 changed files with 29 additions and 21 deletions

View File

@@ -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.

View File

@@ -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.*/

View File

@@ -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");
} }

View File

@@ -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);
} }

View File

@@ -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