From 037fb46c44924e1d824d0e29a8c0db2598c073a8 Mon Sep 17 00:00:00 2001 From: Markus Stefanko Date: Sun, 2 Jul 2017 21:12:28 +0700 Subject: [PATCH 1/3] Manifest merging --- dependencies/gpgex/AndroidManifest.xml | 1 + dependencies/gpgex/project.properties | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dependencies/gpgex/AndroidManifest.xml b/dependencies/gpgex/AndroidManifest.xml index 9bfa209..91a0448 100644 --- a/dependencies/gpgex/AndroidManifest.xml +++ b/dependencies/gpgex/AndroidManifest.xml @@ -2,6 +2,7 @@ + diff --git a/dependencies/gpgex/project.properties b/dependencies/gpgex/project.properties index 83dcdff..9238993 100644 --- a/dependencies/gpgex/project.properties +++ b/dependencies/gpgex/project.properties @@ -1,8 +1,9 @@ android.library=true +manifestmerger.enabled = true target=android-::ANDROID_TARGET_SDK_VERSION:: android.library.reference.1=../extension-api android.library.reference.2=../google-play-services-basement android.library.reference.3=../google-play-services-plus android.library.reference.4=../google-play-services-drive android.library.reference.5=../google-play-services-games -android.library.reference.6=../google-play-services-base +android.library.reference.6=../google-play-services-base \ No newline at end of file From ab111179399c4ff87dc9961dba9ab0b8ec82484b Mon Sep 17 00:00:00 2001 From: Markus Stefanko Date: Sun, 2 Jul 2017 21:12:50 +0700 Subject: [PATCH 2/3] onLoadPlayerImageError callback --- dependencies/gpgex/src/com/gpgex/GooglePlayGames.java | 2 ++ extension/gpg/GooglePlayGames.hx | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/dependencies/gpgex/src/com/gpgex/GooglePlayGames.java b/dependencies/gpgex/src/com/gpgex/GooglePlayGames.java index c1c9712..375573c 100644 --- a/dependencies/gpgex/src/com/gpgex/GooglePlayGames.java +++ b/dependencies/gpgex/src/com/gpgex/GooglePlayGames.java @@ -298,6 +298,7 @@ public void onResult(Players.LoadPlayersResult loadPlayersResult) { }catch(Exception e) { Log.i(TAG, "PlayGames: getPlayerImage Exception"); Log.i(TAG, e.toString()); + callbackObject.call1("onGetPlayerImageError", e.toString()); } } }); @@ -331,6 +332,7 @@ public void onImageLoaded(Uri uri, Drawable drawable, boolean isRequestedDrawabl Log.i(TAG, "PlayGames: getPlayerImage exception trying to save: "); Log.i(TAG, e.toString()); //TODO: Handle exception + callbackObject.call1("onGetPlayerImageError", e.toString()); } } }, uri); diff --git a/extension/gpg/GooglePlayGames.hx b/extension/gpg/GooglePlayGames.hx index cab3d77..a781b5d 100644 --- a/extension/gpg/GooglePlayGames.hx +++ b/extension/gpg/GooglePlayGames.hx @@ -152,6 +152,7 @@ class GooglePlayGames { public static var onLoadConnectedPlayers : Array->Void = null; public static var onLoadInvitablePlayers : Array->Void = null; public static var onLoadPlayerImage : String->String->Void = null; + public static var onLoadPlayerImageError : String->Void = null; public static var onGetPlayerCurrentSteps : String->Int->Void = null; private static var initted:Bool=false; @@ -243,5 +244,9 @@ class GooglePlayGames { public function onGetPlayerImage(id:String, path:String) { if(onLoadPlayerImage!=null) Timer.delay(function(){ onLoadPlayerImage(id, path); },0); } + + public function onGetPlayerImageError(e:String) { + if(onLoadPlayerImageError!=null) Timer.delay(function(){ onLoadPlayerImageError(e); },0); + } } \ No newline at end of file From c431d038cd0d5a9993db55b82a2ed5c0a5635095 Mon Sep 17 00:00:00 2001 From: Markus Stefanko Date: Sun, 2 Jul 2017 21:14:14 +0700 Subject: [PATCH 3/3] wrap failure dialogs in try/catch --- .../gpgex/src/com/gpgex/GameHelper.java | 83 +++++++++++-------- 1 file changed, 47 insertions(+), 36 deletions(-) diff --git a/dependencies/gpgex/src/com/gpgex/GameHelper.java b/dependencies/gpgex/src/com/gpgex/GameHelper.java index 790a720..04bd4fa 100644 --- a/dependencies/gpgex/src/com/gpgex/GameHelper.java +++ b/dependencies/gpgex/src/com/gpgex/GameHelper.java @@ -136,7 +136,7 @@ public interface GameHelperListener { SignInFailureReason mSignInFailureReason = null; // Should we show error dialog boxes? - boolean mShowErrorDialogs = true; + boolean mShowErrorDialogs = false; // Print debug logs? boolean mDebugLog = false; @@ -809,16 +809,21 @@ public void onConnectionSuspended(int cause) { } public void showFailureDialog() { - if (mSignInFailureReason != null) { - int errorCode = mSignInFailureReason.getServiceErrorCode(); - int actResp = mSignInFailureReason.getActivityResultCode(); - if (mShowErrorDialogs) { - showFailureDialog(mActivity, actResp, errorCode); - } else { - debugLog("Not showing error dialog because mShowErrorDialogs==false. " + "" + - "Error was: " + mSignInFailureReason); + try { + if (mSignInFailureReason != null) { + int errorCode = mSignInFailureReason.getServiceErrorCode(); + int actResp = mSignInFailureReason.getActivityResultCode(); + + if (mShowErrorDialogs) { + showFailureDialog(mActivity, actResp, errorCode); + } else { + debugLog("Not showing error dialog because mShowErrorDialogs==false. " + "" + + "Error was: " + mSignInFailureReason); + } } + } catch (Exception e) { + debugLog("Could not show failure dialog : " + e.getMessage()); } } @@ -830,34 +835,40 @@ public static void showFailureDialog(Activity activity, int actResp, int errorCo } Dialog errorDialog = null; - switch (actResp) { - case GamesActivityResultCodes.RESULT_APP_MISCONFIGURED: - errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString(activity, - GameHelperUtils.R_APP_MISCONFIGURED)); - break; - case GamesActivityResultCodes.RESULT_SIGN_IN_FAILED: - errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString(activity, - GameHelperUtils.R_SIGN_IN_FAILED)); - break; - case GamesActivityResultCodes.RESULT_LICENSE_FAILED: - errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString(activity, - GameHelperUtils.R_LICENSE_FAILED)); - break; - default: - // No meaningful Activity response code, so generate default Google - // Play services dialog - errorDialog = GooglePlayServicesUtil.getErrorDialog(errorCode, activity, - RC_UNUSED, null); - if (errorDialog == null) { - // get fallback dialog - Log.e("GameHelper", "No standard error dialog available. Making fallback dialog."); - errorDialog = makeSimpleDialog(activity, - GameHelperUtils.getString(activity, GameHelperUtils.R_UNKNOWN_ERROR) - + " " + GameHelperUtils.errorCodeToString(errorCode)); - } - } + try { + + switch (actResp) { + case GamesActivityResultCodes.RESULT_APP_MISCONFIGURED: + errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString(activity, + GameHelperUtils.R_APP_MISCONFIGURED)); + break; + case GamesActivityResultCodes.RESULT_SIGN_IN_FAILED: + errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString(activity, + GameHelperUtils.R_SIGN_IN_FAILED)); + break; + case GamesActivityResultCodes.RESULT_LICENSE_FAILED: + errorDialog = makeSimpleDialog(activity, GameHelperUtils.getString(activity, + GameHelperUtils.R_LICENSE_FAILED)); + break; + default: + // No meaningful Activity response code, so generate default Google + // Play services dialog + errorDialog = GooglePlayServicesUtil.getErrorDialog(errorCode, activity, + RC_UNUSED, null); + if (errorDialog == null) { + // get fallback dialog + Log.e("GameHelper", "No standard error dialog available. Making fallback dialog."); + errorDialog = makeSimpleDialog(activity, + GameHelperUtils.getString(activity, GameHelperUtils.R_UNKNOWN_ERROR) + + " " + GameHelperUtils.errorCodeToString(errorCode)); + } + } - errorDialog.show(); + errorDialog.show(); + + } catch (Exception e) { + Log.e("GameHelper", "*** Could not show failure dialog : " + e.getMessage()); + } } static Dialog makeSimpleDialog(Activity activity, String text) {