Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7fd647e authored by jasonwshsu's avatar jasonwshsu
Browse files

[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
parent ad6351d6
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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;
    }

+17 −0
Original line number Diff line number Diff line
@@ -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(