code: public void retrieveCurrentCustomer(@NonNull CustomerRetrievalListener listener) {
          final Customer cachedCustomer = getCachedCustomer();
          if (cachedCustomer != null) {
              listener.onCustomerRetrieved(cachedCustomer);
          } else {
              mCustomer = null;
  
              final String operationId = UUID.randomUUID().toString();
              mCustomerRetrievalListeners.put(operationId, listener);
              mEphemeralKeyManager.retrieveEphemeralKey(operationId, null, null);
          }
      }
docs: Retrieve the current {@link Customer}. If the cached value at {@link #mCustomer} is not
  stale, this returns immediately with the cache. If not, it fetches a new value and returns
  that to the listener.
  
  @param listener a {@link CustomerRetrievalListener} to invoke with the result of getting the
  customer, either from the cache or from the server