chore: bootstrap flutter reader app skeleton

This commit is contained in:
2026-03-23 15:57:38 +07:00
parent f5e7813548
commit 4f202936fa
150 changed files with 6278 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
import 'package:shared_preferences/shared_preferences.dart';
class LocalStore {
static const _kFontSize = 'reader_font_size';
static const _kLineHeight = 'reader_line_height';
static const _kLetterSpacing = 'reader_letter_spacing';
static const _kFontFamily = 'reader_font_family';
Future<void> saveReadingSettings({
required double fontSize,
required double lineHeight,
required double letterSpacing,
required String fontFamily,
}) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setDouble(_kFontSize, fontSize);
await prefs.setDouble(_kLineHeight, lineHeight);
await prefs.setDouble(_kLetterSpacing, letterSpacing);
await prefs.setString(_kFontFamily, fontFamily);
}
Future<Map<String, dynamic>> getReadingSettings() async {
final prefs = await SharedPreferences.getInstance();
return {
'fontSize': prefs.getDouble(_kFontSize) ?? 18,
'lineHeight': prefs.getDouble(_kLineHeight) ?? 1.8,
'letterSpacing': prefs.getDouble(_kLetterSpacing) ?? 0,
'fontFamily': prefs.getString(_kFontFamily) ?? 'serif',
};
}
}
+22
View File
@@ -0,0 +1,22 @@
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
class SecureStore {
SecureStore() : _storage = const FlutterSecureStorage();
static const _kAccessToken = 'access_token';
static const _kRefreshToken = 'refresh_token';
final FlutterSecureStorage _storage;
Future<void> setAccessToken(String token) =>
_storage.write(key: _kAccessToken, value: token);
Future<String?> getAccessToken() => _storage.read(key: _kAccessToken);
Future<void> setRefreshToken(String token) =>
_storage.write(key: _kRefreshToken, value: token);
Future<String?> getRefreshToken() => _storage.read(key: _kRefreshToken);
Future<void> clear() => _storage.deleteAll();
}