Merge "Import translations. DO NOT MERGE" into rvc-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1dbc0a0..4acfde3 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -12117,11 +12117,11 @@
<!-- 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>
<!-- 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] -->
- <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] -->
- <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] -->
<string name="help_uri_5g_dsds" translatable="false"></string>
diff --git a/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java b/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
index 4077e91..3911fb8 100644
--- a/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
+++ b/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
@@ -69,7 +69,7 @@
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);
+ return AnnotationSpan.textWithoutLink(mContext.getText(R.string.no_5g_in_dsds_text));
}
}
diff --git a/src/com/android/settings/utils/AnnotationSpan.java b/src/com/android/settings/utils/AnnotationSpan.java
index 1b8179d..98256a0 100644
--- a/src/com/android/settings/utils/AnnotationSpan.java
+++ b/src/com/android/settings/utils/AnnotationSpan.java
@@ -27,6 +27,9 @@
import android.util.Log;
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
* annotation.
@@ -76,6 +79,23 @@
}
/**
+ * 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
*/
public static class LinkInfo {
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index a884576..5c48dfd 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -631,21 +631,23 @@
}
private void refreshMacAddress() {
- String macAddress = mWifiEntry.getMacAddress();
- if (macAddress == null) {
+ final String macAddress = mWifiEntry.getMacAddress();
+ if (TextUtils.isEmpty(macAddress)) {
mMacAddressPref.setVisible(false);
return;
}
mMacAddressPref.setVisible(true);
+
+ mMacAddressPref.setTitle((mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC)
+ ? R.string.wifi_advanced_randomized_mac_address_title
+ : R.string.wifi_advanced_device_mac_address_title);
+
if (macAddress.equals(WifiInfo.DEFAULT_MAC_ADDRESS)) {
mMacAddressPref.setSummary(R.string.device_info_not_available);
} else {
mMacAddressPref.setSummary(macAddress);
}
-
- // MAC Address Pref Title
- refreshMacTitle();
}
private void updatePreference(Preference pref, String detailText) {
@@ -930,24 +932,6 @@
}
}
- private void refreshMacTitle() {
- if (!mWifiEntry.isSaved()) {
- return;
- }
-
- // For saved Passpoint network, framework doesn't have the field to keep the MAC choice
- // persistently, so Passpoint network will always use the default value so far, which is
- // randomized MAC address, so don't need to modify title.
- if (mWifiEntry.isSubscription()) {
- return;
- }
-
- mMacAddressPref.setTitle(
- (mWifiEntry.getPrivacy() == WifiEntry.PRIVACY_RANDOMIZED_MAC)
- ? R.string.wifi_advanced_randomized_mac_address_title
- : R.string.wifi_advanced_device_mac_address_title);
- }
-
/**
* Indicates the state of the WifiEntry has changed and clients may retrieve updates through
* the WifiEntry getter methods.