Make hidden API isDataCapable for Telephony
Rename isDataCapable to isDataConnectionEnabled as a System API for
System UI.
Cherry-picking TelephonyManager part of ag/10063635
Test: RILTest; Treehugger; cts
Bug: 147017757
Merged-In: I96b45575eb7f030f3dcb9539c06f8ec25539e2e9
Merged-In: I19ac83f5865e8763cd9414c41d4609f79d0db164
(cherry picked from commit 291415806f)
Change-Id: I96b45575eb7f030f3dcb9539c06f8ec25539e2e9
This commit is contained in:
@@ -9179,6 +9179,7 @@ package android.telephony {
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAnyRadioPoweredOn();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isApplicationOnUicc(int);
|
||||
method public boolean isCurrentSimOperator(@NonNull String, int, @Nullable String);
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataConnectionEnabled();
|
||||
method public boolean isDataConnectivityPossible();
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int);
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled();
|
||||
|
||||
@@ -658,7 +658,7 @@ public class MobileSignalController extends SignalController<
|
||||
}
|
||||
|
||||
boolean isDataDisabled() {
|
||||
return !mPhone.isDataCapable();
|
||||
return !mPhone.isDataConnectionEnabled();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
||||
@@ -169,7 +169,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase {
|
||||
protected void setupNetworkController() {
|
||||
// For now just pretend to be the data sim, so we can test that too.
|
||||
mSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
|
||||
when(mMockTm.isDataCapable()).thenReturn(true);
|
||||
when(mMockTm.isDataConnectionEnabled()).thenReturn(true);
|
||||
setDefaultSubId(mSubId);
|
||||
setSubscriptions(mSubId);
|
||||
mMobileSignalController = mNetworkController.mMobileSignalControllers.get(mSubId);
|
||||
|
||||
@@ -121,7 +121,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
||||
@Test
|
||||
public void testNoInternetIcon_withDefaultSub() {
|
||||
setupNetworkController();
|
||||
when(mMockTm.isDataCapable()).thenReturn(false);
|
||||
when(mMockTm.isDataConnectionEnabled()).thenReturn(false);
|
||||
setupDefaultSignal();
|
||||
updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 0);
|
||||
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
||||
@@ -135,7 +135,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
||||
@Test
|
||||
public void testDataDisabledIcon_withDefaultSub() {
|
||||
setupNetworkController();
|
||||
when(mMockTm.isDataCapable()).thenReturn(false);
|
||||
when(mMockTm.isDataConnectionEnabled()).thenReturn(false);
|
||||
setupDefaultSignal();
|
||||
updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
|
||||
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
||||
@@ -149,7 +149,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
||||
@Test
|
||||
public void testNonDefaultSIM_showsFullSignal_connected() {
|
||||
setupNetworkController();
|
||||
when(mMockTm.isDataCapable()).thenReturn(false);
|
||||
when(mMockTm.isDataConnectionEnabled()).thenReturn(false);
|
||||
setupDefaultSignal();
|
||||
setDefaultSubId(mSubId + 1);
|
||||
updateDataConnectionState(TelephonyManager.DATA_CONNECTED, 0);
|
||||
@@ -164,7 +164,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
||||
@Test
|
||||
public void testNonDefaultSIM_showsFullSignal_disconnected() {
|
||||
setupNetworkController();
|
||||
when(mMockTm.isDataCapable()).thenReturn(false);
|
||||
when(mMockTm.isDataConnectionEnabled()).thenReturn(false);
|
||||
setupDefaultSignal();
|
||||
setDefaultSubId(mSubId + 1);
|
||||
updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
|
||||
@@ -429,7 +429,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
||||
@Test
|
||||
public void testDataDisabledIcon_UserNotSetup() {
|
||||
setupNetworkController();
|
||||
when(mMockTm.isDataCapable()).thenReturn(false);
|
||||
when(mMockTm.isDataConnectionEnabled()).thenReturn(false);
|
||||
setupDefaultSignal();
|
||||
updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, 0);
|
||||
setConnectivityViaBroadcast(NetworkCapabilities.TRANSPORT_CELLULAR, false, false);
|
||||
@@ -444,7 +444,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest {
|
||||
@Test
|
||||
public void testAlwaysShowDataRatIcon() {
|
||||
setupDefaultSignal();
|
||||
when(mMockTm.isDataCapable()).thenReturn(false);
|
||||
when(mMockTm.isDataConnectionEnabled()).thenReturn(false);
|
||||
updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED,
|
||||
TelephonyManager.NETWORK_TYPE_GSM);
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ import android.compat.annotation.UnsupportedAppUsage;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.database.Cursor;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkStats;
|
||||
@@ -439,12 +440,8 @@ public class TelephonyManager {
|
||||
case UNKNOWN:
|
||||
modemCount = MODEM_COUNT_SINGLE_MODEM;
|
||||
// check for voice and data support, 0 if not supported
|
||||
if (!isVoiceCapable() && !isSmsCapable() && mContext != null) {
|
||||
ConnectivityManager cm = (ConnectivityManager) mContext
|
||||
.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
if (cm != null && !cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)) {
|
||||
modemCount = MODEM_COUNT_NO_MODEM;
|
||||
}
|
||||
if (!isVoiceCapable() && !isSmsCapable() && !isDataCapable()) {
|
||||
modemCount = MODEM_COUNT_NO_MODEM;
|
||||
}
|
||||
break;
|
||||
case DSDS:
|
||||
@@ -10522,12 +10519,21 @@ public class TelephonyManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether cellular data connection is enabled in the device.
|
||||
*
|
||||
* Whether cellular data connection is enabled, meaning upon request whether will try to setup
|
||||
* metered data connection considering all factors below:
|
||||
* 1) User turned on data setting {@link #isDataEnabled}.
|
||||
* 2) Carrier allows data to be on.
|
||||
* 3) Network policy.
|
||||
* And possibly others.
|
||||
*
|
||||
* @return {@code true} if the overall data connection is capable; {@code false} if not.
|
||||
* @hide
|
||||
* It's similar to isDataEnabled, but unlike isDataEnabled, this API also evaluates
|
||||
* carrierDataEnabled, policyDataEnabled etc to give a final decision of whether mobile data is
|
||||
* capable of using.
|
||||
*/
|
||||
public boolean isDataCapable() {
|
||||
@SystemApi
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public boolean isDataConnectionEnabled() {
|
||||
boolean retVal = false;
|
||||
try {
|
||||
int subId = getSubId(SubscriptionManager.getDefaultDataSubscriptionId());
|
||||
@@ -10535,12 +10541,23 @@ public class TelephonyManager {
|
||||
if (telephony != null)
|
||||
retVal = telephony.isDataEnabled(subId);
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling ITelephony#isDataEnabled", e);
|
||||
Log.e(TAG, "Error isDataConnectionEnabled", e);
|
||||
} catch (NullPointerException e) {
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if FEATURE_TELEPHONY_DATA is enabled.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public boolean isDataCapable() {
|
||||
if (mContext == null) return true;
|
||||
return mContext.getResources().getBoolean(
|
||||
com.android.internal.R.bool.config_mobile_data_capable);
|
||||
}
|
||||
|
||||
/**
|
||||
* In this mode, modem will not send specified indications when screen is off.
|
||||
* @hide
|
||||
|
||||
Reference in New Issue
Block a user