diff --git a/vimeo-networking/src/main/java/com/vimeo/networking/Vimeo.java b/vimeo-networking/src/main/java/com/vimeo/networking/Vimeo.java index e2bc9a1cb..13307e744 100644 --- a/vimeo-networking/src/main/java/com/vimeo/networking/Vimeo.java +++ b/vimeo-networking/src/main/java/com/vimeo/networking/Vimeo.java @@ -70,6 +70,7 @@ public final class Vimeo { public static final String PARAMETER_PASSWORD = "password"; public static final String PARAMETER_USERS_LOCATION = "location"; public static final String PARAMETER_USERS_BIO = "bio"; + public static final String PARAMETER_MARKETING_OPT_IN = "marketing_opt_in"; public static final String PARAMETER_VIDEO_VIEW = "view"; public static final String PARAMETER_VIDEO_COMMENTS = "comments"; diff --git a/vimeo-networking/src/main/java/com/vimeo/networking/VimeoClient.java b/vimeo-networking/src/main/java/com/vimeo/networking/VimeoClient.java index 9aab74051..83d5795ae 100644 --- a/vimeo-networking/src/main/java/com/vimeo/networking/VimeoClient.java +++ b/vimeo-networking/src/main/java/com/vimeo/networking/VimeoClient.java @@ -431,8 +431,24 @@ public Call singleSignOnTokenExchange(@NotNull String token, AuthC return call; } + /** + * This method is used to create an account on Vimeo with the credentials {@code email} and + * {@code password}. It is used to join with an email and password. + * + * @param displayName The display name for the account. + * @param email Account's email. + * @param password Account's password. + * @param marketingOptIn Flag to opt in or out of email marketing emails. + * @param callback Callback to inform you of the result of login. + * + * @return A Call object. + */ @Nullable - public Call join(String displayName, String email, String password, AuthCallback callback) { + public Call join(@Nullable final String displayName, + @Nullable final String email, + @Nullable final String password, + final boolean marketingOptIn, + @Nullable final AuthCallback callback) { if (callback == null) { throw new AssertionError("Callback cannot be null"); } @@ -464,14 +480,27 @@ public Call join(String displayName, String email, String password parameters.put(Vimeo.PARAMETER_EMAIL, email); parameters.put(Vimeo.PARAMETER_PASSWORD, password); parameters.put(Vimeo.PARAMETER_SCOPE, mConfiguration.mScope); + parameters.put(Vimeo.PARAMETER_MARKETING_OPT_IN, Boolean.toString(marketingOptIn)); final Call call = mVimeoService.join(getBasicAuthHeader(), parameters); call.enqueue(new AccountCallback(this, email, callback)); return call; } + /** + * This method is used to create an account on Vimeo with Facebook. + * + * @param facebookToken Facebook token. + * @param email Account's email. + * @param marketingOptIn Flag to opt in or out of email marketing emails. + * @param callback Callback to inform you of the result of login. + * + * @return A Call object. + */ @Nullable - public Call joinWithFacebookToken(@NotNull final String facebookToken, @NotNull final String email, + public Call joinWithFacebookToken(@NotNull final String facebookToken, + @NotNull final String email, + final boolean marketingOptIn, @NotNull final AuthCallback callback) { if (facebookToken.isEmpty()) { final VimeoError error = new VimeoError("Facebook authentication error."); @@ -484,6 +513,7 @@ public Call joinWithFacebookToken(@NotNull final String facebookTo final HashMap parameters = new HashMap<>(); parameters.put(Vimeo.PARAMETER_TOKEN, facebookToken); parameters.put(Vimeo.PARAMETER_SCOPE, mConfiguration.mScope); + parameters.put(Vimeo.PARAMETER_MARKETING_OPT_IN, Boolean.toString(marketingOptIn)); final Call call = mVimeoService.join(getBasicAuthHeader(), parameters); call.enqueue(new AccountCallback(this, email, callback)); @@ -493,13 +523,16 @@ public Call joinWithFacebookToken(@NotNull final String facebookTo /** * Register the user using a Google authentication token. * - * @param googleToken {@code id_token} value received by Google after authenticating. - * @param email User email address. - * @param callback This callback will be executed after the request succeeds or fails. + * @param googleToken {@code id_token} value received by Google after authenticating. + * @param email User email address. + * @param marketingOptIn Flag to opt in or out of marketing emails. + * @param callback This callback will be executed after the request succeeds or fails. * @return a retrofit {@link Call} object, which has already been enqueued. */ @Nullable - public Call joinWithGoogleToken(@NotNull final String googleToken, @NotNull final String email, + public Call joinWithGoogleToken(@NotNull final String googleToken, + @NotNull final String email, + final boolean marketingOptIn, @NotNull final AuthCallback callback) { if (googleToken.isEmpty()) { final VimeoError error = new VimeoError("Google authentication error."); @@ -512,6 +545,7 @@ public Call joinWithGoogleToken(@NotNull final String googleToken, final HashMap parameters = new HashMap<>(); parameters.put(Vimeo.PARAMETER_ID_TOKEN, googleToken); parameters.put(Vimeo.PARAMETER_SCOPE, mConfiguration.mScope); + parameters.put(Vimeo.PARAMETER_MARKETING_OPT_IN, Boolean.toString(marketingOptIn)); final Call call = mVimeoService.join(getBasicAuthHeader(), parameters); call.enqueue(new AccountCallback(this, email, callback)); @@ -588,7 +622,8 @@ public VimeoAccount logIn(String email, String password) { } @Nullable - public Call loginWithFacebookToken(@NotNull final String facebookToken, @NotNull final String email, + public Call loginWithFacebookToken(@NotNull final String facebookToken, + @NotNull final String email, @NotNull final AuthCallback callback) { if (facebookToken.isEmpty()) { final VimeoError error = new VimeoError("Facebook authentication error."); @@ -615,7 +650,8 @@ public Call loginWithFacebookToken(@NotNull final String facebookT * @return a retrofit {@link Call} object, which has already been enqueued. */ @Nullable - public Call loginWithGoogleToken(@NotNull final String googleToken, @NotNull final String email, + public Call loginWithGoogleToken(@NotNull final String googleToken, + @NotNull final String email, @NotNull final AuthCallback callback) { if (googleToken.isEmpty()) { final VimeoError error = new VimeoError("Google authentication error."); diff --git a/vimeo-networking/src/main/java/com/vimeo/networking/VimeoService.java b/vimeo-networking/src/main/java/com/vimeo/networking/VimeoService.java index 03a8d1be2..3870fac44 100644 --- a/vimeo-networking/src/main/java/com/vimeo/networking/VimeoService.java +++ b/vimeo-networking/src/main/java/com/vimeo/networking/VimeoService.java @@ -110,7 +110,8 @@ Call logIn(@Header("Authorization") String authHeader, @Field("use @FormUrlEncoded @POST("oauth/authorize/facebook") Call logInWithFacebook(@Header("Authorization") String authHeader, - @Field("grant_type") String grantType, @Field("token") String token, + @Field("grant_type") String grantType, + @Field("token") String token, @Field("scope") String scope); @FormUrlEncoded