code: @NonNull @MainThread static ActivityScopedCache getOrCreateActivityScopedCache(
        @NonNull Activity activity) {
      if (activity == null) {
        throw new NullPointerException("Activity is null");
      }
  
      String activityId = activityIdMap.get(activity);
      if (activityId == null) {
        // Activity not registered yet
        activityId = UUID.randomUUID().toString();
        activityIdMap.put(activity, activityId);
  
        if (activityIdMap.size() == 1) {
          // Added the an Activity for the first time so register Activity LifecycleListener
          activity.getApplication().registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
          if (DEBUG) {
            Log.d(DEBUG_TAG, "Registering ActivityLifecycleCallbacks");
          }
        }
      }
  
      ActivityScopedCache activityScopedCache = activityScopedCacheMap.get(activityId);
      if (activityScopedCache == null) {
        activityScopedCache = new ActivityScopedCache();
        activityScopedCacheMap.put(activityId, activityScopedCache);
      }
  
      return activityScopedCache;
    }
docs: Get an already existing {@link ActivityScopedCache} or creates a new one if not existing yet
  
  @param activity The Activitiy for which you want to get the activity scope for
  @return The {@link ActivityScopedCache} for the given Activity