Merge "[Settings] Learn more link should be removed when not supported." into rvc-dev am: 136cb73ae6 am: 8793b373be

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11970202

Change-Id: Ic8100d80a87dbc9160e6f0cd0d2d0da4648c1b86
This commit is contained in:
Bonian Chen
2020-06-29 02:05:26 +00:00
committed by Automerger Merge Worker
3 changed files with 24 additions and 4 deletions

View File

@@ -12120,11 +12120,11 @@
<!-- Content description for the 5G limited VoLTE dialog. [CHAR LIMIT=NONE] --> <!-- Content description for the 5G limited VoLTE dialog. [CHAR LIMIT=NONE] -->
<string name="volte_5G_limited_text">This also turns off your 5G connection.\nDuring a voice call, you can\u2019t use the internet and some apps may not work.</string> <string name="volte_5G_limited_text">This also turns off your 5G connection.\nDuring a voice call, you can\u2019t use the internet and some apps may not work.</string>
<!-- Footer to show current limitation of 5G on DSDS mode. [CHAR LIMIT=NONE] --> <!-- Footer to show current limitation of 5G on DSDS mode. [CHAR LIMIT=NONE] -->
<string name="no_5g_in_dsds_text" product="default">When using 2 SIMs, this phone will be limited to 4G. <annotation id="url">Learn more</annotation>.</string> <string name="no_5g_in_dsds_text" product="default">When using 2 SIMs, this phone will be limited to 4G. <annotation id="url">Learn more</annotation></string>
<!-- Footer to show current limitation of 5G on DSDS mode for tablets. [CHAR LIMIT=NONE] --> <!-- Footer to show current limitation of 5G on DSDS mode for tablets. [CHAR LIMIT=NONE] -->
<string name="no_5g_in_dsds_text" product="tablet">When using 2 SIMs, this tablet will be limited to 4G. <annotation id="url">Learn more</annotation>.</string> <string name="no_5g_in_dsds_text" product="tablet">When using 2 SIMs, this tablet will be limited to 4G. <annotation id="url">Learn more</annotation></string>
<!-- Footer to show current limitation of 5G on DSDS mode for general devices. [CHAR LIMIT=NONE] --> <!-- Footer to show current limitation of 5G on DSDS mode for general devices. [CHAR LIMIT=NONE] -->
<string name="no_5g_in_dsds_text" product="device">When using 2 SIMs, this device will be limited to 4G. <annotation id="url">Learn more</annotation>.</string> <string name="no_5g_in_dsds_text" product="device">When using 2 SIMs, this device will be limited to 4G. <annotation id="url">Learn more</annotation></string>
<!-- Help URI, 5G limitation in DSDS condition. [DO NOT TRANSLATE] --> <!-- Help URI, 5G limitation in DSDS condition. [DO NOT TRANSLATE] -->
<string name="help_uri_5g_dsds" translatable="false"></string> <string name="help_uri_5g_dsds" translatable="false"></string>

View File

@@ -69,7 +69,7 @@ public class NrDisabledInDsdsFooterPreferenceController extends BasePreferenceCo
if (linkInfo.isActionable()) { if (linkInfo.isActionable()) {
return AnnotationSpan.linkify(mContext.getText(R.string.no_5g_in_dsds_text), linkInfo); return AnnotationSpan.linkify(mContext.getText(R.string.no_5g_in_dsds_text), linkInfo);
} else { } else {
return mContext.getText(R.string.no_5g_in_dsds_text); return AnnotationSpan.textWithoutLink(mContext.getText(R.string.no_5g_in_dsds_text));
} }
} }

View File

@@ -27,6 +27,9 @@ import android.text.style.URLSpan;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import java.util.Arrays;
import java.util.Comparator;
/** /**
* This class is used to add {@link View.OnClickListener} for the text been wrapped by * This class is used to add {@link View.OnClickListener} for the text been wrapped by
* annotation. * annotation.
@@ -75,6 +78,23 @@ public class AnnotationSpan extends URLSpan {
return builder; return builder;
} }
/**
* get the text part without having text for link part
*/
public static CharSequence textWithoutLink(CharSequence encodedText) {
SpannableString msg = new SpannableString(encodedText);
Annotation[] spans = msg.getSpans(0, msg.length(), Annotation.class);
if (spans == null) {
return encodedText;
}
Arrays.sort(spans, Comparator.comparingInt(span -> -msg.getSpanStart(span)));
StringBuilder msgWithoutLink = new StringBuilder(msg.toString());
for (Annotation span : spans) {
msgWithoutLink.delete(msg.getSpanStart(span), msg.getSpanEnd(span));
}
return msgWithoutLink.toString();
}
/** /**
* Data class to store the annotation and the click action * Data class to store the annotation and the click action
*/ */