@Override
  public boolean havePattern(int userId) throws RemoteException {
    Object value = peekCache(HAS_LOCK_PATTERN_CACHE_KEY, userId);
    if (value instanceof Boolean) {
      Log.d(TAG, "havePattern() - cache = " + (boolean) value);
      return (boolean) value;
    }

    boolean result = mService.havePattern(userId);
    Log.d(TAG, "havePattern() - service = " + result);
    putCache(HAS_LOCK_PATTERN_CACHE_KEY, userId, result);

    return result;
  }