Не отображается актуальное значение настроек

Пишу страницу пользовательских настроек, использую Shared Preference и setting_ui. Проблема заключается в том что при переключении toggle switch настройки сохраняются в shared preference, но при перезаходе в экран настроек toggle switch возвращается в прежнее положение false, если использовать hot reload, то переключатель примет нужное положение true или fals в зависимости от того какое значение было сохранено. Как исправить проблему отображения настроек?

Настройки

import 'package:flutter/material.dart';
import 'package:ingredients_scanner/models/product_preferences.dart';
import 'package:shared_preferences/shared_preferences.dart';

class UserPreferences extends ChangeNotifier {
  UserPreferences._shared(final SharedPreferences sharedPreferences)
      : _sharedPreferences = sharedPreferences;

  static UserPreferences? _instance;
  final SharedPreferences _sharedPreferences;

  static Future<UserPreferences> getUserPreferences() async {
    if (_instance == null) {
      final SharedPreferences preferences =
          await SharedPreferences.getInstance();
      _instance = UserPreferences._shared(preferences);
    }
    return _instance!;
  }

  static const String _TAG_INIT = 'init';
  static const String _TAG_CAMERA_FLASH = 'camera_flash';

  Future<void> init(final ProductPreferences productPreferences) async {
    if (_sharedPreferences.getBool(_TAG_INIT) != null) {
      return;
    }
    await productPreferences.resetImportances();
    await _sharedPreferences.setBool(_TAG_INIT, true);
  }

  Future<void> setCameraFlash(bool cameraFlash) async {
    await _sharedPreferences.setBool(_TAG_CAMERA_FLASH, cameraFlash);
  }

  bool getCameraFlash() =>
      _sharedPreferences.getBool(_TAG_CAMERA_FLASH) ?? false;
}

Отображение

import 'package:auto_route/annotations.dart';
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:ingredients_scanner/models/user_pereference.dart';
import 'package:settings_ui/settings_ui.dart';

@RoutePage()
class SettingsScreen extends StatefulWidget {
  const SettingsScreen({super.key});

  @override
  State<SettingsScreen> createState() => _SettingsScreenState();
}

class _SettingsScreenState extends State<SettingsScreen> {
  UserPreferences? service;

  @override
  void initState() {
    loadPreferences();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Settings Screen')),
      body: SettingsList(sections: [
        SettingsSection(
          tiles: [
            SettingsTile(
              title: const Text('Language'),
              onPressed: (context) {},
            ),
            SettingsTile.switchTile(
              title: const Text('Camera Flash'),
              initialValue: service?.getCameraFlash(),
              onToggle: (value) {
                setState(() {
                  service?.setCameraFlash(value);
                });
              },
            ),
          ],
        ),
      ]),
    );
  }

  loadPreferences() async {
    service = await UserPreferences.getUserPreferences();
  }
}

Ответы (0 шт):