import 'package:flutter/painting.dart'; import 'package:intl/intl.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../global.dart' as global; import '../business_logic/auth/oauth.dart' as oauth; enum Settings { instanceUrl, username, } Future saveInstanceUrl(String url) async { final prefs = await SharedPreferences.getInstance(); return await prefs.setString("instance-url", url); } Future loadInstanceUrl() async { final prefs = await SharedPreferences.getInstance(); String? possibleReturn = prefs.getString("instance-url"); if (possibleReturn == null) { return "example.com"; } else { return possibleReturn; } } Future saveUsername(String username) async { final prefs = await SharedPreferences.getInstance(); return await prefs.setString("username", username); } Future saveAuthCode(String code) async { final prefs = await SharedPreferences.getInstance(); return await prefs.setString("authcode", code); } Future loadAuthCode() async { final prefs = await SharedPreferences.getInstance(); String? code = prefs.getString("authcode"); if (code == null) { return ""; } return code; } Future saveLocale(String locale) async { final prefs = await SharedPreferences.getInstance(); return await prefs.setString("active-locale", locale); } Future loadLocale() async { final prefs = await SharedPreferences.getInstance(); String? locale = prefs.getString("active-locale"); if (locale == null) { if (global.availableLocales.contains(Locale(Intl.systemLocale))) { return Locale(Intl.systemLocale); } return const Locale("en"); } return Locale(locale); } Future saveApp(oauth.App app) async { final prefs = await SharedPreferences.getInstance(); prefs.setString("client-secret", app.clientSecret); prefs.setString("client-id", app.clientId); } Future loadClientSecret() async { final prefs = await SharedPreferences.getInstance(); final secret = prefs.getString("client-secret"); if (secret == null) { return ""; } else { return secret; } } Future loadClientId() async { final prefs = await SharedPreferences.getInstance(); final id = prefs.getString("client-id"); if (id == null) { return ""; } else { return id; } } Future saveToken(String token) async { final prefs = await SharedPreferences.getInstance(); return await prefs.setString("access-token", token); } Future loadToken() async { final prefs = await SharedPreferences.getInstance(); final id = prefs.getString("access-token"); if (id == null) { return ""; } else { return id; } } Future saveBatchSize(int size) async { final prefs = await SharedPreferences.getInstance(); return await prefs.setInt("post-batch-size", size); } Future loadBatchSize() async { final prefs = await SharedPreferences.getInstance(); return prefs.getInt("post-batch-size") ?? 5; }