All Downloads are FREE. Search and download functionalities are using the official Maven repository.

co.easimart.EasimartAnonymousUtils Maven / Gradle / Ivy

package co.easimart;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import bolts.Task;

/**
 * Provides utility functions for working with Anonymously logged-in users. Anonymous users have
 * some unique characteristics:
 * 
    *
  • Anonymous users don't need a user name or password.
  • *
  • Once logged out, an anonymous user cannot be recovered.
  • *
  • When the current user is anonymous, the following methods can be used to switch to a * different user or convert the anonymous user into a regular one: *
      *
    • signUp converts an anonymous user to a standard user with the given username and password. * Data associated with the anonymous user is retained.
    • *
    • logIn switches users without converting the anonymous user. Data associated with the * anonymous user will be lost.
    • *
    • Service logIn (e.g. Facebook, Twitter) will attempt to convert the anonymous user into a * standard user by linking it to the service. If a user already exists that is linked to the * service, it will instead switch to the existing user.
    • *
    • Service linking (e.g. Facebook, Twitter) will convert the anonymous user into a standard user * by linking it to the service.
    • *
    *
*/ public final class EasimartAnonymousUtils { /* package */ static final String AUTH_TYPE = "anonymous"; /** * Whether the user is logged in anonymously. * * @param user * User to check for anonymity. The user must be logged in on this device. * @return True if the user is anonymous. False if the user is not the current user or is not * anonymous. */ public static boolean isLinked(EasimartUser user) { return user.isLinked(AUTH_TYPE); } /** * Creates an anonymous user in the background. * * @return A Task that will be resolved when logging in is completed. */ public static Task logInInBackground() { return EasimartUser.logInWithInBackground(AUTH_TYPE, getAuthData()); } /** * Creates an anonymous user in the background. * * @param callback * The callback to execute when anonymous user creation is complete. */ public static void logIn(LogInCallback callback) { EasimartTaskUtils.callbackOnMainThreadAsync(logInInBackground(), callback); } /* package */ static Map getAuthData() { Map authData = new HashMap<>(); authData.put("id", UUID.randomUUID().toString()); return authData; } private EasimartAnonymousUtils() { // do nothing } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy