diff options
3 files changed, 23 insertions, 24 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java b/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java index 65aaf20ecacb..d6661c2c8616 100644 --- a/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java +++ b/apex/jobscheduler/service/java/com/android/server/DeviceIdleController.java @@ -1684,7 +1684,7 @@ public class DeviceIdleController extends SystemService static class Injector { private final Context mContext; - private ConnectivityService mConnectivityService; + private ConnectivityManager mConnectivityManager; private Constants mConstants; private LocationManager mLocationManager; @@ -1705,12 +1705,11 @@ public class DeviceIdleController extends SystemService return new AppStateTracker(ctx, looper); } - ConnectivityService getConnectivityService() { - if (mConnectivityService == null) { - mConnectivityService = (ConnectivityService) ServiceManager.getService( - Context.CONNECTIVITY_SERVICE); + ConnectivityManager getConnectivityManager() { + if (mConnectivityManager == null) { + mConnectivityManager = mContext.getSystemService(ConnectivityManager.class); } - return mConnectivityService; + return mConnectivityManager; } Constants getConstants(DeviceIdleController controller, Handler handler, @@ -1909,7 +1908,7 @@ public class DeviceIdleController extends SystemService if (getContext().getResources().getBoolean( com.android.internal.R.bool.config_autoPowerModePrefetchLocation)) { - mLocationRequest = new LocationRequest() + mLocationRequest = LocationRequest.create() .setQuality(LocationRequest.ACCURACY_FINE) .setInterval(0) .setFastestInterval(0) @@ -2497,9 +2496,9 @@ public class DeviceIdleController extends SystemService } void updateConnectivityState(Intent connIntent) { - ConnectivityService cm; + ConnectivityManager cm; synchronized (this) { - cm = mInjector.getConnectivityService(); + cm = mInjector.getConnectivityManager(); } if (cm == null) { return; diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java index 43e8dfb6bab6..7d3630338fc1 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/ConnectivityController.java @@ -34,6 +34,7 @@ import android.os.Looper; import android.os.Message; import android.os.UserHandle; import android.text.format.DateUtils; +import android.util.ArrayMap; import android.util.ArraySet; import android.util.DataUnit; import android.util.Log; @@ -441,7 +442,7 @@ public final class ConnectivityController extends StateController implements synchronized (mLock) { // Since this is a really hot codepath, temporarily cache any // answers that we get from ConnectivityManager. - final SparseArray<NetworkCapabilities> networkToCapabilities = new SparseArray<>(); + final ArrayMap<Network, NetworkCapabilities> networkToCapabilities = new ArrayMap<>(); boolean changed = false; if (filterUid == -1) { @@ -460,17 +461,16 @@ public final class ConnectivityController extends StateController implements } private boolean updateTrackedJobsLocked(ArraySet<JobStatus> jobs, Network filterNetwork, - SparseArray<NetworkCapabilities> networkToCapabilities) { + ArrayMap<Network, NetworkCapabilities> networkToCapabilities) { if (jobs == null || jobs.size() == 0) { return false; } final Network network = mConnManager.getActiveNetworkForUid(jobs.valueAt(0).getSourceUid()); - final int netId = network != null ? network.netId : -1; - NetworkCapabilities capabilities = networkToCapabilities.get(netId); + NetworkCapabilities capabilities = networkToCapabilities.get(network); if (capabilities == null) { capabilities = mConnManager.getNetworkCapabilities(network); - networkToCapabilities.put(netId, capabilities); + networkToCapabilities.put(network, capabilities); } final boolean networkMatch = (filterNetwork == null || Objects.equals(filterNetwork, network)); diff --git a/services/tests/mockingservicestests/src/com/android/server/DeviceIdleControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/DeviceIdleControllerTest.java index 108b017fc76c..2aa625a657ef 100644 --- a/services/tests/mockingservicestests/src/com/android/server/DeviceIdleControllerTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/DeviceIdleControllerTest.java @@ -108,7 +108,7 @@ public class DeviceIdleControllerTest { @Mock private AlarmManager mAlarmManager; @Mock - private ConnectivityService mConnectivityService; + private ConnectivityManager mConnectivityManager; @Mock private ContentResolver mContentResolver; @Mock @@ -127,7 +127,7 @@ public class DeviceIdleControllerTest { private SensorManager mSensorManager; class InjectorForTest extends DeviceIdleController.Injector { - ConnectivityService connectivityService; + ConnectivityManager connectivityManager; LocationManager locationManager; ConstraintController constraintController; // Freeze time for testing. @@ -155,8 +155,8 @@ public class DeviceIdleControllerTest { } @Override - ConnectivityService getConnectivityService() { - return connectivityService; + ConnectivityManager getConnectivityManager() { + return connectivityManager; } @Override @@ -347,19 +347,19 @@ public class DeviceIdleControllerTest { public void testUpdateConnectivityState() { // No connectivity service final boolean isConnected = mDeviceIdleController.isNetworkConnected(); - mInjector.connectivityService = null; + mInjector.connectivityManager = null; mDeviceIdleController.updateConnectivityState(null); assertEquals(isConnected, mDeviceIdleController.isNetworkConnected()); // No active network info - mInjector.connectivityService = mConnectivityService; - doReturn(null).when(mConnectivityService).getActiveNetworkInfo(); + mInjector.connectivityManager = mConnectivityManager; + doReturn(null).when(mConnectivityManager).getActiveNetworkInfo(); mDeviceIdleController.updateConnectivityState(null); assertFalse(mDeviceIdleController.isNetworkConnected()); // Active network info says connected. final NetworkInfo ani = mock(NetworkInfo.class); - doReturn(ani).when(mConnectivityService).getActiveNetworkInfo(); + doReturn(ani).when(mConnectivityManager).getActiveNetworkInfo(); doReturn(true).when(ani).isConnected(); mDeviceIdleController.updateConnectivityState(null); assertTrue(mDeviceIdleController.isNetworkConnected()); @@ -1827,10 +1827,10 @@ public class DeviceIdleControllerTest { } private void setNetworkConnected(boolean connected) { - mInjector.connectivityService = mConnectivityService; + mInjector.connectivityManager = mConnectivityManager; final NetworkInfo ani = mock(NetworkInfo.class); doReturn(connected).when(ani).isConnected(); - doReturn(ani).when(mConnectivityService).getActiveNetworkInfo(); + doReturn(ani).when(mConnectivityManager).getActiveNetworkInfo(); mDeviceIdleController.updateConnectivityState(null); } |