Merge "Check target is empty before showing it in AccessibilityFloatingMenu" into tm-dev

This commit is contained in:
Menghan Li
2022-04-20 06:15:01 +00:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 1 deletions

View File

@@ -39,10 +39,13 @@ import android.text.TextUtils;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.android.internal.accessibility.dialog.AccessibilityTarget;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.Prefs; import com.android.systemui.Prefs;
import com.android.systemui.shared.system.SysUiStatsLog; import com.android.systemui.shared.system.SysUiStatsLog;
import java.util.List;
/** /**
* Contains logic for an accessibility floating menu view. * Contains logic for an accessibility floating menu view.
*/ */
@@ -120,9 +123,13 @@ public class AccessibilityFloatingMenu implements IAccessibilityFloatingMenu {
if (isShowing()) { if (isShowing()) {
return; return;
} }
final List<AccessibilityTarget> targetList = getTargets(mContext, ACCESSIBILITY_BUTTON);
if (targetList.isEmpty()) {
return;
}
mMenuView.show(); mMenuView.show();
mMenuView.onTargetsChanged(getTargets(mContext, ACCESSIBILITY_BUTTON)); mMenuView.onTargetsChanged(targetList);
mMenuView.updateOpacityWith(isFadeEffectEnabled(mContext), mMenuView.updateOpacityWith(isFadeEffectEnabled(mContext),
getOpacityValue(mContext)); getOpacityValue(mContext));
mMenuView.setSizeType(getSizeType(mContext)); mMenuView.setSizeType(getSizeType(mContext));

View File

@@ -87,6 +87,17 @@ public class AccessibilityFloatingMenuTest extends SysuiTestCase {
assertThat(mMenuView.isShowing()).isFalse(); assertThat(mMenuView.isShowing()).isFalse();
} }
@Test
public void showMenuView_emptyTarget_notShow() {
final List<String> emptyTargets = new ArrayList<>();
doReturn(emptyTargets).when(mAccessibilityManager).getAccessibilityShortcutTargets(
anyInt());
mMenu.show();
assertThat(mMenuView.isShowing()).isFalse();
}
@After @After
public void tearDown() { public void tearDown() {
mMenu.hide(); mMenu.hide();