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

View File

@@ -87,6 +87,17 @@ public class AccessibilityFloatingMenuTest extends SysuiTestCase {
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
public void tearDown() {
mMenu.hide();