facebook-gamingservices/src/main/java/com/facebook/gamingservices/GameRequestDialog.java [315:361]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  private class ChromeCustomTabHandler extends ModeHandler {
    @Override
    public boolean canShow(final GameRequestContent content, boolean isBestEffort) {
      String chromePackage = CustomTabUtils.getChromePackage();
      return chromePackage != null
          && Validate.hasCustomTabRedirectActivity(
              getActivityContext(), CustomTabUtils.getDefaultRedirectURI());
    }

    @Override
    public AppCall createAppCall(final GameRequestContent content) {
      GameRequestValidation.validate(content);
      AppCall appCall = createBaseAppCall();

      Bundle params = WebDialogParameters.create(content);

      AccessToken accessToken = AccessToken.getCurrentAccessToken();
      if (accessToken != null) {
        params.putString(ServerProtocol.DIALOG_PARAM_APP_ID, accessToken.getApplicationId());
      } else {
        String applicationId = FacebookSdk.getApplicationId();
        params.putString(ServerProtocol.DIALOG_PARAM_APP_ID, applicationId);
      }

      params.putString(
          ServerProtocol.DIALOG_PARAM_REDIRECT_URI, CustomTabUtils.getDefaultRedirectURI());

      DialogPresenter.setupAppCallForCustomTabDialog(appCall, GAME_REQUEST_DIALOG, params);

      return appCall;
    }
  }

  private class WebHandler extends ModeHandler {
    @Override
    public boolean canShow(final GameRequestContent content, boolean isBestEffort) {
      return true;
    }

    @Override
    public AppCall createAppCall(final GameRequestContent content) {
      GameRequestValidation.validate(content);
      AppCall appCall = createBaseAppCall();
      DialogPresenter.setupAppCallForWebDialog(
          appCall, GAME_REQUEST_DIALOG, WebDialogParameters.create(content));

      return appCall;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



facebook-share/src/main/java/com/facebook/share/widget/GameRequestDialog.java [222:268]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  private class ChromeCustomTabHandler extends ModeHandler {
    @Override
    public boolean canShow(final GameRequestContent content, boolean isBestEffort) {
      String chromePackage = CustomTabUtils.getChromePackage();
      return chromePackage != null
          && Validate.hasCustomTabRedirectActivity(
              getActivityContext(), CustomTabUtils.getDefaultRedirectURI());
    }

    @Override
    public AppCall createAppCall(final GameRequestContent content) {
      GameRequestValidation.validate(content);
      AppCall appCall = createBaseAppCall();

      Bundle params = WebDialogParameters.create(content);

      AccessToken accessToken = AccessToken.getCurrentAccessToken();
      if (accessToken != null) {
        params.putString(ServerProtocol.DIALOG_PARAM_APP_ID, accessToken.getApplicationId());
      } else {
        String applicationId = FacebookSdk.getApplicationId();
        params.putString(ServerProtocol.DIALOG_PARAM_APP_ID, applicationId);
      }

      params.putString(
          ServerProtocol.DIALOG_PARAM_REDIRECT_URI, CustomTabUtils.getDefaultRedirectURI());

      DialogPresenter.setupAppCallForCustomTabDialog(appCall, GAME_REQUEST_DIALOG, params);

      return appCall;
    }
  }

  private class WebHandler extends ModeHandler {
    @Override
    public boolean canShow(final GameRequestContent content, boolean isBestEffort) {
      return true;
    }

    @Override
    public AppCall createAppCall(final GameRequestContent content) {
      GameRequestValidation.validate(content);
      AppCall appCall = createBaseAppCall();
      DialogPresenter.setupAppCallForWebDialog(
          appCall, GAME_REQUEST_DIALOG, WebDialogParameters.create(content));

      return appCall;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



