public void setUserInfo(final String newPassword, String email, String displayName, Map extraInfo, final KickflipCallback cb) {
        if (!assertActiveUserAvailable(cb)) return;
        GenericData data = new GenericData();
        final String finalPassword;
        if (newPassword != null){
            data.put("new_password", newPassword);
            finalPassword = newPassword;
        } else {
            finalPassword = getPasswordForActiveUser();
        }
        if (email != null) data.put("email", email);
        if (displayName != null) data.put("display_name", displayName);
        if (extraInfo != null) data.put("extra_info", new Gson().toJson(extraInfo));

        post(EDIT_USER, new UrlEncodedContent(data), User.class, new KickflipCallback() {
            @Override
            public void onSuccess(final Response response) {
                if (VERBOSE)
                    Log.i(TAG, "setUserInfo response: " + response);
                storeNewUserResponse((User) response, finalPassword);
                postResponseToCallback(cb, response);
            }

            @Override
            public void onError(final KickflipException error) {
                Log.w(TAG, "setUserInfo Error: " + error);
                postExceptionToCallback(cb, error);
            }
        });
    }
public void setUserInfo ( final String newPassword , String email , String displayName , Map extraInfo , final KickflipCallback cb ) { if ( ! assertActiveUserAvailable ( cb ) ) return ; GenericData data = new GenericData ( ) ; final String finalPassword ; if ( newPassword != null ) { data . put ( "new_password" , newPassword ) ; finalPassword = newPassword ; } else { finalPassword = getPasswordForActiveUser ( ) ; } if ( email != null ) data . put ( "email" , email ) ; if ( displayName != null ) data . put ( "display_name" , displayName ) ; if ( extraInfo != null ) data . put ( "extra_info" , new Gson ( ) . toJson ( extraInfo ) ) ; post ( EDIT_USER , new UrlEncodedContent ( data ) , User . class , new KickflipCallback ( ) { @ Override public void onSuccess ( final Response response ) { if ( VERBOSE ) Log . i ( TAG , "setUserInfo response: " + response ) ; storeNewUserResponse ( ( User ) response , finalPassword ) ; postResponseToCallback ( cb , response ) ; } @ Override public void onError ( final KickflipException error ) { Log . w ( TAG , "setUserInfo Error: " + error ) ; postExceptionToCallback ( cb , error ) ; } } ) ; }
Set the current active user's meta info. Pass a null argument to leave it as-is.

@param newPassword the user's new password
@param email       the user's new email address
@param displayName The desired display name
@param extraInfo   Arbitrary String data to associate with this user.
@param cb          This callback will receive a User in {@link io.kickflip.sdk.api.KickflipCallback#onSuccess(io.kickflip.sdk.api.json.Response)}
or an Exception {@link io.kickflip.sdk.api.KickflipCallback#onError(io.kickflip.sdk.exception.KickflipException)}.