From e8f19bb6d060133e461791fc51c243f081fc00d0 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Wed, 16 Dec 2020 21:24:12 +0800 Subject: [PATCH 32/35] Revert "Remove unused SystemProperties.set" This reverts commit debb4616ef67f9ed5054eca51ec58592358ff55f. * Needed for SPRD IMS --- .../android/telephony/TelephonyManager.java | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 1b197b00069..89147084043 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -7033,6 +7033,75 @@ public class TelephonyManager { } } + /** + * Sets a per-phone telephony property with the value specified. + * + * @hide + */ + @UnsupportedAppUsage + public static void setTelephonyProperty(int phoneId, String property, String value) { + String propVal = ""; + String p[] = null; + String prop = SystemProperties.get(property); + + if (value == null) { + value = ""; + } + value.replace(',', ' '); + if (prop != null) { + p = prop.split(","); + } + + if (!SubscriptionManager.isValidPhoneId(phoneId)) { + Rlog.d(TAG, "setTelephonyProperty: invalid phoneId=" + phoneId + + " property=" + property + " value: " + value + " prop=" + prop); + return; + } + + for (int i = 0; i < phoneId; i++) { + String str = ""; + if ((p != null) && (i < p.length)) { + str = p[i]; + } + propVal = propVal + str + ","; + } + + propVal = propVal + value; + if (p != null) { + for (int i = phoneId + 1; i < p.length; i++) { + propVal = propVal + "," + p[i]; + } + } + + int propValLen = propVal.length(); + try { + propValLen = propVal.getBytes("utf-8").length; + } catch (java.io.UnsupportedEncodingException e) { + Rlog.d(TAG, "setTelephonyProperty: utf-8 not supported"); + } + if (propValLen > SystemProperties.PROP_VALUE_MAX) { + Rlog.d(TAG, "setTelephonyProperty: property too long phoneId=" + phoneId + + " property=" + property + " value: " + value + " propVal=" + propVal); + return; + } + + SystemProperties.set(property, propVal); + } + + /** + * Sets a global telephony property with the value specified. + * + * @hide + */ + public static void setTelephonyProperty(String property, String value) { + if (value == null) { + value = ""; + } + Rlog.d(TAG, "setTelephonyProperty: success" + " property=" + + property + " value: " + value); + SystemProperties.set(property, value); + } + /** * Inserts or updates a list property. Expands the list if its length is not enough. */ -- 2.25.1