diff options
| author | 2019-12-20 02:22:19 +0000 | |
|---|---|---|
| committer | 2019-12-20 02:22:19 +0000 | |
| commit | 91bc7be71258dfd87d308f414c4f92b1c5efeaca (patch) | |
| tree | a579e9cf8616a9fb63b3b5031c538004c28f7b48 | |
| parent | da7191db0f7b500d3f7b93e797175ff5a3184f91 (diff) | |
| parent | dc4de88fec9540c1da48e5f9e5a9a8b01c3f9410 (diff) | |
Merge "Use sysprop library for telephony props" am: afb16fa9d4 am: dc4de88fec
Change-Id: Iae5ca6c30dd3a72d5da921cf45d9c282bcff2703
7 files changed, 144 insertions, 110 deletions
diff --git a/cmds/telecom/src/com/android/commands/telecom/Telecom.java b/cmds/telecom/src/com/android/commands/telecom/Telecom.java index 9061ed1d48af..1987440106f5 100644 --- a/cmds/telecom/src/com/android/commands/telecom/Telecom.java +++ b/cmds/telecom/src/com/android/commands/telecom/Telecom.java @@ -25,8 +25,8 @@ import android.os.Looper; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; -import android.os.SystemProperties; import android.os.UserHandle; +import android.sysprop.TelephonyProperties; import android.telecom.Log; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; @@ -35,7 +35,6 @@ import android.text.TextUtils; import com.android.internal.os.BaseCommand; import com.android.internal.telecom.ITelecomService; -import com.android.internal.telephony.TelephonyProperties; import java.io.PrintStream; @@ -363,7 +362,7 @@ public final class Telecom extends BaseCommand { * "" (empty string) for a phone in SS mode */ private void runGetSimConfig() throws RemoteException { - System.out.println(SystemProperties.get(TelephonyProperties.PROPERTY_MULTI_SIM_CONFIG)); + System.out.println(TelephonyProperties.multi_sim_config().orElse("")); } private void runGetMaxPhones() throws RemoteException { diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 772109a339f5..cc8f2d6e046e 100755 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -26,17 +26,17 @@ import android.annotation.UnsupportedAppUsage; import android.app.ActivityThread; import android.app.Application; import android.content.Context; +import android.sysprop.TelephonyProperties; import android.text.TextUtils; import android.util.Slog; import android.view.View; -import com.android.internal.telephony.TelephonyProperties; - import dalvik.system.VMRuntime; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * Information about the current build, extracted from system properties. @@ -99,7 +99,8 @@ public class Build { * {@link #getRadioVersion} instead. */ @Deprecated - public static final String RADIO = getString(TelephonyProperties.PROPERTY_BASEBAND_VERSION); + public static final String RADIO = joinListOrElse( + TelephonyProperties.baseband_version(), UNKNOWN); /** The name of the hardware (from the kernel command line or /proc). */ public static final String HARDWARE = getString("ro.hardware"); @@ -1089,7 +1090,8 @@ public class Build { final String requiredBootloader = SystemProperties.get("ro.build.expect.bootloader"); final String currentBootloader = SystemProperties.get("ro.bootloader"); final String requiredRadio = SystemProperties.get("ro.build.expect.baseband"); - final String currentRadio = SystemProperties.get("gsm.version.baseband"); + final String currentRadio = joinListOrElse( + TelephonyProperties.baseband_version(), ""); if (TextUtils.isEmpty(system)) { Slog.e(TAG, "Required ro.system.build.fingerprint is empty!"); @@ -1263,8 +1265,7 @@ public class Build { * null (if, for instance, the radio is not currently on). */ public static String getRadioVersion() { - String propVal = SystemProperties.get(TelephonyProperties.PROPERTY_BASEBAND_VERSION); - return TextUtils.isEmpty(propVal) ? null : propVal; + return joinListOrElse(TelephonyProperties.baseband_version(), null); } @UnsupportedAppUsage @@ -1289,4 +1290,10 @@ public class Build { return -1; } } + + private static <T> String joinListOrElse(List<T> list, String defaultValue) { + String ret = list.stream().map(elem -> elem == null ? "" : elem.toString()) + .collect(Collectors.joining(",")); + return ret.isEmpty() ? defaultValue : ret; + } } diff --git a/services/core/java/com/android/server/policy/LegacyGlobalActions.java b/services/core/java/com/android/server/policy/LegacyGlobalActions.java index 9cb2441d5662..68ba8a467f26 100644 --- a/services/core/java/com/android/server/policy/LegacyGlobalActions.java +++ b/services/core/java/com/android/server/policy/LegacyGlobalActions.java @@ -16,24 +16,6 @@ package com.android.server.policy; -import com.android.internal.app.AlertController; -import com.android.internal.globalactions.Action; -import com.android.internal.globalactions.ActionsAdapter; -import com.android.internal.globalactions.ActionsDialog; -import com.android.internal.globalactions.LongPressAction; -import com.android.internal.globalactions.SinglePressAction; -import com.android.internal.globalactions.ToggleAction; -import com.android.internal.logging.MetricsLogger; -import com.android.internal.logging.nano.MetricsProto.MetricsEvent; -import com.android.internal.R; -import com.android.internal.telephony.TelephonyIntents; -import com.android.internal.telephony.TelephonyProperties; -import com.android.internal.util.EmergencyAffordanceManager; -import com.android.internal.widget.LockPatternUtils; -import com.android.server.policy.PowerAction; -import com.android.server.policy.RestartAction; -import com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs; - import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.Context; @@ -57,6 +39,7 @@ import android.os.Vibrator; import android.provider.Settings; import android.service.dreams.DreamService; import android.service.dreams.IDreamManager; +import android.sysprop.TelephonyProperties; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.TelephonyManager; @@ -69,6 +52,21 @@ import android.view.WindowManager; import android.view.WindowManagerGlobal; import android.widget.AdapterView; +import com.android.internal.R; +import com.android.internal.app.AlertController; +import com.android.internal.globalactions.Action; +import com.android.internal.globalactions.ActionsAdapter; +import com.android.internal.globalactions.ActionsDialog; +import com.android.internal.globalactions.LongPressAction; +import com.android.internal.globalactions.SinglePressAction; +import com.android.internal.globalactions.ToggleAction; +import com.android.internal.logging.MetricsLogger; +import com.android.internal.logging.nano.MetricsProto.MetricsEvent; +import com.android.internal.telephony.TelephonyIntents; +import com.android.internal.util.EmergencyAffordanceManager; +import com.android.internal.widget.LockPatternUtils; +import com.android.server.policy.WindowManagerPolicy.WindowManagerFuncs; + import java.util.ArrayList; import java.util.List; @@ -229,8 +227,7 @@ class LegacyGlobalActions implements DialogInterface.OnDismissListener, DialogIn @Override public void onToggle(boolean on) { - if (mHasTelephony && Boolean.parseBoolean( - SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) { + if (mHasTelephony && TelephonyProperties.in_ecm_mode().orElse(false)) { mIsWaitingForEcmExit = true; // Launch ECM exit dialog Intent ecmDialogIntent = @@ -247,8 +244,7 @@ class LegacyGlobalActions implements DialogInterface.OnDismissListener, DialogIn if (!mHasTelephony) return; // In ECM mode airplane state cannot be changed - if (!(Boolean.parseBoolean( - SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE)))) { + if (!TelephonyProperties.in_ecm_mode().orElse(false)) { mState = buttonOn ? State.TurningOn : State.TurningOff; mAirplaneState = mState; } diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index 4a1bc1f6343f..67afa7d3a3c9 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -16,8 +16,6 @@ package android.telephony; -import static com.android.internal.telephony.TelephonyProperties.PROPERTY_OPERATOR_IDP_STRING; - import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; @@ -31,9 +29,9 @@ import android.database.Cursor; import android.location.CountryDetector; import android.net.Uri; import android.os.PersistableBundle; -import android.os.SystemProperties; import android.provider.Contacts; import android.provider.ContactsContract; +import android.sysprop.TelephonyProperties; import android.telecom.PhoneAccount; import android.text.Editable; import android.text.Spannable; @@ -2659,7 +2657,7 @@ public class PhoneNumberUtils { ps = NANP_IDP_STRING; } else { // in case, there is no IDD is found, we shouldn't convert it. - ps = SystemProperties.get(PROPERTY_OPERATOR_IDP_STRING, PLUS_SIGN_STRING); + ps = TelephonyProperties.operator_idp_string().orElse(PLUS_SIGN_STRING); } return ps; } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index b9a3206507ae..0e384a938d2b 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -62,6 +62,7 @@ import android.os.SystemProperties; import android.os.WorkSource; import android.provider.Settings.SettingNotFoundException; import android.service.carrier.CarrierIdentifier; +import android.sysprop.TelephonyProperties; import android.telecom.CallScreeningService; import android.telecom.InCallService; import android.telecom.PhoneAccount; @@ -101,7 +102,6 @@ import com.android.internal.telephony.OperatorInfo; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.RILConstants; import com.android.internal.telephony.SmsApplication; -import com.android.internal.telephony.TelephonyProperties; import dalvik.system.VMRuntime; @@ -390,7 +390,7 @@ public class TelephonyManager { @UnsupportedAppUsage public MultiSimVariants getMultiSimConfiguration() { String mSimConfig = - SystemProperties.get(TelephonyProperties.PROPERTY_MULTI_SIM_CONFIG); + TelephonyProperties.multi_sim_config().orElse(""); if (mSimConfig.equals("dsds")) { return MultiSimVariants.DSDS; } else if (mSimConfig.equals("dsda")) { @@ -456,8 +456,7 @@ public class TelephonyManager { * {@link #getActiveModemCount} returns 1 while this API returns 2. */ public @ModemCount int getSupportedModemCount() { - return SystemProperties.getInt(TelephonyProperties.PROPERTY_MAX_ACTIVE_MODEMS, - getActiveModemCount()); + return TelephonyProperties.max_active_modems().orElse(getActiveModemCount()); } /** @@ -2084,12 +2083,10 @@ public class TelephonyManager { /** {@hide} */ @UnsupportedAppUsage private int getPhoneTypeFromProperty(int phoneId) { - String type = getTelephonyProperty(phoneId, - TelephonyProperties.CURRENT_ACTIVE_PHONE, null); - if (type == null || type.isEmpty()) { - return getPhoneTypeFromNetworkType(phoneId); - } - return Integer.parseInt(type); + Integer type = getTelephonyProperty( + phoneId, TelephonyProperties.current_active_phone(), null); + if (type != null) return type; + return getPhoneTypeFromNetworkType(phoneId); } private int getPhoneTypeFromNetworkType() { @@ -2101,9 +2098,9 @@ public class TelephonyManager { // When the system property CURRENT_ACTIVE_PHONE, has not been set, // use the system property for default network type. // This is a fail safe, and can only happen at first boot. - String mode = getTelephonyProperty(phoneId, "ro.telephony.default_network", null); - if (mode != null && !mode.isEmpty()) { - return TelephonyManager.getPhoneType(Integer.parseInt(mode)); + Integer mode = getTelephonyProperty(phoneId, TelephonyProperties.default_network(), null); + if (mode != null) { + return TelephonyManager.getPhoneType(mode); } return TelephonyManager.PHONE_TYPE_NONE; } @@ -2207,7 +2204,7 @@ public class TelephonyManager { /** The ProductType used for LTE on CDMA devices */ private static final String sLteOnCdmaProductType = - SystemProperties.get(TelephonyProperties.PROPERTY_LTE_ON_CDMA_PRODUCT_TYPE, ""); + TelephonyProperties.lte_on_cdma_product_type().orElse(""); /** * Return if the current radio is LTE on CDMA. This @@ -2225,8 +2222,8 @@ public class TelephonyManager { int curVal; String productType = ""; - curVal = SystemProperties.getInt(TelephonyProperties.PROPERTY_LTE_ON_CDMA_DEVICE, - PhoneConstants.LTE_ON_CDMA_UNKNOWN); + curVal = TelephonyProperties.lte_on_cdma_device().orElse( + PhoneConstants.LTE_ON_CDMA_UNKNOWN); retVal = curVal; if (retVal == PhoneConstants.LTE_ON_CDMA_UNKNOWN) { Matcher matcher = sProductTypePattern.matcher(sKernelCmdLine); @@ -2278,7 +2275,7 @@ public class TelephonyManager { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) public String getNetworkOperatorName(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); - return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_ALPHA, ""); + return getTelephonyProperty(phoneId, TelephonyProperties.operator_alpha(), ""); } /** @@ -2322,7 +2319,7 @@ public class TelephonyManager { **/ @UnsupportedAppUsage public String getNetworkOperatorForPhone(int phoneId) { - return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_NUMERIC, ""); + return getTelephonyProperty(phoneId, TelephonyProperties.operator_numeric(), ""); } @@ -2386,8 +2383,7 @@ public class TelephonyManager { @UnsupportedAppUsage public boolean isNetworkRoaming(int subId) { int phoneId = SubscriptionManager.getPhoneId(subId); - return Boolean.parseBoolean(getTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_OPERATOR_ISROAMING, null)); + return getTelephonyProperty(subId, TelephonyProperties.operator_is_roaming(), false); } /** @@ -3344,8 +3340,7 @@ public class TelephonyManager { */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) public String getSimOperatorNumericForPhone(int phoneId) { - return getTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, ""); + return getTelephonyProperty(phoneId, TelephonyProperties.icc_operator_numeric(), ""); } /** @@ -3382,8 +3377,7 @@ public class TelephonyManager { */ @UnsupportedAppUsage public String getSimOperatorNameForPhone(int phoneId) { - return getTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_ICC_OPERATOR_ALPHA, ""); + return getTelephonyProperty(phoneId, TelephonyProperties.icc_operator_alpha(), ""); } /** @@ -3415,8 +3409,7 @@ public class TelephonyManager { */ @UnsupportedAppUsage public String getSimCountryIsoForPhone(int phoneId) { - return getTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY, ""); + return getTelephonyProperty(phoneId, TelephonyProperties.icc_operator_iso_country(), ""); } /** @@ -6495,6 +6488,15 @@ public class TelephonyManager { } /** + * Inserts or updates a list property. Expands the list if its length is not enough. + */ + private static <T> List<T> updateTelephonyProperty(List<T> prop, int phoneId, T value) { + List<T> ret = new ArrayList<>(prop); + while (ret.size() <= phoneId) ret.add(null); + ret.set(phoneId, value); + return ret; + } + /** * Convenience function for retrieving a value from the secure settings * value list as an integer. Note that internally setting values are * always stored as strings; this function converts the string to an @@ -6585,7 +6587,7 @@ public class TelephonyManager { } /** - * Gets a per-phone telephony property. + * Gets a per-phone telephony property from a property name. * * @hide */ @@ -6603,6 +6605,15 @@ public class TelephonyManager { } /** + * Gets a typed per-phone telephony property from a schematized list property. + */ + private static <T> T getTelephonyProperty(int phoneId, List<T> prop, T defaultValue) { + T ret = null; + if (phoneId >= 0 && phoneId < prop.size()) ret = prop.get(phoneId); + return ret != null ? ret : defaultValue; + } + + /** * Gets a global telephony property. * * See also getTelephonyProperty(phoneId, property, defaultVal). Most telephony properties are @@ -8979,7 +8990,7 @@ public class TelephonyManager { } /** - * Set TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC for the default phone. + * Set TelephonyProperties.icc_operator_numeric for the default phone. * * @hide */ @@ -8989,18 +9000,21 @@ public class TelephonyManager { } /** - * Set TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC for the given phone. + * Set TelephonyProperties.icc_operator_numeric for the given phone. * * @hide */ @UnsupportedAppUsage public void setSimOperatorNumericForPhone(int phoneId, String numeric) { - setTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, numeric); + if (SubscriptionManager.isValidPhoneId(phoneId)) { + List<String> newList = updateTelephonyProperty( + TelephonyProperties.icc_operator_numeric(), phoneId, numeric); + TelephonyProperties.icc_operator_numeric(newList); + } } /** - * Set TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC for the default phone. + * Set TelephonyProperties.icc_operator_alpha for the default phone. * * @hide */ @@ -9010,18 +9024,21 @@ public class TelephonyManager { } /** - * Set TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC for the given phone. + * Set TelephonyProperties.icc_operator_alpha for the given phone. * * @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public void setSimOperatorNameForPhone(int phoneId, String name) { - setTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_ICC_OPERATOR_ALPHA, name); + if (SubscriptionManager.isValidPhoneId(phoneId)) { + List<String> newList = updateTelephonyProperty( + TelephonyProperties.icc_operator_alpha(), phoneId, name); + TelephonyProperties.icc_operator_alpha(newList); + } } /** - * Set TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY for the default phone. + * Set TelephonyProperties.icc_operator_iso_country for the default phone. * * @hide */ @@ -9031,18 +9048,21 @@ public class TelephonyManager { } /** - * Set TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY for the given phone. + * Set TelephonyProperties.icc_operator_iso_country for the given phone. * * @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public void setSimCountryIsoForPhone(int phoneId, String iso) { - setTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY, iso); + if (SubscriptionManager.isValidPhoneId(phoneId)) { + List<String> newList = updateTelephonyProperty( + TelephonyProperties.icc_operator_iso_country(), phoneId, iso); + TelephonyProperties.icc_operator_iso_country(newList); + } } /** - * Set TelephonyProperties.PROPERTY_SIM_STATE for the default phone. + * Set TelephonyProperties.sim_state for the default phone. * * @hide */ @@ -9052,14 +9072,17 @@ public class TelephonyManager { } /** - * Set TelephonyProperties.PROPERTY_SIM_STATE for the given phone. + * Set TelephonyProperties.sim_state for the given phone. * * @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public void setSimStateForPhone(int phoneId, String state) { - setTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_SIM_STATE, state); + if (SubscriptionManager.isValidPhoneId(phoneId)) { + List<String> newList = updateTelephonyProperty( + TelephonyProperties.sim_state(), phoneId, state); + TelephonyProperties.sim_state(newList); + } } /** @@ -9164,7 +9187,11 @@ public class TelephonyManager { */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public void setBasebandVersionForPhone(int phoneId, String version) { - setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_BASEBAND_VERSION, version); + if (SubscriptionManager.isValidPhoneId(phoneId)) { + List<String> newList = updateTelephonyProperty( + TelephonyProperties.baseband_version(), phoneId, version); + TelephonyProperties.baseband_version(newList); + } } /** @@ -9187,8 +9214,8 @@ public class TelephonyManager { */ private String getBasebandVersionLegacy(int phoneId) { if (SubscriptionManager.isValidPhoneId(phoneId)) { - String prop = TelephonyProperties.PROPERTY_BASEBAND_VERSION + - ((phoneId == 0) ? "" : Integer.toString(phoneId)); + String prop = "gsm.version.baseband" + + ((phoneId == 0) ? "" : Integer.toString(phoneId)); return SystemProperties.get(prop); } return null; @@ -9205,7 +9232,7 @@ public class TelephonyManager { if (version != null && !version.isEmpty()) { setBasebandVersionForPhone(phoneId, version); } - return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_BASEBAND_VERSION, ""); + return getTelephonyProperty(phoneId, TelephonyProperties.baseband_version(), ""); } /** @@ -9231,8 +9258,9 @@ public class TelephonyManager { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public void setPhoneType(int phoneId, int type) { if (SubscriptionManager.isValidPhoneId(phoneId)) { - TelephonyManager.setTelephonyProperty(phoneId, - TelephonyProperties.CURRENT_ACTIVE_PHONE, String.valueOf(type)); + List<Integer> newList = updateTelephonyProperty( + TelephonyProperties.current_active_phone(), phoneId, type); + TelephonyProperties.current_active_phone(newList); } } @@ -9261,8 +9289,8 @@ public class TelephonyManager { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public String getOtaSpNumberSchemaForPhone(int phoneId, String defaultValue) { if (SubscriptionManager.isValidPhoneId(phoneId)) { - return TelephonyManager.getTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_OTASP_NUM_SCHEMA, defaultValue); + return getTelephonyProperty( + phoneId, TelephonyProperties.otasp_num_schema(), defaultValue); } return defaultValue; @@ -9292,8 +9320,7 @@ public class TelephonyManager { */ public boolean getSmsReceiveCapableForPhone(int phoneId, boolean defaultValue) { if (SubscriptionManager.isValidPhoneId(phoneId)) { - return Boolean.parseBoolean(TelephonyManager.getTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_SMS_RECEIVE, String.valueOf(defaultValue))); + return getTelephonyProperty(phoneId, TelephonyProperties.sms_receive(), defaultValue); } return defaultValue; @@ -9323,8 +9350,7 @@ public class TelephonyManager { */ public boolean getSmsSendCapableForPhone(int phoneId, boolean defaultValue) { if (SubscriptionManager.isValidPhoneId(phoneId)) { - return Boolean.parseBoolean(TelephonyManager.getTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_SMS_SEND, String.valueOf(defaultValue))); + return getTelephonyProperty(phoneId, TelephonyProperties.sms_send(), defaultValue); } return defaultValue; @@ -9364,7 +9390,9 @@ public class TelephonyManager { @UnsupportedAppUsage public void setNetworkOperatorNameForPhone(int phoneId, String name) { if (SubscriptionManager.isValidPhoneId(phoneId)) { - setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_ALPHA, name); + List<String> newList = updateTelephonyProperty( + TelephonyProperties.operator_alpha(), phoneId, name); + TelephonyProperties.operator_alpha(newList); } } @@ -9386,7 +9414,11 @@ public class TelephonyManager { */ @UnsupportedAppUsage public void setNetworkOperatorNumericForPhone(int phoneId, String numeric) { - setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_NUMERIC, numeric); + if (SubscriptionManager.isValidPhoneId(phoneId)) { + List<String> newList = updateTelephonyProperty( + TelephonyProperties.operator_numeric(), phoneId, numeric); + TelephonyProperties.operator_numeric(newList); + } } /** @@ -9408,8 +9440,9 @@ public class TelephonyManager { @UnsupportedAppUsage public void setNetworkRoamingForPhone(int phoneId, boolean isRoaming) { if (SubscriptionManager.isValidPhoneId(phoneId)) { - setTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_ISROAMING, - isRoaming ? "true" : "false"); + List<Boolean> newList = updateTelephonyProperty( + TelephonyProperties.operator_is_roaming(), phoneId, isRoaming); + TelephonyProperties.operator_is_roaming(newList); } } @@ -9436,9 +9469,10 @@ public class TelephonyManager { @UnsupportedAppUsage public void setDataNetworkTypeForPhone(int phoneId, int type) { if (SubscriptionManager.isValidPhoneId(phoneId)) { - setTelephonyProperty(phoneId, - TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE, + List<String> newList = updateTelephonyProperty( + TelephonyProperties.data_network_type(), phoneId, ServiceState.rilRadioTechnologyToString(type)); + TelephonyProperties.data_network_type(newList); } } diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java index 4421c77dbbb1..9cbcd7fc6b04 100644 --- a/telephony/java/com/android/internal/telephony/RILConstants.java +++ b/telephony/java/com/android/internal/telephony/RILConstants.java @@ -16,10 +16,12 @@ package com.android.internal.telephony; -import android.telephony.TelephonyManager; +import android.sysprop.TelephonyProperties; import dalvik.annotation.compat.UnsupportedAppUsage; +import java.util.Optional; + /** * {@hide} */ @@ -233,8 +235,10 @@ public interface RILConstants { int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 33; @UnsupportedAppUsage - int PREFERRED_NETWORK_MODE = Integer.parseInt(TelephonyManager.getTelephonyProperty(0, - "ro.telephony.default_network", Integer.toString(NETWORK_MODE_WCDMA_PREF))); + int PREFERRED_NETWORK_MODE = Optional.of(TelephonyProperties.default_network()) + .filter(list -> !list.isEmpty()) + .map(list -> list.get(0)) + .orElse(NETWORK_MODE_WCDMA_PREF); int BAND_MODE_UNSPECIFIED = 0; //"unspecified" (selected by baseband automatically) int BAND_MODE_EURO = 1; //"EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000) diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java index 8b95617e82c8..1f7715b59aff 100644 --- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java @@ -16,10 +16,8 @@ package com.android.internal.telephony.cdma; -import static com.android.internal.telephony.TelephonyProperties.PROPERTY_OPERATOR_IDP_STRING; - import android.content.res.Resources; -import android.os.SystemProperties; +import android.sysprop.TelephonyProperties; import android.telephony.PhoneNumberUtils; import android.telephony.Rlog; import android.telephony.SmsCbLocation; @@ -34,7 +32,6 @@ import com.android.internal.telephony.SmsAddress; import com.android.internal.telephony.SmsConstants; import com.android.internal.telephony.SmsHeader; import com.android.internal.telephony.SmsMessageBase; -import com.android.internal.telephony.TelephonyProperties; import com.android.internal.telephony.cdma.sms.BearerData; import com.android.internal.telephony.cdma.sms.CdmaSmsAddress; import com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress; @@ -862,7 +859,7 @@ public class SmsMessage extends SmsMessageBase { // TODO: Skip it for EF SMS(SUBMIT and DELIVER) because the IDD depends on current network? // 2) Adds the '+' prefix if TON is International // 3) Keeps the '+' if address starts with the '+' - String idd = SystemProperties.get(PROPERTY_OPERATOR_IDP_STRING, null); + String idd = TelephonyProperties.operator_idp_string().orElse(null); addr.address = new String(addr.origBytes); if (!TextUtils.isEmpty(idd) && addr.address.startsWith(idd)) { addr.address = "+" + addr.address.substring(idd.length()); @@ -940,14 +937,13 @@ public class SmsMessage extends SmsMessageBase { // msgId==0 is (sometimes?) treated specially by lower levels. // Specifically, the ID is not preserved for delivery ACKs. // Hence, avoid 0 -- constraining the range to 1..65535. - int msgId = SystemProperties.getInt(TelephonyProperties.PROPERTY_CDMA_MSG_ID, 1); - String nextMsgId = Integer.toString((msgId % 0xFFFF) + 1); + int msgId = TelephonyProperties.cdma_msg_id().orElse(1); + int nextMsgId = msgId % 0xFFFF + 1; try{ - SystemProperties.set(TelephonyProperties.PROPERTY_CDMA_MSG_ID, nextMsgId); + TelephonyProperties.cdma_msg_id(nextMsgId); if (Rlog.isLoggable(LOGGABLE_TAG, Log.VERBOSE)) { - Rlog.d(LOG_TAG, "next " + TelephonyProperties.PROPERTY_CDMA_MSG_ID + " = " + nextMsgId); - Rlog.d(LOG_TAG, "readback gets " + - SystemProperties.get(TelephonyProperties.PROPERTY_CDMA_MSG_ID)); + Rlog.d(LOG_TAG, "next persist.radio.cdma.msgid = " + nextMsgId); + Rlog.d(LOG_TAG, "readback gets " + TelephonyProperties.cdma_msg_id().orElse(1)); } } catch(RuntimeException ex) { Rlog.e(LOG_TAG, "set nextMessage ID failed: " + ex); |