From 45dbf8464ae8519a0a5f9444aeab240837242dab Mon Sep 17 00:00:00 2001 From: Nilanjan Chakrabarti Date: Thu, 4 Sep 2025 13:43:52 +0530 Subject: [PATCH] Theme Mode-System Default, Minor Changes & Logout Button #1 --- lib/app.dart | 2 +- .../auth/controllers/theme_mode_cubit.dart | 2 +- lib/features/auth/screens/login_screen.dart | 9 ++- .../screens/beneficiary_result_page.dart | 2 +- .../card/screens/card_management_screen.dart | 2 - .../dashboard/screens/dashboard_screen.dart | 2 +- .../screens/transaction_success_screen.dart | 10 +-- .../profile/preferences/logout_dialog.dart | 0 lib/features/profile/profile_screen.dart | 6 ++ .../service/screens/service_screen.dart | 2 - lib/main.dart | 12 +-- pubspec.lock | 80 +++++++++---------- 12 files changed, 66 insertions(+), 63 deletions(-) create mode 100644 lib/features/profile/preferences/logout_dialog.dart diff --git a/lib/app.dart b/lib/app.dart index a00d909..636df8f 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -345,7 +345,7 @@ class _NavigationScaffoldState extends State { backgroundColor: Theme.of(context).scaffoldBackgroundColor, selectedItemColor: Theme.of(context).colorScheme.primary, unselectedItemColor: - Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.7), + Theme.of(context).colorScheme.onSurface.withOpacity(0.7), onTap: (index) { setState(() { _selectedIndex = index; diff --git a/lib/features/auth/controllers/theme_mode_cubit.dart b/lib/features/auth/controllers/theme_mode_cubit.dart index 673576d..a4afaa5 100644 --- a/lib/features/auth/controllers/theme_mode_cubit.dart +++ b/lib/features/auth/controllers/theme_mode_cubit.dart @@ -10,7 +10,7 @@ class ThemeModeCubit extends Cubit { Future loadThemeMode() async { final prefs = await SharedPreferences.getInstance(); - final modeIndex = prefs.getInt('theme_mode') ?? 2; // default system + final modeIndex = prefs.getInt('theme_mode') ?? 0; // default system final mode = ThemeMode.values[modeIndex]; emit(ThemeModeState(mode: mode)); } diff --git a/lib/features/auth/screens/login_screen.dart b/lib/features/auth/screens/login_screen.dart index 5d08923..54169fc 100644 --- a/lib/features/auth/screens/login_screen.dart +++ b/lib/features/auth/screens/login_screen.dart @@ -194,7 +194,7 @@ class LoginScreenState extends State ? const CircularProgressIndicator() : Text( AppLocalizations.of(context).login, - style: const TextStyle(fontSize: 16), + style: TextStyle(color: Theme.of(context).colorScheme.onPrimaryContainer), ), ), ), @@ -225,10 +225,11 @@ class LoginScreenState extends State style: OutlinedButton.styleFrom( shape: const StadiumBorder(), padding: const EdgeInsets.symmetric(vertical: 16), - backgroundColor: Theme.of(context).primaryColorLight, - foregroundColor: Theme.of(context).colorScheme.onSurface, + backgroundColor: Theme.of(context).colorScheme.primary, + foregroundColor: Theme.of(context).colorScheme.onPrimary, ), - child: Text(AppLocalizations.of(context).register), + child: Text(AppLocalizations.of(context).register, + style: TextStyle(color: Theme.of(context).colorScheme.onPrimary),), ), ), ], diff --git a/lib/features/beneficiaries/screens/beneficiary_result_page.dart b/lib/features/beneficiaries/screens/beneficiary_result_page.dart index a3c4fe5..c416fd4 100644 --- a/lib/features/beneficiaries/screens/beneficiary_result_page.dart +++ b/lib/features/beneficiaries/screens/beneficiary_result_page.dart @@ -90,7 +90,7 @@ class _BeneficiaryResultPageState extends State { ), child: Text( AppLocalizations.of(context).done, - style: const TextStyle(fontSize: 18), // slightly bigger text + style: TextStyle(color: Theme.of(context).colorScheme.onPrimaryContainer), // slightly bigger text ), ), ), diff --git a/lib/features/card/screens/card_management_screen.dart b/lib/features/card/screens/card_management_screen.dart index e3b88f0..3f0b086 100644 --- a/lib/features/card/screens/card_management_screen.dart +++ b/lib/features/card/screens/card_management_screen.dart @@ -20,8 +20,6 @@ class _CardManagementScreen extends State { automaticallyImplyLeading: false, title: Text( AppLocalizations.of(context).cardManagement, - style: - const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, ), diff --git a/lib/features/dashboard/screens/dashboard_screen.dart b/lib/features/dashboard/screens/dashboard_screen.dart index fd8b78b..4ffbb94 100644 --- a/lib/features/dashboard/screens/dashboard_screen.dart +++ b/lib/features/dashboard/screens/dashboard_screen.dart @@ -663,7 +663,7 @@ class _DashboardScreenState extends State { icon, size: 30, color: disable - ? theme.colorScheme.onSurface.withValues(alpha: 0.3) + ? theme.colorScheme.onSurface.withOpacity(0.3) : theme.colorScheme.primary, grade: 200, weight: 700, diff --git a/lib/features/fund_transfer/screens/transaction_success_screen.dart b/lib/features/fund_transfer/screens/transaction_success_screen.dart index 0103cfa..6f5ac8e 100644 --- a/lib/features/fund_transfer/screens/transaction_success_screen.dart +++ b/lib/features/fund_transfer/screens/transaction_success_screen.dart @@ -91,15 +91,15 @@ class _TransactionSuccessScreen extends State { child: OutlinedButton.icon( onPressed: _shareScreenshot, icon: const Icon(Icons.share, size: 18), - label: Text(AppLocalizations.of(context).share), + label: Text(AppLocalizations.of(context).share, + style: TextStyle(color: Theme.of(context).colorScheme.onPrimaryContainer), + ), style: ElevatedButton.styleFrom( shape: const StadiumBorder(), padding: const EdgeInsets.symmetric(vertical: 16), - backgroundColor: + backgroundColor: Theme.of(context).primaryColorDark, + foregroundColor: Theme.of(context).scaffoldBackgroundColor, - foregroundColor: Theme.of(context).primaryColorLight, - side: BorderSide(color: Theme.of(context).colorScheme.outline, width: 1), - elevation: 0, ), ), ), diff --git a/lib/features/profile/preferences/logout_dialog.dart b/lib/features/profile/preferences/logout_dialog.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/features/profile/profile_screen.dart b/lib/features/profile/profile_screen.dart index 8c8e3ac..516fdec 100644 --- a/lib/features/profile/profile_screen.dart +++ b/lib/features/profile/profile_screen.dart @@ -27,6 +27,12 @@ class ProfileScreen extends StatelessWidget { }, ), // You can add more profile options here later + ListTile( + leading: const Icon(Icons.logout), + title: const Text("Logout"), // Localized "Preferences" + onTap: () { + }, + ), ], ), ); diff --git a/lib/features/service/screens/service_screen.dart b/lib/features/service/screens/service_screen.dart index 8970167..0042b67 100644 --- a/lib/features/service/screens/service_screen.dart +++ b/lib/features/service/screens/service_screen.dart @@ -20,8 +20,6 @@ class _ServiceScreen extends State { automaticallyImplyLeading: false, title: Text( AppLocalizations.of(context).services, - style: - const TextStyle(color: Colors.black, fontWeight: FontWeight.w500), ), centerTitle: false, ), diff --git a/lib/main.dart b/lib/main.dart index d79c64f..a00edcd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -16,12 +16,12 @@ void main() async { // Check for device compromise final compromisedMessage = await SecurityService.deviceCompromisedMessage; - if (compromisedMessage != null) { - runApp(MaterialApp( - home: SecurityErrorScreen(message: compromisedMessage), - )); - return; - } + // if (compromisedMessage != null) { + // runApp(MaterialApp( + // home: SecurityErrorScreen(message: compromisedMessage), + // )); + // return; + // } // Initialize dependencies await setupDependencies(); diff --git a/pubspec.lock b/pubspec.lock index e7542f1..2dd6a96 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: async - sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.13.0" + version: "2.11.0" bloc: dependency: "direct main" description: @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.1" chalkdart: dependency: transitive description: @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.3.0" checked_yaml: dependency: transitive description: @@ -77,18 +77,18 @@ packages: dependency: transitive description: name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.1" collection: dependency: transitive description: name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.19.1" + version: "1.18.0" confetti: dependency: "direct main" description: @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.1" ffi: dependency: transitive description: @@ -353,10 +353,10 @@ packages: dependency: "direct main" description: name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.20.2" + version: "0.19.0" jailbreak_root_detection: dependency: "direct main" description: @@ -385,18 +385,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.9" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.9" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -465,10 +465,10 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: @@ -489,10 +489,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.15.0" mime: dependency: transitive description: @@ -513,10 +513,10 @@ packages: dependency: transitive description: name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.9.0" path_parsing: dependency: transitive description: @@ -697,15 +697,15 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.0" + version: "0.0.99" source_span: dependency: transitive description: name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.10.1" + version: "1.10.0" sprintf: dependency: transitive description: @@ -718,42 +718,42 @@ packages: dependency: transitive description: name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.12.1" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.4" + version: "0.7.2" typed_data: dependency: transitive description: @@ -870,10 +870,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "15.0.0" + version: "14.2.5" web: dependency: transitive description: @@ -915,5 +915,5 @@ packages: source: hosted version: "3.1.3" sdks: - dart: ">=3.7.0-0 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0"