From a7fd647ef7ff4234e54ade03b590fca9d3e4a55f Mon Sep 17 00:00:00 2001 From: jasonwshsu Date: Fri, 9 Dec 2022 02:16:56 +0800 Subject: [PATCH] [Hearing device shortcut] Provide a way to open accessibility hearing device settings via intent * hearing device shortcut trigger action is to open accessibility hearing device settings. Framework needs a way to open it. Bug: 237625815 Test: adb shell am start -a \ "android.settings.ACCESSIBILITY_DETAILS_SETTINGS" \ --es android.intent.extra.COMPONENT_NAME \ "com.android.server.accessibility/HearingAids" Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityDetailsSettingsFragmentTest Change-Id: Ie47e24d29998eac0cf4805e1ac4e7d2bcb77ed8e --- .../AccessibilityDetailsSettingsFragment.java | 9 +++++++++ ...ccessibilityDetailsSettingsFragmentTest.java | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java b/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java index 04db8253b03..5f84c3c6f80 100644 --- a/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java +++ b/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java @@ -17,6 +17,7 @@ package com.android.settings.accessibility; import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_BUTTON_COMPONENT_NAME; +import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME; import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME; import android.accessibilityservice.AccessibilityServiceInfo; @@ -31,6 +32,7 @@ import android.content.pm.ServiceInfo; import android.os.Bundle; import android.os.UserHandle; import android.text.TextUtils; +import android.util.FeatureFlagUtils; import android.util.Log; import android.view.accessibility.AccessibilityManager; @@ -113,6 +115,13 @@ public class AccessibilityDetailsSettingsFragment extends InstrumentedFragment { return new LaunchFragmentArguments(destination, /* arguments= */ null); } + if (ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME.equals(componentName) + && FeatureFlagUtils.isEnabled(getContext(), + FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE)) { + final String destination = AccessibilityHearingAidsFragment.class.getName(); + return new LaunchFragmentArguments(destination, /* arguments= */ null); + } + return null; } diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java index 605c258b88e..bf29c95984a 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java @@ -17,6 +17,7 @@ package com.android.settings.accessibility; import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_BUTTON_COMPONENT_NAME; +import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME; import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME; import static com.google.common.truth.Truth.assertThat; @@ -36,6 +37,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.Bundle; +import android.util.FeatureFlagUtils; import android.view.accessibility.AccessibilityManager; import androidx.fragment.app.FragmentActivity; @@ -171,6 +173,21 @@ public class AccessibilityDetailsSettingsFragmentTest { AccessibilityButtonFragment.class.getName()); } + @Test + public void onCreate_hearingAidsComponentName_launchAccessibilityHearingAidsFragment() { + FeatureFlagUtils.setEnabled(mContext, + FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, true); + final Intent intent = new Intent(); + intent.putExtra(Intent.EXTRA_COMPONENT_NAME, + ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME.flattenToString()); + doReturn(intent).when(mActivity).getIntent(); + + mFragment.onCreate(Bundle.EMPTY); + + assertStartActivityWithExpectedFragment(mActivity, + AccessibilityHearingAidsFragment.class.getName()); + } + @Test public void getMetricsCategory_returnsCorrectCategory() { assertThat(mFragment.getMetricsCategory()).isEqualTo(