forked from eatvio/eatvio_app
77 lines
2.1 KiB
Dart
77 lines
2.1 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
abstract class TokenStorage {
|
|
static SharedPreferences? _cachedPrefs;
|
|
|
|
static Future<SharedPreferences> _getPrefs() async {
|
|
_cachedPrefs ??= await SharedPreferences.getInstance();
|
|
return _cachedPrefs!;
|
|
}
|
|
|
|
/// Clears the cached SharedPreferences instance.
|
|
/// This is primarily used for testing to ensure fresh state between tests.
|
|
@visibleForTesting
|
|
static void clearCache() {
|
|
_cachedPrefs = null;
|
|
}
|
|
|
|
static Future<bool> haveTokenInStorage() async {
|
|
try {
|
|
final sharedPreferences = await _getPrefs();
|
|
if (sharedPreferences.getString('token') == null) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
static Future<String?> getTokenFromStorage() async {
|
|
final sharedPreferences = await _getPrefs();
|
|
return sharedPreferences.getString('token');
|
|
}
|
|
|
|
static Future<void> saveTokenInStorage(String token) async {
|
|
final sharedPreferences = await _getPrefs();
|
|
await sharedPreferences.setString('token', token);
|
|
}
|
|
|
|
static Future<void> removeTokenInStorage() async {
|
|
final sharedPreferences = await _getPrefs();
|
|
await sharedPreferences.remove('token');
|
|
}
|
|
}
|
|
|
|
abstract class SocketIdStorage {
|
|
static Future<bool> haveSocketIdInStorage() async {
|
|
try {
|
|
final sharedPreferences = await TokenStorage._getPrefs();
|
|
if (sharedPreferences.getString('socketId') == null) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
static Future<String?> getSocketIdFromStorage() async {
|
|
final sharedPreferences = await TokenStorage._getPrefs();
|
|
return sharedPreferences.getString('socketId');
|
|
}
|
|
|
|
static Future<void> saveSocketIdInStorage(String socketId) async {
|
|
final sharedPreferences = await TokenStorage._getPrefs();
|
|
await sharedPreferences.setString('socketId', socketId);
|
|
}
|
|
|
|
static Future<void> removeSocketIdInStorage() async {
|
|
final sharedPreferences = await TokenStorage._getPrefs();
|
|
await sharedPreferences.remove('socketId');
|
|
}
|
|
}
|