Loading services/java/com/android/server/UiModeManagerService.java +37 −32 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import android.util.Slog; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.Iterator; import com.android.internal.R; import com.android.internal.app.DisableCarModeActivity; Loading Loading @@ -609,14 +610,18 @@ class UiModeManagerService extends IUiModeManager.Stub { } private void retrieveLocation() { Location location; Criteria criteria = new Criteria(); criteria.setSpeedRequired(false); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setAccuracy(Criteria.ACCURACY_FINE); final String bestProvider = mLocationManager.getBestProvider(criteria, true); location = mLocationManager.getLastKnownLocation(bestProvider); Location location = null; final Iterator<String> providers = mLocationManager.getProviders(new Criteria(), true).iterator(); while (providers.hasNext()) { final Location lastKnownLocation = mLocationManager.getLastKnownLocation(providers.next()); // pick the most recent location if (location == null || (lastKnownLocation != null && location.getTime() < lastKnownLocation.getTime())) { location = lastKnownLocation; } } // In the case there is no location available (e.g. GPS fix or network location // is not available yet), the longitude of the location is estimated using the timezone, // latitude and accuracy are set to get a good average. Loading Loading
services/java/com/android/server/UiModeManagerService.java +37 −32 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ import android.util.Slog; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.Iterator; import com.android.internal.R; import com.android.internal.app.DisableCarModeActivity; Loading Loading @@ -609,14 +610,18 @@ class UiModeManagerService extends IUiModeManager.Stub { } private void retrieveLocation() { Location location; Criteria criteria = new Criteria(); criteria.setSpeedRequired(false); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setAccuracy(Criteria.ACCURACY_FINE); final String bestProvider = mLocationManager.getBestProvider(criteria, true); location = mLocationManager.getLastKnownLocation(bestProvider); Location location = null; final Iterator<String> providers = mLocationManager.getProviders(new Criteria(), true).iterator(); while (providers.hasNext()) { final Location lastKnownLocation = mLocationManager.getLastKnownLocation(providers.next()); // pick the most recent location if (location == null || (lastKnownLocation != null && location.getTime() < lastKnownLocation.getTime())) { location = lastKnownLocation; } } // In the case there is no location available (e.g. GPS fix or network location // is not available yet), the longitude of the location is estimated using the timezone, // latitude and accuracy are set to get a good average. Loading