diff --git a/res/values/strings.xml b/res/values/strings.xml index 48552c33fe4..71ac1da1fbb 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -11310,4 +11310,12 @@ + + When using 2 SIMs, this phone will be limited to 4G. Learn more. + + When using 2 SIMs, this tablet will be limited to 4G. Learn more. + + When using 2 SIMs, this device will be limited to 4G. Learn more. + + diff --git a/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java b/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java index e0247885908..b8cf9966850 100644 --- a/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java +++ b/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java @@ -17,10 +17,17 @@ package com.android.settings.network.telephony; import android.content.Context; +import android.content.Intent; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import androidx.preference.Preference; + +import com.android.settings.R; import com.android.settings.core.BasePreferenceController; +import com.android.settings.utils.AnnotationSpan; +import com.android.settingslib.HelpUtils; + /** * Class to show the footer that can't connect to 5G when device is in DSDS mode. @@ -43,6 +50,29 @@ public class NrDisabledInDsdsFooterPreferenceController extends BasePreferenceCo mSubId = subId; } + @Override + public void updateState(Preference preference) { + super.updateState(preference); + + if (preference != null) { + preference.setTitle(getFooterText()); + } + } + + private CharSequence getFooterText() { + final Intent helpIntent = HelpUtils.getHelpIntent(mContext, + mContext.getString(R.string.help_uri_5g_dsds), + mContext.getClass().getName()); + final AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo(mContext, + "url", helpIntent); + + if (linkInfo.isActionable()) { + return AnnotationSpan.linkify(mContext.getText(R.string.no_5g_in_dsds_text), linkInfo); + } else { + return mContext.getText(R.string.no_5g_in_dsds_text); + } + } + @Override public int getAvailabilityStatus() { if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {