Features
Settings
10/11/2026
Local preferences, Account synchronization, appearance, notifications, and security settings in Flutter.
Settings ownership
Flutter settings use Riverpod notifiers with SharedPreferences for local persistence. Account-only sync services are layered on top; Guest mode remains local-only through isGuestLocal guards.
Available preferences
- Language —
system, Indonesian (id), and English (en). - Region and timezone — persisted locally and synchronized for Account users.
- Appearance — light/dark/system mode, theme style, accent color, text scale, and reduced motion.
- Privacy — usage-data and personalized-experience toggles.
- Notifications — push, queue/turn/reminder/booking alerts, promotions, tips, vibration, and sound settings. Account notification preference sync sends the supported promotions/tips values to Laravel/Go.
- Onboarding — local completion state controls the first route.
Account-only settings
Authenticated users also see connected Google/Apple accounts, password change, active sessions, login history, account deletion, and billing/entitlement status. Account routes are not usable in Guest mode.
The biometric and two-factor switches are currently UI state toggles. They are not a native biometric gate or server-side 2FA implementation.
Adding a preference
- Add the field/default to the relevant Riverpod notifier (
user_preferences_provider.dartornotification_provider.dart). - Persist it through the existing
SharedPreferencesmethods. - If it is Account data, update the corresponding sync service and Laravel/Go contract.
- Guard every remote path with
isGuestLocal. - Add keys to
lib/l10n/app_en.arbandapp_id.arb, then regenerate localization.
Relevant files
pages/settings/providers/user_preferences_provider.dartproviders/notification_provider.dartproviders/theme_provider.dartproviders/security_provider.dartproviders/sync/lib/l10n/app_*.arb
