Loading res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -5967,6 +5967,8 @@ <string name="accessibility_hac_mode_title">Hearing aid compatibility</string> <!--Summary for the Hearing Aid Compatibility preference in the accessibility page. [CHAR LIMIT=NONE] --> <string name="accessibility_hac_mode_summary">Improves compatibility with telecoils and reduces unwanted noise</string> <!-- Message for the Hearing Aid Compatibility disclaimer dialog. The dialog will not show if this string is empty. [CHAR LIMIT=NONE] --> <string name="hac_disclaimer_message"></string> <!-- Title for accessibility hearing device page footer. [CHAR LIMIT=40] --> <string name="accessibility_hearing_device_about_title">About hearing devices</string> <!-- Description for text in accessibility hearing aids footer. [CHAR LIMIT=NONE] --> src/com/android/settings/accessibility/AccessibilityHearingAidsFragment.java +1 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ public class AccessibilityHearingAidsFragment extends AccessibilityShortcutPrefe super.onAttach(context); use(AvailableHearingDevicePreferenceController.class).init(this); use(SavedHearingDevicePreferenceController.class).init(this); use(HearingAidCompatibilityPreferenceController.class).init(this); } @Override Loading src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java +48 −0 Original line number Diff line number Diff line Loading @@ -16,19 +16,33 @@ package com.android.settings.accessibility; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.media.AudioManager; import android.os.Bundle; import android.provider.Settings; import android.telephony.TelephonyManager; import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentManager; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; /** Preference controller for Hearing Aid Compatibility (HAC) settings */ public class HearingAidCompatibilityPreferenceController extends TogglePreferenceController { private static final String TAG = HearingAidCompatibilityPreferenceController.class.getSimpleName(); // Hearing Aid Compatibility settings values static final String HAC_KEY = "HACSetting"; static final String HAC_VAL_ON = "ON"; Loading @@ -40,6 +54,7 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc private final TelephonyManager mTelephonyManager; private final AudioManager mAudioManager; private FragmentManager mFragmentManager; public HearingAidCompatibilityPreferenceController(Context context, String preferenceKey) { Loading @@ -48,6 +63,10 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc mAudioManager = context.getSystemService(AudioManager.class); } void init(DashboardFragment fragment) { mFragmentManager = fragment.getParentFragmentManager(); } @Override public int getAvailabilityStatus() { try { Loading @@ -68,6 +87,9 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc @Override public boolean setChecked(boolean isChecked) { if (isChecked && shouldShowDisclaimer()) { HacDisclaimerDialog.newInstance().show(mFragmentManager, TAG); } FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().changed( getMetricsCategory(), getPreferenceKey(), isChecked ? 1 : 0); setAudioParameterHacEnabled(isChecked); Loading @@ -84,4 +106,30 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc private void setAudioParameterHacEnabled(boolean enabled) { mAudioManager.setParameters(HAC_KEY + "=" + (enabled ? HAC_VAL_ON : HAC_VAL_OFF) + ";"); } private boolean shouldShowDisclaimer() { return !TextUtils.isEmpty(mContext.getText(R.string.hac_disclaimer_message)); } /** Dialog to tell user about the disclaimer to turn on HAC */ public static class HacDisclaimerDialog extends InstrumentedDialogFragment { static HacDisclaimerDialog newInstance() { return new HacDisclaimerDialog(); } @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setMessage(R.string.hac_disclaimer_message) .setPositiveButton(android.R.string.ok, null) .create(); } @Override public int getMetricsCategory() { return SettingsEnums.DIALOG_HAC_DISCLAIMER; } } } Loading
res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -5967,6 +5967,8 @@ <string name="accessibility_hac_mode_title">Hearing aid compatibility</string> <!--Summary for the Hearing Aid Compatibility preference in the accessibility page. [CHAR LIMIT=NONE] --> <string name="accessibility_hac_mode_summary">Improves compatibility with telecoils and reduces unwanted noise</string> <!-- Message for the Hearing Aid Compatibility disclaimer dialog. The dialog will not show if this string is empty. [CHAR LIMIT=NONE] --> <string name="hac_disclaimer_message"></string> <!-- Title for accessibility hearing device page footer. [CHAR LIMIT=40] --> <string name="accessibility_hearing_device_about_title">About hearing devices</string> <!-- Description for text in accessibility hearing aids footer. [CHAR LIMIT=NONE] -->
src/com/android/settings/accessibility/AccessibilityHearingAidsFragment.java +1 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ public class AccessibilityHearingAidsFragment extends AccessibilityShortcutPrefe super.onAttach(context); use(AvailableHearingDevicePreferenceController.class).init(this); use(SavedHearingDevicePreferenceController.class).init(this); use(HearingAidCompatibilityPreferenceController.class).init(this); } @Override Loading
src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java +48 −0 Original line number Diff line number Diff line Loading @@ -16,19 +16,33 @@ package com.android.settings.accessibility; import android.app.Dialog; import android.app.settings.SettingsEnums; import android.content.Context; import android.media.AudioManager; import android.os.Bundle; import android.provider.Settings; import android.telephony.TelephonyManager; import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentManager; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.FeatureFactory; /** Preference controller for Hearing Aid Compatibility (HAC) settings */ public class HearingAidCompatibilityPreferenceController extends TogglePreferenceController { private static final String TAG = HearingAidCompatibilityPreferenceController.class.getSimpleName(); // Hearing Aid Compatibility settings values static final String HAC_KEY = "HACSetting"; static final String HAC_VAL_ON = "ON"; Loading @@ -40,6 +54,7 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc private final TelephonyManager mTelephonyManager; private final AudioManager mAudioManager; private FragmentManager mFragmentManager; public HearingAidCompatibilityPreferenceController(Context context, String preferenceKey) { Loading @@ -48,6 +63,10 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc mAudioManager = context.getSystemService(AudioManager.class); } void init(DashboardFragment fragment) { mFragmentManager = fragment.getParentFragmentManager(); } @Override public int getAvailabilityStatus() { try { Loading @@ -68,6 +87,9 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc @Override public boolean setChecked(boolean isChecked) { if (isChecked && shouldShowDisclaimer()) { HacDisclaimerDialog.newInstance().show(mFragmentManager, TAG); } FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().changed( getMetricsCategory(), getPreferenceKey(), isChecked ? 1 : 0); setAudioParameterHacEnabled(isChecked); Loading @@ -84,4 +106,30 @@ public class HearingAidCompatibilityPreferenceController extends TogglePreferenc private void setAudioParameterHacEnabled(boolean enabled) { mAudioManager.setParameters(HAC_KEY + "=" + (enabled ? HAC_VAL_ON : HAC_VAL_OFF) + ";"); } private boolean shouldShowDisclaimer() { return !TextUtils.isEmpty(mContext.getText(R.string.hac_disclaimer_message)); } /** Dialog to tell user about the disclaimer to turn on HAC */ public static class HacDisclaimerDialog extends InstrumentedDialogFragment { static HacDisclaimerDialog newInstance() { return new HacDisclaimerDialog(); } @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setMessage(R.string.hac_disclaimer_message) .setPositiveButton(android.R.string.ok, null) .create(); } @Override public int getMetricsCategory() { return SettingsEnums.DIALOG_HAC_DISCLAIMER; } } }