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

@ -30,10 +30,19 @@ class _LoginPageState extends State<LoginPage> {
SettingProvider _settingProvider;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
bool rememberMe = false;
@override
Widget build(BuildContext 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(
key: _formKey,
@ -73,6 +82,20 @@ class _LoginPageState extends State<LoginPage> {
_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,
Align(
alignment: AlignmentDirectional.centerEnd,
@ -98,7 +121,8 @@ class _LoginPageState extends State<LoginPage> {
_formKey.currentState.save();
int status = await _userProvider.login(context: context, user: _user);
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
// Navigator.pushNamed(context, LandPage.routeName);

Loading…
Cancel
Save