86 lines
2.3 KiB
Dart
86 lines
2.3 KiB
Dart
import 'dart:convert';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import 'package:mobdr/model/login.dart';
|
|
import 'package:mobdr/model/user_profile.dart';
|
|
|
|
class LocalStorage {
|
|
static Future<SharedPreferences> get prefs async =>
|
|
await SharedPreferences.getInstance();
|
|
|
|
static FlutterSecureStorage get securePref => FlutterSecureStorage();
|
|
|
|
static Future eraseProfileData() async {
|
|
var loginData = (await getLoginData());
|
|
loginData?.guid = '';
|
|
//await saveLoginData(LoginModel: loginData);
|
|
}
|
|
|
|
static Future<LoginModel?> getLoginData() async {
|
|
try {
|
|
var loginData = await securePref.read(key: 'loginData');
|
|
return LoginModel.fromJson(json.decode(loginData!));
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
static Future saveLoginData(LoginModel loginModel) async {
|
|
return securePref.write(
|
|
key: 'loginData', value: json.encode(loginModel.toJson()));
|
|
}
|
|
|
|
static Future<UserProfileModel?> getProfileData() async {
|
|
try {
|
|
var profileData = await securePref.read(key: 'profileData');
|
|
return UserProfileModel.fromJson(json.decode(profileData!));
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
static Future saveProfileData(UserProfileModel profileModel) async {
|
|
try {
|
|
return securePref.write(
|
|
key: 'profileData', value: json.encode(profileModel.toJson()));
|
|
} catch (e) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
static Future saveItem({@required item, @required key}) async {
|
|
securePref.write(key: key.toString(), value: item);
|
|
}
|
|
|
|
static Future eraseItem({@required key}) async {
|
|
securePref.delete(key: '$key');
|
|
}
|
|
|
|
static Future<bool> keyExists(String key) async {
|
|
return securePref.containsKey(key: key);
|
|
}
|
|
|
|
/*
|
|
static eraseAll() async {
|
|
var savedData = await getSavedBooks();
|
|
for (var item in savedData) {
|
|
try {
|
|
await File(await downloadDir(item.id)).delete();
|
|
} catch (e) {}
|
|
}
|
|
securePref.deleteAll();
|
|
(await prefs).clear();
|
|
return;
|
|
}
|
|
|
|
static Future<dynamic> getItemData({@required key}) async {
|
|
return await securePref.containsKey(key: '$key')
|
|
? securePref.read(key: '$key')
|
|
: null;
|
|
}
|
|
*/
|
|
}
|