code: public void login(final @NonNull Activity activity) {
          boolean hasScopes = (sessionConfiguration.getScopes() != null && !sessionConfiguration.getScopes().isEmpty())
                  || (sessionConfiguration.getCustomScopes() != null && !sessionConfiguration.getCustomScopes().isEmpty());
          checkState(hasScopes, "Scopes must be set in the Session Configuration.");
          checkNotNull(sessionConfiguration.getRedirectUri(),
                  "Redirect URI must be set in Session Configuration.");
  
          if (!legacyUriRedirectHandler.checkValidState(activity, this)) {
              return;
          }
  
          SsoDeeplink ssoDeeplink = getSsoDeeplink(activity);
  
          if (ssoDeeplink.isSupported(SsoDeeplink.FlowVersion.REDIRECT_TO_SDK)) {
              Intent intent = LoginActivity.newIntent(
                      activity,
                      productFlowPriority,
                      sessionConfiguration,
                      ResponseType.TOKEN,
                      false,
                      true,
                      true);
              activity.startActivityForResult(intent, requestCode);
          } else if (ssoDeeplink.isSupported(SsoDeeplink.FlowVersion.DEFAULT)) {
              ssoDeeplink.execute(SsoDeeplink.FlowVersion.DEFAULT);
          } else if (isAuthCodeFlowEnabled()) {
              loginForAuthorizationCode(activity);
          } else {
              loginForImplicitGrantWithFallback(activity);
          }
      }
docs: Logs a user in, requesting approval for specified {@link Scope}s.
  
  @param activity the activity used to start the {@link LoginActivity}.