diff --git a/main/src/main/AndroidManifest.xml b/main/src/main/AndroidManifest.xml index 307e779..d635d22 100755 diff --git a/main/src/main/java/com/google/android/apps/dashclock/weather/WeatherExtension.java b/main/src/main/java/com/google/android/apps/dashclock/weather/WeatherExtension.java index b9aec91..5119fa2 100644 diff --git a/main/build.gradle b/main/build.gradle index 14b8eb7..e04e756 100644 --- a/main/src/main/AndroidManifest.xml +++ b/main/src/main/AndroidManifest.xml @@ -283,9 +283,6 @@ - - --- a/main/src/main/java/com/google/android/apps/dashclock/weather/WeatherExtension.java +++ b/main/src/main/java/com/google/android/apps/dashclock/weather/WeatherExtension.java @@ -40,10 +40,6 @@ import com.google.android.apps.dashclock.LogUtils; import com.google.android.apps.dashclock.api.DashClockExtension; import com.google.android.apps.dashclock.api.ExtensionData; import com.google.android.apps.dashclock.configuration.AppChooserPreference; -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GooglePlayServicesUtil; -import com.google.android.gms.location.LocationClient; -import com.google.android.gms.location.LocationRequest; import net.nurik.roman.dashclock.BuildConfig; import net.nurik.roman.dashclock.R; @@ -63,8 +59,6 @@ import static com.google.android.apps.dashclock.weather.YahooWeatherApiClient.Lo import static com.google.android.apps.dashclock.weather.YahooWeatherApiClient.getLocationInfo; import static com.google.android.apps.dashclock.weather.YahooWeatherApiClient.getWeatherForLocationInfo; import static com.google.android.apps.dashclock.weather.YahooWeatherApiClient.setWeatherUnits; -import static com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks; -import static com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener; /** * A local weather and forecast extension. @@ -99,7 +93,6 @@ public class WeatherExtension extends DashClockExtension { private static final int LOCATION_TIMEOUT_MILLIS = 60 * SECONDS_MILLIS; private static final Criteria sLocationCriteria; - private LocationClient mPlayServicesLocationClient; private static String sWeatherUnits = "f"; private static Intent sWeatherIntent; @@ -200,96 +193,7 @@ public class WeatherExtension extends DashClockExtension { private void tryGooglePlayServicesGetLocationAndPublishWeatherUpdate( final Runnable errorRunnable) { - int playServicesResult = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); - if (playServicesResult != ConnectionResult.SUCCESS) { - LOGW(TAG, "Google Play Services was unavailable (code " + playServicesResult + ")."); - if (errorRunnable != null) { - errorRunnable.run(); - } - return; - } - - if (mPlayServicesLocationClient != null) { - // Already trying to obtain a location. Don't call error runnable since this isn't - // an error. - return; - } - - LOGD(TAG, "Getting location using Google Play Services."); - mPlayServicesLocationClient = new LocationClient(this, new ConnectionCallbacks() { - @Override - public void onConnected(Bundle bundle) { - if (mServiceThreadHandler == null) { - LOGW(TAG, "Service thread handler empty; can't use Play Services location."); - mPlayServicesLocationClient.disconnect(); - mPlayServicesLocationClient = null; - if (errorRunnable != null) { - errorRunnable.run(); - } - return; - } - - mServiceThreadHandler.post(new Runnable() { - @Override - public void run() { - onHasLocation(); - } - }); - } - - private void onHasLocation() { - final Location lastLocation = mPlayServicesLocationClient.getLastLocation(); - if (lastLocation == null || (SystemClock.elapsedRealtimeNanos() - - lastLocation.getElapsedRealtimeNanos()) >= STALE_LOCATION_NANOS) { - LOGW(TAG, "Stale or missing last-known location; requesting single location " - + "update."); - LocationRequest request = LocationRequest.create() - .setExpirationDuration(LOCATION_TIMEOUT_MILLIS - 1000) - .setFastestInterval(0) - .setInterval(0) - .setNumUpdates(1) - .setSmallestDisplacement(0) - .setPriority(LocationRequest.PRIORITY_LOW_POWER); - mPlayServicesLocationClient.requestLocationUpdates(request, - PendingIntent.getService(WeatherExtension.this, 0, - new Intent(WeatherExtension.this, WeatherExtension.class) - .setAction(ACTION_RECEIVED_LOCATION), - PendingIntent.FLAG_UPDATE_CURRENT)); - - // Schedule a retry if timing out. When the location request expires, updates - // will simply stop, and we won't get any notification of this, so handle it - // separately. - mTimeoutHandler.removeCallbacksAndMessages(null); - mTimeoutHandler.postDelayed(new Runnable() { - @Override - public void run() { - LOGE(TAG, "Play Services location request timed out."); - disableOneTimeLocationListener(); - scheduleRetry(); - } - }, LOCATION_TIMEOUT_MILLIS); - } else { - tryPublishWeatherUpdateFromGeolocation(lastLocation); - } - - mPlayServicesLocationClient.disconnect(); - mPlayServicesLocationClient = null; - } - - @Override - public void onDisconnected() { - mPlayServicesLocationClient = null; - } - }, new OnConnectionFailedListener() { - @Override - public void onConnectionFailed(ConnectionResult connectionResult) { - mPlayServicesLocationClient = null; - if (errorRunnable != null) { - errorRunnable.run(); - } - } - }); - mPlayServicesLocationClient.connect(); + return; } private void tryLocationManagerGetLocationAndPublishWeatherUpdate() { @@ -365,21 +269,9 @@ public class WeatherExtension extends DashClockExtension { @Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent != null && ACTION_RECEIVED_LOCATION.equals(intent.getAction())) { - final Location location = intent.getParcelableExtra( - LocationClient.KEY_LOCATION_CHANGED); if (mServiceThreadHandler == null) { LOGW(TAG, "Can't process location update because onUpdateData hasn't been called " + "on this service instance."); - } else if (location != null) { - // A location update request succeeded; try publishing weather from here. - LOGD(TAG, "Got a Play Services location update; trying weather update."); - mTimeoutHandler.removeCallbacksAndMessages(null); - mServiceThreadHandler.post(new Runnable() { - @Override - public void run() { - tryPublishWeatherUpdateFromGeolocation(location); - } - }); } stopSelf(startId); @@ -391,9 +283,6 @@ public class WeatherExtension extends DashClockExtension { @Override public void onDestroy() { super.onDestroy(); - if (mPlayServicesLocationClient != null) { - mPlayServicesLocationClient.disconnect(); - } disableOneTimeLocationListener(); } --- a/main/build.gradle +++ b/main/build.gradle @@ -36,8 +36,6 @@ repositories { dependencies { compile 'com.android.support:support-v13:18.0.0' - compile 'com.google.android.gms:play-services:4.0.30' - //compile 'com.mobeta.android.dslv:drag-sort-listview:0.6.1-SNAPSHOT-AAR' compile 'com.mobeta.android.dslv:drag-sort-listview:0.6.1-SNAPSHOT-AAR@aar' compile project(':api') }