Skip to content

Commit d8ac490

Browse files
committed
Updated to connectionless APIs
Change-Id: Ib5a1fcbed5a25b7001c342ce3833ce668cdc717e
1 parent 52a94b2 commit d8ac490

File tree

34 files changed

+657
-553
lines changed

34 files changed

+657
-553
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
build/
2+
gradle/
3+
.idea
4+
.gradle
5+
*.iml
6+
local.properties
7+
.DS_Store

ActivityRecognition/app/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
22

33
android {
44
compileSdkVersion 25
5-
buildToolsVersion "25.0.2"
5+
buildToolsVersion "25.0.3"
66

77
defaultConfig {
88
applicationId "com.google.android.gms.location.sample.activityrecognition"
@@ -27,5 +27,6 @@ dependencies {
2727
testCompile 'junit:junit:4.12'
2828

2929
compile 'com.android.support:design:25.3.1'
30-
compile 'com.google.android.gms:play-services-location:10.2.1'
30+
31+
compile 'com.google.android.gms:play-services-location:11.0.0'
3132
}

ActivityRecognition/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
jcenter()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.3.0'
8+
classpath 'com.android.tools.build:gradle:2.3.2'
99

1010
// NOTE: Do not place your application dependencies here; they belong
1111
// in the individual module build.gradle files

ActivityRecognition/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip

BasicLocationSample/README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ for the device.
1616
To run this sample, **location must be enabled**.
1717

1818
This sample uses
19-
[Google Play services (GoogleApiClient)](ihttps://developer.android.com/reference/com/google/android/gms/common/api/GoogleApiClient.html)
20-
and the
21-
[FusedLocationApi] (https://developer.android.com/reference/com/google/android/gms/location/LocationServices.html).
19+
[FusedLocationProviderClient] (https://developer.android.com/reference/com/google/android/gms/location/LocationServices.html).
2220

2321
To run this sample, **location must be enabled**.
2422

BasicLocationSample/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
22

33
android {
44
compileSdkVersion 25
5-
buildToolsVersion "25.0.2"
5+
buildToolsVersion "25.0.3"
66

77
defaultConfig {
88
applicationId "com.google.android.gms.location.sample.basiclocationsample"
@@ -28,5 +28,5 @@ dependencies {
2828
testCompile 'junit:junit:4.12'
2929

3030
compile 'com.android.support:design:25.3.1'
31-
compile 'com.google.android.gms:play-services-location:10.2.1'
31+
compile 'com.google.android.gms:play-services-location:11.0.0'
3232
}

BasicLocationSample/app/src/main/java/com/google/android/gms/location/sample/basiclocationsample/MainActivity.java

Lines changed: 49 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -16,50 +16,43 @@
1616

1717
package com.google.android.gms.location.sample.basiclocationsample;
1818

19+
import android.Manifest;
1920
import android.content.Intent;
2021
import android.content.pm.PackageManager;
2122
import android.location.Location;
2223
import android.net.Uri;
2324
import android.os.Bundle;
2425
import android.provider.Settings;
26+
import android.support.annotation.NonNull;
2527
import android.support.design.widget.Snackbar;
28+
import android.support.v4.app.ActivityCompat;
2629
import android.support.v7.app.AppCompatActivity;
2730
import android.util.Log;
2831
import android.view.View;
2932
import android.widget.TextView;
30-
import android.widget.Toast;
3133

32-
import com.google.android.gms.common.ConnectionResult;
33-
import com.google.android.gms.common.api.GoogleApiClient;
34-
import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
35-
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
34+
import com.google.android.gms.location.FusedLocationProviderClient;
3635
import com.google.android.gms.location.LocationServices;
37-
38-
import android.support.annotation.NonNull;
39-
import android.support.v4.app.ActivityCompat;
40-
import android.Manifest;
36+
import com.google.android.gms.tasks.OnCompleteListener;
37+
import com.google.android.gms.tasks.Task;
4138

4239
import java.util.Locale;
4340

4441
/**
4542
* Location sample.
4643
* <p>
4744
* Demonstrates use of the Location API to retrieve the last known location for a device.
48-
* This sample uses Google Play services (GoogleApiClient) but does not need to authenticate a user.
49-
* See https://github.com/googlesamples/android-google-accounts/tree/master/QuickStart if you are
50-
* also using APIs that need authentication.
5145
*/
52-
public class MainActivity extends AppCompatActivity implements
53-
ConnectionCallbacks, OnConnectionFailedListener {
46+
public class MainActivity extends AppCompatActivity {
5447

5548
private static final String TAG = MainActivity.class.getSimpleName();
5649

5750
private static final int REQUEST_PERMISSIONS_REQUEST_CODE = 34;
5851

5952
/**
60-
* Provides the entry point to Google Play services.
53+
* Provides the entry point to the Fused Location Provider API.
6154
*/
62-
private GoogleApiClient mGoogleApiClient;
55+
private FusedLocationProviderClient mFusedLocationClient;
6356

6457
/**
6558
* Represents a geographical location.
@@ -82,21 +75,19 @@ public void onCreate(Bundle savedInstanceState) {
8275
mLatitudeText = (TextView) findViewById((R.id.latitude_text));
8376
mLongitudeText = (TextView) findViewById((R.id.longitude_text));
8477

85-
buildGoogleApiClient();
78+
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
8679
}
8780

88-
/**
89-
* Builds a GoogleApiClient. Uses the addApi() method to request the LocationServices API.
90-
*/
91-
private synchronized void buildGoogleApiClient() {
92-
mGoogleApiClient = new GoogleApiClient.Builder(this)
93-
.enableAutoManage(this, this)
94-
.addConnectionCallbacks(this)
95-
.addOnConnectionFailedListener(this)
96-
.addApi(LocationServices.API)
97-
.build();
98-
}
81+
@Override
82+
public void onStart() {
83+
super.onStart();
9984

85+
if (!checkPermissions()) {
86+
requestPermissions();
87+
} else {
88+
getLastLocation();
89+
}
90+
}
10091

10192
/**
10293
* Provides a simple way of getting a device's location and is well suited for
@@ -106,43 +97,27 @@ private synchronized void buildGoogleApiClient() {
10697
* <p>
10798
* Note: this method should be called after location permission has been granted.
10899
*/
100+
@SuppressWarnings("MissingPermission")
109101
private void getLastLocation() {
110-
//noinspection MissingPermission
111-
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
112-
113-
if (mLastLocation != null) {
114-
mLatitudeText.setText(String.format(Locale.ENGLISH, "%s: %f", mLatitudeLabel,
115-
mLastLocation.getLatitude()));
116-
mLongitudeText.setText(String.format(Locale.ENGLISH, "%s: %f", mLongitudeLabel,
117-
mLastLocation.getLongitude()));
118-
} else {
119-
Toast.makeText(this, R.string.no_location_detected, Toast.LENGTH_LONG).show();
120-
}
121-
}
122-
123-
/**
124-
* Runs when a GoogleApiClient object successfully connects.
125-
*/
126-
@Override
127-
public void onConnected(Bundle connectionHint) {
128-
if (!checkPermissions()) {
129-
requestPermissions();
130-
}
131-
}
132-
133-
@Override
134-
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
135-
final String text = "Exception while connecting to Google Play services";
136-
Log.w(TAG, text + ": " + connectionResult.getErrorMessage());
137-
showSnackbar(text);
138-
}
139-
140-
141-
@Override
142-
public void onConnectionSuspended(int cause) {
143-
final String text = "Connection suspended";
144-
Log.w(TAG, text + ": Error code: " + cause);
145-
showSnackbar("Connection suspended");
102+
mFusedLocationClient.getLastLocation()
103+
.addOnCompleteListener(this, new OnCompleteListener<Location>() {
104+
@Override
105+
public void onComplete(@NonNull Task<Location> task) {
106+
if (task.isSuccessful() && task.getResult() != null) {
107+
mLastLocation = task.getResult();
108+
109+
mLatitudeText.setText(String.format(Locale.ENGLISH, "%s: %f",
110+
mLatitudeLabel,
111+
mLastLocation.getLatitude()));
112+
mLongitudeText.setText(String.format(Locale.ENGLISH, "%s: %f",
113+
mLongitudeLabel,
114+
mLastLocation.getLongitude()));
115+
} else {
116+
Log.w(TAG, "getLastLocation:exception", task.getException());
117+
showSnackbar(getString(R.string.no_location_detected));
118+
}
119+
}
120+
});
146121
}
147122

148123
/**
@@ -177,10 +152,16 @@ private void showSnackbar(final int mainTextStringId, final int actionStringId,
177152
*/
178153
private boolean checkPermissions() {
179154
int permissionState = ActivityCompat.checkSelfPermission(this,
180-
Manifest.permission.ACCESS_FINE_LOCATION);
155+
Manifest.permission.ACCESS_COARSE_LOCATION);
181156
return permissionState == PackageManager.PERMISSION_GRANTED;
182157
}
183158

159+
private void startLocationPermissionRequest() {
160+
ActivityCompat.requestPermissions(MainActivity.this,
161+
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
162+
REQUEST_PERMISSIONS_REQUEST_CODE);
163+
}
164+
184165
private void requestPermissions() {
185166
boolean shouldProvideRationale =
186167
ActivityCompat.shouldShowRequestPermissionRationale(this,
@@ -196,9 +177,7 @@ private void requestPermissions() {
196177
@Override
197178
public void onClick(View view) {
198179
// Request permission
199-
ActivityCompat.requestPermissions(MainActivity.this,
200-
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
201-
REQUEST_PERMISSIONS_REQUEST_CODE);
180+
startLocationPermissionRequest();
202181
}
203182
});
204183

@@ -207,9 +186,7 @@ public void onClick(View view) {
207186
// Request permission. It's possible this can be auto answered if device policy
208187
// sets the permission in a given state or the user denied the permission
209188
// previously and checked "Never ask again".
210-
ActivityCompat.requestPermissions(MainActivity.this,
211-
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
212-
REQUEST_PERMISSIONS_REQUEST_CODE);
189+
startLocationPermissionRequest();
213190
}
214191
}
215192

@@ -258,4 +235,4 @@ public void onClick(View view) {
258235
}
259236
}
260237
}
261-
}
238+
}

BasicLocationSample/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
jcenter()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.3.0'
8+
classpath 'com.android.tools.build:gradle:2.3.2'
99

1010
// NOTE: Do not place your application dependencies here; they belong
1111
// in the individual module build.gradle files

BasicLocationSample/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip

Geofencing/app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
22

33
android {
44
compileSdkVersion 25
5-
buildToolsVersion '25.0.2'
5+
buildToolsVersion '25.0.3'
66

77
defaultConfig {
88
applicationId "com.google.android.gms.location.sample.geofencing"
@@ -27,6 +27,6 @@ dependencies {
2727
testCompile 'junit:junit:4.12'
2828

2929
compile 'com.android.support:design:25.3.1'
30-
compile 'com.google.android.gms:play-services-location:10.2.1'
31-
compile 'com.google.android.gms:play-services-maps:10.2.1'
30+
compile 'com.google.android.gms:play-services-location:11.0.0'
31+
compile 'com.google.android.gms:play-services-maps:11.0.0'
3232
}

0 commit comments

Comments
 (0)