private boolean updateFromStoredLocation() { Location location = null; String provider; int size = fineProviders.size(); for (int i = 0; i < size; i++) { provider = fineProviders.get(i); location = manager.getLastKnownLocation(provider); if (location != null) { Utils.d(TAG, "Last location from", provider, location); callback.onLocationUpdate(location); return true; } } size = coarseProviders.size(); for (int i = 0; i < size; i++) { provider = coarseProviders.get(i); location = manager.getLastKnownLocation(provider); if (location != null) { Utils.d(TAG, "Last known location is", location, provider); callback.onLocationUpdate(location); return true; } } return false; }
public void updateLocation() { updateEnabledProviders(); if (providersNotEnabled()) { callback.onSuggestLocationSettings(); return; } if (!updateFromStoredLocation()) { updateFromLocationListener(); } }
private void updateFromLocationListener() { if (isCancelled) { return; } if (fineCounter < fineProviders.size()) { startTimerForProvider(fineProviders.get(fineCounter), fineListener); fineCounter++; } else if (coarseCounter < coarseProviders.size()) { startTimerForProvider(coarseProviders.get(coarseCounter), coarseListener); coarseCounter++; } else { if (!foundLocation) { callback.onLocationUpdateError(); } } }