[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
diff --git a/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java b/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java
index 04db825..5f84c3c 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.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 @@
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 605c258..bf29c95 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.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.os.Bundle;
+import android.util.FeatureFlagUtils;
import android.view.accessibility.AccessibilityManager;
import androidx.fragment.app.FragmentActivity;
@@ -172,6 +174,21 @@
}
@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(
SettingsEnums.ACCESSIBILITY_DETAILS_SETTINGS);