public boolean authenticate(final OddCallback<AuthToken> callback){
synchronized (syncLock) {
    if (isExpired()) {
      return false;
    }
    if (!authenticating) {
      authenticating=true;
      timer=new Timer();
      TimerTask task=getPollTask(callback);
      timer.schedule(task,new Date(),interval);
      TimerTask expiredTask=getExpiredTask(callback);
      timer.schedule(expiredTask,expirationDate);
    }
    return true;
  }
}

public boolean authenticate ( final OddCallback < AuthToken > callback ) { synchronized ( syncLock ) { if ( isExpired ( ) ) { return false ; } if ( ! authenticating ) { authenticating = true ; timer = new Timer ( ) ; TimerTask task = getPollTask ( callback ) ; timer . schedule ( task , new Date ( ) , interval ) ; TimerTask expiredTask = getExpiredTask ( callback ) ; timer . schedule ( expiredTask , expirationDate ) ; } return true ; } }
if not expired then this will continue polling the server until time expires or an auth token is obtained callback . onfailure will be completed with devicecodeexpiredexception if this object expires without getting an auth token . it ' s not neccessary to use this method if you are using the rxauthenticate method
