Theme Mode #1

This commit is contained in:
2025-09-03 15:15:09 +05:30
parent 3e3465d5e8
commit d9f78629d2
6 changed files with 115 additions and 14 deletions

View File

@@ -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(),
);
}),
}
),
],
);
},

View 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(),
),
);
},
);
}