Loading packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuView.java +10 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.annotation.SuppressLint; import android.content.ComponentCallbacks; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Configuration; import android.graphics.PointF; import android.graphics.Rect; Loading Loading @@ -435,7 +437,14 @@ class MenuView extends FrameLayout implements } mMenuAnimationController.flingMenuThenSpringToEdge( getMenuPosition().x, 100f, 0f); mContext.startActivity(getIntentForEditScreen()); Intent intent = getIntentForEditScreen(); PackageManager packageManager = getContext().getPackageManager(); List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, PackageManager.ResolveInfoFlags.of(PackageManager.MATCH_DEFAULT_ONLY)); if (!activities.isEmpty()) { mContext.startActivity(intent); } } void incrementTexMetricForAllTargets(String metric) { Loading packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/MenuViewTest.java +29 −0 Original line number Diff line number Diff line Loading @@ -22,11 +22,15 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.UiModeManager; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.Rect; import android.graphics.drawable.GradientDrawable; import android.platform.test.annotations.EnableFlags; Loading Loading @@ -54,6 +58,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import java.util.ArrayList; /** Tests for {@link MenuView}. */ @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper(setAsMainLooper = true) Loading @@ -73,6 +79,8 @@ public class MenuViewTest extends SysuiTestCase { private AccessibilityManager mAccessibilityManager; private SysuiTestableContext mSpyContext; @Mock private PackageManager mMockPackageManager; @Before public void setUp() throws Exception { Loading @@ -82,6 +90,8 @@ public class MenuViewTest extends SysuiTestCase { mSpyContext = spy(mContext); doNothing().when(mSpyContext).startActivity(any()); when(mSpyContext.getPackageManager()).thenReturn(mMockPackageManager); final SecureSettings secureSettings = TestUtils.mockSecureSettings(); final MenuViewModel stubMenuViewModel = new MenuViewModel(mContext, mAccessibilityManager, secureSettings); Loading Loading @@ -181,10 +191,19 @@ public class MenuViewTest extends SysuiTestCase { @Test @EnableFlags(Flags.FLAG_FLOATING_MENU_DRAG_TO_EDIT) public void gotoEditScreen_sendsIntent() { mockActivityQuery(true); mMenuView.gotoEditScreen(); verify(mSpyContext).startActivity(any()); } @Test @EnableFlags(Flags.FLAG_FLOATING_MENU_DRAG_TO_EDIT) public void gotoEditScreen_noResolve_doesNotStart() { mockActivityQuery(false); mMenuView.gotoEditScreen(); verify(mSpyContext, never()).startActivity(any()); } private InstantInsetLayerDrawable getMenuViewInsetLayer() { return (InstantInsetLayerDrawable) mMenuView.getBackground(); } Loading @@ -207,4 +226,14 @@ public class MenuViewTest extends SysuiTestCase { mUiModeManager.setNightMode(mNightMode); Prefs.putString(mContext, Prefs.Key.ACCESSIBILITY_FLOATING_MENU_POSITION, mLastPosition); } private void mockActivityQuery(boolean successfulQuery) { // Query just needs to return a non-empty set to be successful. ArrayList<ResolveInfo> resolveInfos = new ArrayList<>(); if (successfulQuery) { resolveInfos.add(new ResolveInfo()); } when(mMockPackageManager.queryIntentActivities( any(), any(PackageManager.ResolveInfoFlags.class))).thenReturn(resolveInfos); } } Loading
packages/SystemUI/src/com/android/systemui/accessibility/floatingmenu/MenuView.java +10 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.annotation.SuppressLint; import android.content.ComponentCallbacks; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Configuration; import android.graphics.PointF; import android.graphics.Rect; Loading Loading @@ -435,7 +437,14 @@ class MenuView extends FrameLayout implements } mMenuAnimationController.flingMenuThenSpringToEdge( getMenuPosition().x, 100f, 0f); mContext.startActivity(getIntentForEditScreen()); Intent intent = getIntentForEditScreen(); PackageManager packageManager = getContext().getPackageManager(); List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, PackageManager.ResolveInfoFlags.of(PackageManager.MATCH_DEFAULT_ONLY)); if (!activities.isEmpty()) { mContext.startActivity(intent); } } void incrementTexMetricForAllTargets(String metric) { Loading
packages/SystemUI/tests/src/com/android/systemui/accessibility/floatingmenu/MenuViewTest.java +29 −0 Original line number Diff line number Diff line Loading @@ -22,11 +22,15 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.UiModeManager; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.Rect; import android.graphics.drawable.GradientDrawable; import android.platform.test.annotations.EnableFlags; Loading Loading @@ -54,6 +58,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import java.util.ArrayList; /** Tests for {@link MenuView}. */ @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper(setAsMainLooper = true) Loading @@ -73,6 +79,8 @@ public class MenuViewTest extends SysuiTestCase { private AccessibilityManager mAccessibilityManager; private SysuiTestableContext mSpyContext; @Mock private PackageManager mMockPackageManager; @Before public void setUp() throws Exception { Loading @@ -82,6 +90,8 @@ public class MenuViewTest extends SysuiTestCase { mSpyContext = spy(mContext); doNothing().when(mSpyContext).startActivity(any()); when(mSpyContext.getPackageManager()).thenReturn(mMockPackageManager); final SecureSettings secureSettings = TestUtils.mockSecureSettings(); final MenuViewModel stubMenuViewModel = new MenuViewModel(mContext, mAccessibilityManager, secureSettings); Loading Loading @@ -181,10 +191,19 @@ public class MenuViewTest extends SysuiTestCase { @Test @EnableFlags(Flags.FLAG_FLOATING_MENU_DRAG_TO_EDIT) public void gotoEditScreen_sendsIntent() { mockActivityQuery(true); mMenuView.gotoEditScreen(); verify(mSpyContext).startActivity(any()); } @Test @EnableFlags(Flags.FLAG_FLOATING_MENU_DRAG_TO_EDIT) public void gotoEditScreen_noResolve_doesNotStart() { mockActivityQuery(false); mMenuView.gotoEditScreen(); verify(mSpyContext, never()).startActivity(any()); } private InstantInsetLayerDrawable getMenuViewInsetLayer() { return (InstantInsetLayerDrawable) mMenuView.getBackground(); } Loading @@ -207,4 +226,14 @@ public class MenuViewTest extends SysuiTestCase { mUiModeManager.setNightMode(mNightMode); Prefs.putString(mContext, Prefs.Key.ACCESSIBILITY_FLOATING_MENU_POSITION, mLastPosition); } private void mockActivityQuery(boolean successfulQuery) { // Query just needs to return a non-empty set to be successful. ArrayList<ResolveInfo> resolveInfos = new ArrayList<>(); if (successfulQuery) { resolveInfos.add(new ResolveInfo()); } when(mMockPackageManager.queryIntentActivities( any(), any(PackageManager.ResolveInfoFlags.class))).thenReturn(resolveInfos); } }