Skip to content

filmopen_plugins_ui

Generated by scripts/package_digest.py; regenerate, never edit.

Settings → Plugins (Software Specification §9.4): the list of plug-ins, a tree by what their manifests name in x.dependencies, with Install from file… and the preferred providers, the consent screen, and a plug-in’s page — its switch, its settings on this computer, its actions and their answers, Check and what it implements, its own key cards (drawn by the builder the app hands in, since this package imports no keys package), the keys it asks to use and what a call may spend, and its README — all drawn by the app’s own widgets from what filmopen_state’s seam answers — three of its roles: PluginCatalogueView for what is installed, PluginSettingsControl for what the person changes, and PluginInvocation for an action and Check. Only the app imports it.

Flutter. 7 files, 1,761 lines under lib/; 91 tests in 7 files. Barrel: lib/filmopen_plugins_ui.dart.

  • filmopen_format — uses EntityType, numberText
  • filmopen_forms — uses PluginChoiceField, PluginProgramBox, PluginServerBox, PluginSwitchField, PluginTextBox, pluginChoiceToken, pluginNumberRefusal, pluginServerValue, pluginSwitchValue
  • filmopen_state — uses CreditFunding, FieldRegistry, FieldSetter, FundingResult, FundingUnavailable, Lending, PluginAction, PluginCallControl, PluginCallDone, PluginCatalogueView, PluginField, PluginFieldType, PluginGrant, PluginInvocation, PluginLifecyclePhase, PluginLifecycleProblem, PluginLifecycleProblemKind, PluginOrigin, PluginProblemInfo, PluginProvider, PluginReadiness, PluginSettingsControl, PluginStatusState, PluginSummary, PluginSwitchNotSaved, ProviderFunding, ProviderUnavailableReason, Settings, kFilmOpenDocsUrl, kFilmOpenDomain and 2 more
  • filmopen_ui — uses AppColors, ChromeClearance, EmptyState, SectionCard, showMessage
  • filmopen_l10n — uses nothing by name the digest could see
  • filmopen_store — uses AppLog

Third-party: file_selector, url_launcher.

filmopen_app

What the barrel exports, file by file. A name is class, enum, mixin, extension, typedef, a top-level function, getter, setter or variable; under a class, its public constructors, fields, getters, setters and methods.

lib/src/plugin_page.dart — only KeyCardsBuilder, openPluginDocs

Section titled “lib/src/plugin_page.dart — only KeyCardsBuilder, openPluginDocs”
  • typedef typedef KeyCardsBuilder — Draws [owner]’s key cards — a plug-in’s, by its tag.
  • function Future<bool> openPluginDocs(Uri uri) — Opens a plug-in’s guide in the person’s browser.
  • typedef typedef ArchiveChooser — Chooses a plug-in’s zip and answers its bytes; null when the person cancels.
  • function Future<Uint8List?> chooseArchive(BuildContext context) — The platform’s file dialog, filtered to zips.
  • class PluginsTab — Settings → Plugins (Software Specification §9.4): the plug-ins found in the library and development folder, each with its switch, and a plug-in’s own page.
    • const PluginsTab({super.key, this.webBuild = kIsWeb, this.chooseFile = chooseArchive, this.openDeveloperPage, this.openDocs = openPluginDocs, this.…
    • final bool webBuild — The web build runs no plug-ins: the tab is one sentence there.
    • final ArchiveChooser chooseFile — How Install from file… picks a zip; a test passes its own.
    • final Future<bool> Function(Uri uri) openDocs — How a plug-in’s guide is opened; tests pass their own so that no browser is started.
    • final void Function(BuildContext context, String stem)? openDeveloperPage — Opens the plug-in developer page on a plug-in.
    • final KeyCardsBuilder? keyCards — Draws a plug-in’s own key cards on its page; the app hands it in, as [openDeveloperPage].
    • final String? openPlugin — A plug-in whose page a door elsewhere asked for, by tag, such as a speech provider’s (§6.7): its page opens, or the list where it is not installed.
    • final VoidCallback? onOpenedPlugin — Called after the frame that took [openPlugin], so that the request is taken once.

Files under lib/ the barrel does not reach; nothing outside the package may import them.

  • lib/src/consent_dialog.dart: askConsent
  • lib/src/plugin_card.dart: setPluginEnabled, pluginOriginText, PluginEnabledSwitch, pluginNotices, PluginCard
  • lib/src/plugin_status_line.dart: PluginTone, PluginReadinessWords, pluginReadinessWords, _codeOf, pluginToneColour, pluginToneIcon, PluginStatusLine
  • lib/src/preferred_providers.dart: PreferredProviders, _PreferredPullDown