Merge changes from topic "DEFAULT_PREFERRED_NETWORK_MODE"

* changes:
  Make DEFAULT_PREFERRED_NETWORK_MODE @hide for now
  Add new system API constant DEFAULT_PREFERRED_NETWORK_MODE
  Remove usage of Telephonymanager getDefault() hidden API
  SettingsProvider: use sysprop as API for telephony
This commit is contained in:
Calvin Pan
2020-04-14 02:13:14 +00:00
committed by Gerrit Code Review
2 changed files with 29 additions and 19 deletions

View File

@@ -41,6 +41,7 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.provider.Settings.Secure;
import android.sysprop.TelephonyProperties;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
@@ -2496,9 +2497,7 @@ class DatabaseHelper extends SQLiteOpenHelper {
// Data roaming default, based on build
loadSetting(stmt, Settings.Global.DATA_ROAMING,
"true".equalsIgnoreCase(
SystemProperties.get("ro.com.android.dataroaming",
"false")) ? 1 : 0);
TelephonyProperties.data_roaming().orElse(false) ? 1 : 0);
loadBooleanSetting(stmt, Settings.Global.DEVICE_PROVISIONED,
R.bool.def_device_provisioned);
@@ -2519,9 +2518,7 @@ class DatabaseHelper extends SQLiteOpenHelper {
// Mobile Data default, based on build
loadSetting(stmt, Settings.Global.MOBILE_DATA,
"true".equalsIgnoreCase(
SystemProperties.get("ro.com.android.mobiledata",
"true")) ? 1 : 0);
TelephonyProperties.mobile_data().orElse(true) ? 1 : 0);
loadBooleanSetting(stmt, Settings.Global.NETSTATS_ENABLED,
R.bool.def_netstats_enabled);
@@ -2575,20 +2572,22 @@ class DatabaseHelper extends SQLiteOpenHelper {
// Set the preferred network mode to target desired value or Default
// value defined in system property
String val = "";
String mode;
for (int phoneId = 0;
phoneId < getTelephonyManager().getPhoneCount(); phoneId++) {
mode = TelephonyManager.getTelephonyProperty(phoneId,
"ro.telephony.default_network",
Integer.toString(RILConstants.PREFERRED_NETWORK_MODE));
if (phoneId == 0) {
val = mode;
} else {
val = val + "," + mode;
}
StringBuilder val = new StringBuilder();
List<Integer> defaultNetworks = TelephonyProperties.default_network();
int phoneCount = 1;
TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
if (telephonyManager != null) {
phoneCount = telephonyManager.getSupportedModemCount();
}
loadSetting(stmt, Settings.Global.PREFERRED_NETWORK_MODE, val);
for (int phoneId = 0; phoneId < phoneCount; phoneId++) {
int mode = defaultNetworks.size() <= phoneId
|| defaultNetworks.get(phoneId) == null
? TelephonyManager.DEFAULT_PREFERRED_NETWORK_MODE
: defaultNetworks.get(phoneId);
if (phoneId > 0) val.append(',');
val.append(mode);
}
loadSetting(stmt, Settings.Global.PREFERRED_NETWORK_MODE, val.toString());
// Set the preferred cdma subscription source to target desired value or default
// value defined in Phone

View File

@@ -7610,6 +7610,17 @@ public class TelephonyManager {
public static final int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA =
RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
/**
* The default preferred network mode constant.
*
* <p> This constant is used in case of nothing is set in
* TelephonyProperties#default_network().
*
* @hide
*/
public static final int DEFAULT_PREFERRED_NETWORK_MODE =
RILConstants.PREFERRED_NETWORK_MODE;
/**
* Get the preferred network type.
* Used for device configuration by some CDMA operators.