Loading api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -10424,6 +10424,7 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isApnMetered(int); 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(); packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +1 −1 Original line number Diff line number Diff line Loading @@ -654,7 +654,7 @@ public class MobileSignalController extends SignalController< } boolean isDataDisabled() { return !mPhone.isDataCapable(); return !mPhone.isDataConnectionEnabled(); } @VisibleForTesting Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -180,7 +180,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); Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); Loading @@ -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); Loading @@ -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); Loading Loading @@ -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); Loading @@ -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); Loading telephony/java/android/telephony/TelephonyManager.java +28 −11 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -449,13 +450,9 @@ 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)) { if (!isVoiceCapable() && !isSmsCapable() && !isDataCapable()) { modemCount = MODEM_COUNT_NO_MODEM; } } break; case DSDS: case DSDA: Loading Loading @@ -10669,12 +10666,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()); Loading @@ -10682,12 +10688,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.getPackageManager().hasSystemFeature( PackageManager.FEATURE_TELEPHONY_DATA); } /** * In this mode, modem will not send specified indications when screen is off. * @hide Loading Loading
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -10424,6 +10424,7 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isApnMetered(int); 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();
packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +1 −1 Original line number Diff line number Diff line Loading @@ -654,7 +654,7 @@ public class MobileSignalController extends SignalController< } boolean isDataDisabled() { return !mPhone.isDataCapable(); return !mPhone.isDataConnectionEnabled(); } @VisibleForTesting Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -180,7 +180,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); Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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); Loading @@ -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); Loading @@ -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); Loading Loading @@ -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); Loading @@ -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); Loading
telephony/java/android/telephony/TelephonyManager.java +28 −11 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -449,13 +450,9 @@ 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)) { if (!isVoiceCapable() && !isSmsCapable() && !isDataCapable()) { modemCount = MODEM_COUNT_NO_MODEM; } } break; case DSDS: case DSDA: Loading Loading @@ -10669,12 +10666,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()); Loading @@ -10682,12 +10688,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.getPackageManager().hasSystemFeature( PackageManager.FEATURE_TELEPHONY_DATA); } /** * In this mode, modem will not send specified indications when screen is off. * @hide Loading