Theme Mode #1
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:kmobile/features/profile/preferences/theme_mode_dialog.dart';
|
||||
import 'language_dialog.dart';
|
||||
import 'color_theme_dialog.dart';
|
||||
import '../../../l10n/app_localizations.dart';
|
||||
@@ -29,7 +30,7 @@ class PreferenceScreen extends StatelessWidget {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (_) =>
|
||||
const LanguageDialog(), // your custom language dialog
|
||||
const LanguageDialog(),
|
||||
);
|
||||
},
|
||||
),
|
||||
@@ -37,12 +38,9 @@ class PreferenceScreen extends StatelessWidget {
|
||||
ListTile(
|
||||
leading: const Icon(Icons.brightness_6),
|
||||
title: Text(AppLocalizations.of(context).themeMode),
|
||||
//trailing: Switch(
|
||||
// value: state.isDarkMode,
|
||||
// onChanged: (val) {
|
||||
// context.read<ThemeCubit>().toggleDarkMode(val);
|
||||
// },
|
||||
//),
|
||||
onTap: () {
|
||||
showThemeModeDialog(context);
|
||||
},
|
||||
),
|
||||
//Color_Theme_Selection
|
||||
ListTile(
|
||||
@@ -53,7 +51,8 @@ class PreferenceScreen extends StatelessWidget {
|
||||
context: context,
|
||||
builder: (_) => const ColorThemeDialog(),
|
||||
);
|
||||
}),
|
||||
}
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
|
33
lib/features/profile/preferences/theme_mode_dialog.dart
Normal file
33
lib/features/profile/preferences/theme_mode_dialog.dart
Normal file
@@ -0,0 +1,33 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:kmobile/features/auth/controllers/theme_mode_cubit.dart';
|
||||
|
||||
Future<void> showThemeModeDialog(BuildContext context) async {
|
||||
final cubit = context.read<ThemeModeCubit>();
|
||||
final currentMode = context.read<ThemeModeCubit>().state.mode;
|
||||
|
||||
await showDialog(
|
||||
context: context,
|
||||
builder: (context) {
|
||||
return AlertDialog(
|
||||
title: const Text("Select Theme Mode"),
|
||||
content: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: ThemeMode.values.map((mode) {
|
||||
return RadioListTile<ThemeMode>(
|
||||
title: Text(mode.toString().split('.').last.toUpperCase()),
|
||||
value: mode,
|
||||
groupValue: currentMode,
|
||||
onChanged: (value) {
|
||||
if (value != null) {
|
||||
cubit.changeThemeMode(value);
|
||||
Navigator.pop(context);
|
||||
}
|
||||
},
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
Reference in New Issue
Block a user