Module-schakelaar notifiers consolideren (~350-450 regels boilerplate) #2070
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2070
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Probleem
Tien bestanden in
lib/state/implementeren een vrijwel identiek patroon voor module-schakelaars:const _enabledKey = '...'...State-klasse metbool enabledenbool loading...Notifier extends Notifier<...State>metbuild() { _initialize(); return ...; }_initialize()leestSharedPreferences.getInstance()en roeptprefs.getBool(_enabledKey)aansetEnabled(bool value)schrijftstateenprefs.setBool(_enabledKey, value)...Provider,...EnabledProvider,...RevealProviderBetrokken bestanden
state/procesverbetering_provider.dartstate/managementsysteem_provider.dartstate/elearning_provider.dartstate/import_module_provider.dartstate/online_storage_provider.dartstate/info_safety_provider.dartstate/asset_rights_module_provider.dartstate/meeting_session_provider.dartstate/collaboration_provider.dartstate/openkat_provider.dartprocesverbetering,managementsysteemenelearningzijn nagenoeg identieke kopieen. De anderen hebben kleine variaties (Completer, legacy key cleanup, extra state, etc.).Voorstel
De codebase heeft al een goed voorbeeld in
state/consent_provider.dart: daar is de SharedPreferences-operatie geabstraheerd naar eenConsentStoreinterface. Voor de modules zou een generiekeBoolPreferenceNotifier<T>ofModuleToggleNotifiergemaakt kunnen worden, waarbij alleenenabledKeyen eventuele extra lifecycle callbacks verschillen.Begin met de drie meest identieke files (
procesverbetering,managementsysteem,elearning) als proefballonnetje.Schatting
Per file ~35-50 regels identieke boilerplate. Voor 8-10 bestanden: ~350-450 verwijderbare regels.
Labels
duplicate, enhancement