diff --git a/lib/main.dart b/lib/main.dart index 53d08d3..96ae9b3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -4,7 +4,9 @@ import 'package:get_it/get_it.dart'; import 'package:selftrackingapp/app_localizations.dart'; import 'package:selftrackingapp/networking/data_repository.dart'; import 'package:selftrackingapp/networking/db.dart'; +import 'package:selftrackingapp/page/screen/root_screen.dart'; import 'package:selftrackingapp/page/screen/welcome_screen.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import 'utils/tracker_colors.dart'; @@ -38,7 +40,46 @@ class MyApp extends StatelessWidget { // Built-in localization for text direction LTR/RTL GlobalWidgetsLocalizations.delegate, ], - home: WelcomeScreen(), + home: HomeScreen(), + ); + } +} + +class HomeScreen extends StatefulWidget { + @override + _HomeScreenState createState() => _HomeScreenState(); +} + +class _HomeScreenState extends State { + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: SharedPreferences.getInstance(), + builder: + (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.hasData && snapshot.data != null) { + final pref = snapshot.data; + String language = pref.getString("language"); + print("Languge $language"); + if (language != null) { + if (language == "en") { + AppLocalizations.of(context).load(Locale("en", "US")); + } else if (language == "ti") { + AppLocalizations.of(context).load(Locale("ti", "TA")); + } else { + AppLocalizations.of(context).load(Locale("si", "LK")); + } + + return RootScreen(); + } + return WelcomeScreen(); + } + return Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/bg.png"), fit: BoxFit.fill)), + ); // or some other widget + }, ); } } diff --git a/lib/page/screen/welcome_screen.dart b/lib/page/screen/welcome_screen.dart index 8225ceb..6269d7f 100644 --- a/lib/page/screen/welcome_screen.dart +++ b/lib/page/screen/welcome_screen.dart @@ -4,6 +4,7 @@ import 'package:selftrackingapp/app_localizations.dart'; import 'package:selftrackingapp/page/screen/root_screen.dart'; import 'package:selftrackingapp/utils/tracker_colors.dart'; import 'package:selftrackingapp/widgets/animated_tracker_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import '../../app_localizations.dart'; import '../../utils/tracker_colors.dart'; @@ -28,7 +29,6 @@ class _WelcomeScreenState extends State { @override void initState() { - // TODO: implement initState super.initState(); } @@ -236,11 +236,19 @@ class _WelcomeScreenState extends State { _nextBtnWidth = 100.0; _nextBtnHeight = 60.0; _nextBtnChild = _registerCircleProgress; - Future.delayed(Duration(seconds: 3), () { - Navigator.pushReplacement( - context, - MaterialPageRoute( - builder: (context) => RootScreen())); + + SharedPreferences.getInstance().then((pref) { + String language = AppLocalizations.of(context) + .locale + .languageCode; + pref.setString("language", language); + print("Languge $language"); + Future.delayed(Duration(seconds: 1), () { + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (context) => RootScreen())); + }); }); }); },