remember me added.

main_design2.0
Sikander Saleem 1 year ago
parent ff3dfcc9cb
commit a7f2573584

@ -5,4 +5,7 @@ class ASettings {
static final String language = "language"; static final String language = "language";
static final String theme = "theme"; static final String theme = "theme";
static final String speechToText = "speech_to_text"; static final String speechToText = "speech_to_text";
static final String rememberMe = "remember_me";
static final String userName = "username";
static final String password = "password";
} }

@ -34,6 +34,14 @@ class SettingProvider extends ChangeNotifier {
selectAssetGroup(user); selectAssetGroup(user);
} }
Future<void> setRememberMe(String username, String password, bool rememberMe) async {
this.rememberMe = rememberMe;
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setBool(ASettings.rememberMe, rememberMe);
await prefs.setString(ASettings.userName, username);
await prefs.setString(ASettings.password, password);
}
void selectAssetGroup(User user) { void selectAssetGroup(User user) {
if (user.assetGroups.length == 1) { if (user.assetGroups.length == 1) {
_assetGroup = user.assetGroups.first; _assetGroup = user.assetGroups.first;
@ -75,6 +83,10 @@ class SettingProvider extends ChangeNotifier {
AssetGroup get assetGroup => _assetGroup; AssetGroup get assetGroup => _assetGroup;
bool rememberMe = false;
String username = "";
String password = "";
Future<void> setLanguage(String currentLanguage) async { Future<void> setLanguage(String currentLanguage) async {
SharedPreferences prefs = await SharedPreferences.getInstance(); SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString(ASettings.language, currentLanguage); prefs.setString(ASettings.language, currentLanguage);
@ -139,6 +151,10 @@ class SettingProvider extends ChangeNotifier {
selectAssetGroup(user); selectAssetGroup(user);
} }
rememberMe = prefs.getBool(ASettings.rememberMe) ?? false;
username = prefs.getString(ASettings.userName) ?? "";
password = prefs.getString(ASettings.password) ?? "";
// if (prefs.containsKey(ASettings.assetGroup)) { // // if (prefs.containsKey(ASettings.assetGroup)) { //
// String assetJson = prefs.getString(ASettings.assetGroup); // String assetJson = prefs.getString(ASettings.assetGroup);
// _assetGroup = AssetGroup.fromJson(json.decode(assetJson)); // _assetGroup = AssetGroup.fromJson(json.decode(assetJson));

@ -30,10 +30,19 @@ class _LoginPageState extends State<LoginPage> {
SettingProvider _settingProvider; SettingProvider _settingProvider;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>(); final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
bool rememberMe = false;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
_userProvider = Provider.of<UserProvider>(context); _userProvider = Provider.of<UserProvider>(context);
_settingProvider = Provider.of<SettingProvider>(context); if (_settingProvider == null) {
_settingProvider = Provider.of<SettingProvider>(context);
rememberMe = _settingProvider.rememberMe;
if (rememberMe) {
_user.userName = _settingProvider.username;
_user.password = _settingProvider.password;
}
}
return Form( return Form(
key: _formKey, key: _formKey,
@ -73,6 +82,20 @@ class _LoginPageState extends State<LoginPage> {
_user.password = value; _user.password = value;
}, },
), ),
8.height,
Row(
children: [
Checkbox(
value: rememberMe,
activeColor: AppColor.blueStatus(context),
onChanged: (value) {
setState(() {
rememberMe = value;
});
}),
"Remember Me".bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral50).expanded,
],
),
16.height, 16.height,
Align( Align(
alignment: AlignmentDirectional.centerEnd, alignment: AlignmentDirectional.centerEnd,
@ -98,7 +121,8 @@ class _LoginPageState extends State<LoginPage> {
_formKey.currentState.save(); _formKey.currentState.save();
int status = await _userProvider.login(context: context, user: _user); int status = await _userProvider.login(context: context, user: _user);
if (status >= 200 && status < 300 && _userProvider.user.isAuthenticated ?? false) { if (status >= 200 && status < 300 && _userProvider.user.isAuthenticated ?? false) {
_settingProvider.setUser(_userProvider.user); await _settingProvider.setUser(_userProvider.user);
await _settingProvider.setRememberMe(_user.userName, _user.password, rememberMe);
/// The below line for the new design /// The below line for the new design
// Navigator.pushNamed(context, LandPage.routeName); // Navigator.pushNamed(context, LandPage.routeName);

Loading…
Cancel
Save