ThemeFeed constructor

ThemeFeed({
  1. required int feedSeed,
  2. FeedFilter filter = const FeedFilter.surpriseMe(),
  3. FeedEntry? initial,
  4. ThemeIntent? intent,
  5. int maxHistory = defaultMaxHistory,
  6. int prefetchCount = 3,
  7. PrefetchHook? onPrefetch,
})

A new feed for feedSeed (use randomFeedSeed on first launch and persist it). The first theme is initial, or step 0 of the feed.

With intent, the feed starts steered: step 0 is the intent's centred theme.

Implementation

ThemeFeed({
  required int feedSeed,
  FeedFilter filter = const FeedFilter.surpriseMe(),
  FeedEntry? initial,
  ThemeIntent? intent,
  this.maxHistory = defaultMaxHistory,
  this.prefetchCount = 3,
  this.onPrefetch,
}) : _filter = filter,
     feedSeed = feedSeed & 0xFFFFFFFF {
  if (intent != null && !intent.isEmpty) {
    _intent = intent;
    _intentStep = 0;
  }
  if (initial != null) {
    _history.add(initial);
  } else {
    _history.add(entryAt(0));
    _steps = 1;
  }
}