Skip to content

Commit ed9d772

Browse files
committed
Use GoogleSignIn.getSignedInAccountFromIntent to get GoogleSignInAccount
If signInSilently fails, display the error message silently in the log. Removed checks for GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED; will be handled implicitly via silent sign in. Change-Id: I65fedbdf9fb9ca2216ae224abd4412f4ae18b009
1 parent b9929ba commit ed9d772

File tree

4 files changed

+36
-48
lines changed

4 files changed

+36
-48
lines changed

BasicSamples/ButtonClicker/src/main/java/com/google/example/games/bc/MainActivity.java

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,10 @@
2727
import android.view.WindowManager;
2828
import android.widget.TextView;
2929

30-
import com.google.android.gms.auth.api.Auth;
3130
import com.google.android.gms.auth.api.signin.GoogleSignIn;
3231
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
3332
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
3433
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
35-
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
3634
import com.google.android.gms.common.api.ApiException;
3735
import com.google.android.gms.games.Games;
3836
import com.google.android.gms.games.GamesActivityResultCodes;
@@ -284,7 +282,7 @@ public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
284282
Log.d(TAG, "signInSilently(): success");
285283
onConnected(task.getResult());
286284
} else {
287-
handleException(task.getException(), "signInSilently(): failure");
285+
Log.d(TAG, "signInSilently(): failure", task.getException());
288286
onDisconnected();
289287
}
290288
}
@@ -368,18 +366,16 @@ private void handleException(Exception exception, String details) {
368366
@Override
369367
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
370368

371-
// It is possible the player could disconnect via the Google Play Games app using Settings -> Sign out.
372-
// If that is the case, we must disconnect.
373-
if (resultCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) {
374-
onDisconnected();
375-
} else if (requestCode == RC_SIGN_IN) {
369+
if (requestCode == RC_SIGN_IN) {
376370

377-
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(intent);
371+
Task<GoogleSignInAccount> task =
372+
GoogleSignIn.getSignedInAccountFromIntent(intent);
378373

379-
if (result.isSuccess()) {
380-
onConnected(result.getSignInAccount());
381-
} else {
382-
String message = result.getStatus().getStatusMessage();
374+
try {
375+
GoogleSignInAccount account = task.getResult(ApiException.class);
376+
onConnected(account);
377+
} catch (ApiException apiException) {
378+
String message = apiException.getMessage();
383379
if (message == null || message.isEmpty()) {
384380
message = getString(R.string.signin_other_error);
385381
}

BasicSamples/CollectAllTheStars2/src/main/java/com/google/example/games/catt2/MainActivity.java

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@
3232
import android.widget.TextView;
3333
import android.widget.Toast;
3434

35-
import com.google.android.gms.auth.api.Auth;
3635
import com.google.android.gms.auth.api.signin.GoogleSignIn;
3736
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
3837
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
3938
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
40-
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
4139
import com.google.android.gms.common.api.ApiException;
4240
import com.google.android.gms.common.api.Result;
4341
import com.google.android.gms.drive.Drive;
@@ -167,7 +165,7 @@ public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
167165
Log.d(TAG, "signInSilently(): success");
168166
onConnected(task.getResult());
169167
} else {
170-
handleException(task.getException(), "signInSilently(): failure");
168+
Log.d(TAG, "signInSilently(): failure", task.getException());
171169
onDisconnected();
172170
}
173171
}
@@ -201,18 +199,16 @@ public void onComplete(@NonNull Task<Void> task) {
201199
@Override
202200
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
203201

204-
// It is possible the player could disconnect via the Google Play Games app using Settings -> Sign out.
205-
// If that is the case, we must disconnect.
206-
if (resultCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) {
207-
onDisconnected();
208-
} else if (requestCode == RC_SIGN_IN) {
202+
if (requestCode == RC_SIGN_IN) {
209203

210-
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(intent);
204+
Task<GoogleSignInAccount> task =
205+
GoogleSignIn.getSignedInAccountFromIntent(intent);
211206

212-
if (result.isSuccess()) {
213-
onConnected(result.getSignInAccount());
214-
} else {
215-
String message = result.getStatus().getStatusMessage();
207+
try {
208+
GoogleSignInAccount account = task.getResult(ApiException.class);
209+
onConnected(account);
210+
} catch (ApiException apiException) {
211+
String message = apiException.getMessage();
216212
if (message == null || message.isEmpty()) {
217213
message = getString(R.string.signin_other_error);
218214
}

BasicSamples/SkeletonTbmp/src/main/java/com/google/example/games/tbmpskeleton/SkeletonActivity.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,10 @@
2727
import android.widget.TextView;
2828
import android.widget.Toast;
2929

30-
import com.google.android.gms.auth.api.Auth;
3130
import com.google.android.gms.auth.api.signin.GoogleSignIn;
3231
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
3332
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
3433
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
35-
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
3634
import com.google.android.gms.common.api.ApiException;
3735
import com.google.android.gms.games.Games;
3836
import com.google.android.gms.games.GamesActivityResultCodes;
@@ -483,7 +481,7 @@ public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
483481
Log.d(TAG, "signInSilently(): success");
484482
onConnected(task.getResult());
485483
} else {
486-
handleException(task.getException(), "signInSilently(): failure");
484+
Log.d(TAG, "signInSilently(): failure", task.getException());
487485
onDisconnected();
488486
}
489487
}
@@ -562,19 +560,16 @@ private void logBadActivityResult(int requestCode, int resultCode, String messag
562560
@Override
563561
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
564562

565-
// It is possible the player could disconnect via the Google Play Games app using
566-
// Settings -> Sign out. If that is the case, we must disconnect.
567-
if (resultCode == GamesActivityResultCodes.RESULT_RECONNECT_REQUIRED) {
568-
logBadActivityResult(requestCode, resultCode, "Reconnect required");
569-
onDisconnected();
570-
} else if (requestCode == RC_SIGN_IN) {
563+
if (requestCode == RC_SIGN_IN) {
571564

572-
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(intent);
565+
Task<GoogleSignInAccount> task =
566+
GoogleSignIn.getSignedInAccountFromIntent(intent);
573567

574-
if (result.isSuccess()) {
575-
onConnected(result.getSignInAccount());
576-
} else {
577-
String message = result.getStatus().getStatusMessage();
568+
try {
569+
GoogleSignInAccount account = task.getResult(ApiException.class);
570+
onConnected(account);
571+
} catch (ApiException apiException) {
572+
String message = apiException.getMessage();
578573
if (message == null || message.isEmpty()) {
579574
message = getString(R.string.signin_other_error);
580575
}

BasicSamples/TypeANumber/src/main/java/com/google/example/games/tanc/MainActivity.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@
2525
import android.util.Log;
2626
import android.widget.Toast;
2727

28-
import com.google.android.gms.auth.api.Auth;
2928
import com.google.android.gms.auth.api.signin.GoogleSignIn;
3029
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
3130
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
3231
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
33-
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
3432
import com.google.android.gms.common.api.ApiException;
3533
import com.google.android.gms.games.AchievementsClient;
3634
import com.google.android.gms.games.Games;
@@ -141,7 +139,7 @@ public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
141139
Log.d(TAG, "signInSilently(): success");
142140
onConnected(task.getResult());
143141
} else {
144-
Log.d(TAG, "signInSilently(): failure");
142+
Log.d(TAG, "signInSilently(): failure", task.getException());
145143
onDisconnected();
146144
}
147145
}
@@ -398,11 +396,14 @@ public void onWinScreenDismissed() {
398396
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
399397
super.onActivityResult(requestCode, resultCode, intent);
400398
if (requestCode == RC_SIGN_IN) {
401-
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(intent);
402-
if (result.isSuccess()) {
403-
onConnected(result.getSignInAccount());
404-
} else {
405-
String message = result.getStatus().getStatusMessage();
399+
Task<GoogleSignInAccount> task =
400+
GoogleSignIn.getSignedInAccountFromIntent(intent);
401+
402+
try {
403+
GoogleSignInAccount account = task.getResult(ApiException.class);
404+
onConnected(account);
405+
} catch (ApiException apiException) {
406+
String message = apiException.getMessage();
406407
if (message == null || message.isEmpty()) {
407408
message = getString(R.string.signin_other_error);
408409
}

0 commit comments

Comments
 (0)