Widget build(BuildContext context, WidgetRef ref) {
return BackButton(
onPressed: () {
- ref.read(appProvider.notifier).update(
- (state) => state = AppState.home,
- );
+ ref.read(appProvider.notifier).update(AppState.home);
},
);
}
year
}
-final appProvider = StateProvider<AppState>((ref) => AppState.splash);
+class AppStateNotifier extends Notifier<AppState> {
+ AppState previous = AppState.home;
+
+ @override
+ AppState build() {
+ return AppState.splash;
+ }
+
+ void update(AppState newState) {
+ previous = state;
+ state = newState;
+ }
+
+ void back() {
+ state = previous;
+ }
+}
+
+final appProvider =
+ NotifierProvider<AppStateNotifier, AppState>(AppStateNotifier.new);
final valClientProvider = Provider((ref) {
KuksaConfig config = ref.watch(appConfigProvider).kuksaConfig;
});
ref.read(appLauncherProvider).activateApp("homescreen");
ref.read(currentTimeProvider.notifier).isYearChanged = false;
- ref.read(appProvider.notifier).update((state) => state = status);
+ ref.read(appProvider.notifier).update(status);
}
@override
BuildContext context,
) {
return Consumer(builder: (context, ref, child) {
- final state = ref.read(appProvider);
+ final appState = ref.watch(appProvider);
final bool disableBkgAnimation =
ref.read(appConfigProvider).disableBkgAnimation;
if (disableBkgAnimation) {
repeat: true,
),
FlowBuilder<AppState>(
- state: ref.watch(appProvider),
+ state: appState,
onGeneratePages: onGenerateAppViewPages,
observers: [
HeroController(),
],
),
- if (state != AppState.splash)
+ if (appState != AppState.splash)
Positioned(
top: 0,
bottom: 0,
],
),
bottomNavigationBar:
- state == AppState.splash ? null : const CustomBottomBar(),
+ appState == AppState.splash ? null : const CustomBottomBar(),
);
});
}
onTap: () {
setState(() {
isAudioSettingsEnabled = !isAudioSettingsEnabled;
+ ref
+ .read(appProvider.notifier)
+ .update(AppState.audioSettings);
});
},
child: Padding(
onTap: () {
setState(() {
isAudioSettingsEnabled = !isAudioSettingsEnabled;
+ ref
+ .read(appProvider.notifier)
+ .update(AppState.audioSettings);
});
},
child: Padding(
import 'widget/audio_content.dart';
-
class AudioSettingsPage extends ConsumerWidget {
const AudioSettingsPage({super.key});
title: 'Audio Settings',
hasBackButton: true,
onPressed: () {
- context.flow<AppState>().update((state) => AppState.settings);
+ ref.read(appProvider.notifier).back();
},
),
- const Expanded(
- child: AudioContent()),
+ const Expanded(child: AudioContent()),
],
),
);
}
}
-
import '../../../custom_icons/custom_icons.dart';
-class Settings extends StatelessWidget {
+class Settings extends ConsumerWidget {
const Settings({
super.key,
});
@override
- Widget build(BuildContext context) {
+ Widget build(BuildContext context, WidgetRef ref) {
return Column(
mainAxisAlignment: MainAxisAlignment.start,
//crossAxisAlignment: CrossAxisAlignment.center,
title: 'Date & Time',
hasSwich: false,
voidCallback: () async {
- context
- .flow<AppState>()
- .update((next) => AppState.dateTime);
+ ref.read(appProvider.notifier).update(AppState.dateTime);
}),
SettingsTile(
icon: Icons.bluetooth,
title: 'Bluetooth',
hasSwich: true,
voidCallback: () {
- context
- .flow<AppState>()
- .update((next) => AppState.bluetooth);
+ ref.read(appProvider.notifier).update(AppState.bluetooth);
}),
SettingsTile(
icon: Icons.wifi,
title: 'Wifi',
hasSwich: true,
voidCallback: () {
- context.flow<AppState>().update((next) => AppState.wifi);
+ ref.read(appProvider.notifier).update(AppState.wifi);
}),
SettingsTile(
icon: CustomIcons.wiredicon,
title: 'Wired',
hasSwich: false,
voidCallback: () {
- context.flow<AppState>().update((next) => AppState.wired);
+ ref.read(appProvider.notifier).update(AppState.wired);
}),
SettingsTile(
icon: Icons.tune,
title: 'Audio Settings',
hasSwich: false,
voidCallback: () {
- context
- .flow<AppState>()
- .update((next) => AppState.audioSettings);
+ ref.read(appProvider.notifier).update(AppState.audioSettings);
}),
SettingsTile(
icon: Icons.person_2_outlined,
title: 'Profiles',
hasSwich: false,
voidCallback: () {
- context
- .flow<AppState>()
- .update((next) => AppState.profiles);
+ ref.read(appProvider.notifier).update(AppState.profiles);
}),
SettingsTile(
icon: Icons.straighten,
title: 'Units',
hasSwich: false,
voidCallback: () {
- context.flow<AppState>().update((next) => AppState.units);
+ ref.read(appProvider.notifier).update(AppState.units);
}),
SettingsTile(
icon: Icons.help_sharp,
title: 'Version Info',
hasSwich: false,
voidCallback: () {
- context
- .flow<AppState>()
- .update((next) => AppState.versionInfo);
+ ref.read(appProvider.notifier).update(AppState.versionInfo);
}),
],
),
width: 452,
text: 'Continue',
onTap: () {
- // ref.read(vehicleProvider.notifier).setInitialState();
- ref
- .read(appProvider.notifier)
- .update((state) => state = AppState.dashboard);
+ ref.read(appProvider.notifier).update(AppState.dashboard);
},
),
const SizedBox(