Back to project page android-basic-samples.
The source code is released under:
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Defi...
If you think the Android project android-basic-samples listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.google.example.games.basegameutils; //from www .j a va 2s . co m import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.IntentSender; import android.util.Log; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.games.GamesActivityResultCodes; public class BaseGameUtils { /** * Show an {@link android.app.AlertDialog} with an 'OK' button and a message. * * @param activity the Activity in which the Dialog should be displayed. * @param message the message to display in the Dialog. */ public static void showAlert(Activity activity, String message) { (new AlertDialog.Builder(activity)).setMessage(message) .setNeutralButton(android.R.string.ok, null).create().show(); } /** * Resolve a connection failure from * {@link com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener#onConnectionFailed(com.google.android.gms.common.ConnectionResult)} * * @param activity the Activity trying to resolve the connection failure. * @param client the GoogleAPIClient instance of the Activity. * @param result the ConnectionResult received by the Activity. * @param requestCode a request code which the calling Activity can use to identify the result * of this resolution in onActivityResult. * @param fallbackErrorMessage a generic error message to display if the failure cannot be resolved. * @return true if the connection failure is resolved, false otherwise. */ public static boolean resolveConnectionFailure(Activity activity, GoogleApiClient client, ConnectionResult result, int requestCode, String fallbackErrorMessage) { if (result.hasResolution()) { try { result.startResolutionForResult(activity, requestCode); return true; } catch (IntentSender.SendIntentException e) { // The intent was canceled before it was sent. Return to the default // state and attempt to connect to get an updated ConnectionResult. client.connect(); return false; } } else { // not resolvable... so show an error message int errorCode = result.getErrorCode(); Dialog dialog = GooglePlayServicesUtil.getErrorDialog(errorCode, activity, requestCode); if (dialog != null) { dialog.show(); } else { // no built-in dialog: show the fallback error message showAlert(activity, fallbackErrorMessage); } return false; } } /** * For use in sample code only. Checks if the sample was set up correctly, * including changing the package name to a non-Google package name and * replacing the placeholder IDs. Shows alert dialogs to notify about problems. * DO NOT call this method from a production app, it's meant only for samples! * @param resIds the resource IDs to check for placeholders * @return true if sample is set up correctly; false otherwise. */ public static boolean verifySampleSetup(Activity activity, int... resIds) { StringBuilder problems = new StringBuilder(); boolean problemFound = false; problems.append("The following set up problems were found:\n\n"); // Did the developer forget to change the package name? if (activity.getPackageName().startsWith("com.google.example.games")) { problemFound = true; problems.append("- Package name cannot be com.google.*. You need to change the " + "sample's package name to your own package.").append("\n"); } for (int i : resIds) { if (activity.getString(i).toLowerCase().contains("replaceme")) { problemFound = true; problems.append("- You must replace all " + "placeholder IDs in the ids.xml file by your project's IDs.").append("\n"); break; } } if (problemFound) { problems.append("\n\nThese problems may prevent the app from working properly."); showAlert(activity, problems.toString()); return false; } return true; } /** * Show a {@link android.app.Dialog} with the correct message for a connection error. * @param activity the Activity in which the Dialog should be displayed. * @param requestCode the request code from onActivityResult. * @param actResp the response code from onActivityResult. * @param errorDescription the resource id of a String for a generic error message. */ public static void showActivityResultError(Activity activity, int requestCode, int actResp, int errorDescription) { if (activity == null) { Log.e("BaseGameUtils", "*** No Activity. Can't show failure dialog!"); return; } Dialog errorDialog; switch (actResp) { case GamesActivityResultCodes.RESULT_APP_MISCONFIGURED: errorDialog = makeSimpleDialog(activity, activity.getString(R.string.app_misconfigured)); break; case GamesActivityResultCodes.RESULT_SIGN_IN_FAILED: errorDialog = makeSimpleDialog(activity, activity.getString(R.string.sign_in_failed)); break; case GamesActivityResultCodes.RESULT_LICENSE_FAILED: errorDialog = makeSimpleDialog(activity, activity.getString(R.string.license_failed)); break; default: // No meaningful Activity response code, so generate default Google // Play services dialog final int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(activity); errorDialog = GooglePlayServicesUtil.getErrorDialog(errorCode, activity, requestCode, null); if (errorDialog == null) { // get fallback dialog Log.e("BaseGamesUtils", "No standard error dialog available. Making fallback dialog."); errorDialog = makeSimpleDialog(activity, activity.getString(errorDescription)); } } errorDialog.show(); } /** * Create a simple {@link Dialog} with an 'OK' button and a message. * * @param activity the Activity in which the Dialog should be displayed. * @param text the message to display on the Dialog. * @return an instance of {@link android.app.AlertDialog} */ public static Dialog makeSimpleDialog(Activity activity, String text) { return (new AlertDialog.Builder(activity)).setMessage(text) .setNeutralButton(android.R.string.ok, null).create(); } /** * Create a simple {@link Dialog} with an 'OK' button, a title, and a message. * * @param activity the Activity in which the Dialog should be displayed. * @param title the title to display on the dialog. * @param text the message to display on the Dialog. * @return an instance of {@link android.app.AlertDialog} */ public static Dialog makeSimpleDialog(Activity activity, String title, String text) { return (new AlertDialog.Builder(activity)) .setTitle(title) .setMessage(text) .setNeutralButton(android.R.string.ok, null) .create(); } }