🐛 Bug fixes on config refactor
This commit is contained in:
@ -1,6 +1,13 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:surface/providers/widget.dart';
|
||||
|
||||
const kAtkStoreKey = 'nex_user_atk';
|
||||
const kRtkStoreKey = 'nex_user_rtk';
|
||||
|
||||
const kNetworkServerDefault = 'https://api.sn.solsynth.dev';
|
||||
const kNetworkServerStoreKey = 'app_server_url';
|
||||
|
||||
const Map<String, FilterQuality> kImageQualityLevel = {
|
||||
'settingsImageQualityLowest': FilterQuality.none,
|
||||
@ -12,6 +19,12 @@ const Map<String, FilterQuality> kImageQualityLevel = {
|
||||
class ConfigProvider {
|
||||
late final SharedPreferences prefs;
|
||||
|
||||
late final HomeWidgetProvider _home;
|
||||
|
||||
ConfigProvider(BuildContext context) {
|
||||
_home = context.read<HomeWidgetProvider>();
|
||||
}
|
||||
|
||||
Future<void> initialize() async {
|
||||
prefs = await SharedPreferences.getInstance();
|
||||
}
|
||||
@ -19,4 +32,12 @@ class ConfigProvider {
|
||||
FilterQuality get imageQuality {
|
||||
return kImageQualityLevel.values.elementAtOrNull(prefs.getInt('app_image_quality') ?? 3) ?? FilterQuality.high;
|
||||
}
|
||||
|
||||
String get serverUrl {
|
||||
return prefs.getString(kNetworkServerStoreKey) ?? kNetworkServerDefault;
|
||||
}
|
||||
set serverUrl(String url) {
|
||||
prefs.setString(kNetworkServerStoreKey, url);
|
||||
_home.saveWidgetData("nex_server_url", url);
|
||||
}
|
||||
}
|
||||
|
@ -11,15 +11,10 @@ import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:device_info_plus/device_info_plus.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:surface/providers/config.dart';
|
||||
import 'package:surface/providers/widget.dart';
|
||||
import 'package:synchronized/synchronized.dart';
|
||||
|
||||
const kAtkStoreKey = 'nex_user_atk';
|
||||
const kRtkStoreKey = 'nex_user_rtk';
|
||||
|
||||
const kNetworkServerDefault = 'https://api.sn.solsynth.dev';
|
||||
const kNetworkServerStoreKey = 'app_server_url';
|
||||
|
||||
const kNetworkServerDirectory = [
|
||||
('Solar Network', 'https://api.sn.solsynth.dev'),
|
||||
('Local', 'http://localhost:8001'),
|
||||
@ -29,6 +24,7 @@ class SnNetworkProvider {
|
||||
late final Dio client;
|
||||
|
||||
late final SharedPreferences _prefs;
|
||||
late final ConfigProvider _config;
|
||||
late final HomeWidgetProvider _home;
|
||||
|
||||
String? _userAgent;
|
||||
@ -66,11 +62,12 @@ class SnNetworkProvider {
|
||||
),
|
||||
);
|
||||
|
||||
SharedPreferences.getInstance().then((prefs) {
|
||||
_prefs = prefs;
|
||||
client.options.baseUrl = _prefs.getString(kNetworkServerStoreKey) ?? kNetworkServerDefault;
|
||||
_config = context.read<ConfigProvider>();
|
||||
_config.initialize().then((_) {
|
||||
_prefs = _config.prefs;
|
||||
client.options.baseUrl = _config.serverUrl;
|
||||
if (!context.mounted) return;
|
||||
_home.saveWidgetData("server_url", client.options.baseUrl);
|
||||
_home.saveWidgetData("nex_server_url", client.options.baseUrl);
|
||||
});
|
||||
}
|
||||
|
||||
@ -197,7 +194,7 @@ class SnNetworkProvider {
|
||||
}
|
||||
|
||||
void setBaseUrl(String url) {
|
||||
_config.serverUrl = url;
|
||||
client.options.baseUrl = url;
|
||||
_home.saveWidgetData("server_url", client.options.baseUrl);
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:path/path.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:surface/providers/config.dart';
|
||||
import 'package:surface/providers/sn_network.dart';
|
||||
import 'package:surface/providers/widget.dart';
|
||||
import 'package:surface/types/account.dart';
|
||||
@ -13,10 +15,12 @@ class UserProvider extends ChangeNotifier {
|
||||
|
||||
late final SnNetworkProvider _sn;
|
||||
late final HomeWidgetProvider _home;
|
||||
late final ConfigProvider _config;
|
||||
|
||||
UserProvider(BuildContext context) {
|
||||
_sn = context.read<SnNetworkProvider>();
|
||||
_home = context.read<HomeWidgetProvider>();
|
||||
_config = context.read<ConfigProvider>();
|
||||
}
|
||||
|
||||
Future<String?> get atk async {
|
||||
@ -25,8 +29,7 @@ class UserProvider extends ChangeNotifier {
|
||||
}
|
||||
|
||||
Future<void> initialize() async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
final value = prefs.getString(kAtkStoreKey);
|
||||
final value = _config.prefs.getString(kAtkStoreKey);
|
||||
isAuthorized = value != null;
|
||||
notifyListeners();
|
||||
refreshUser().then((value) {
|
||||
|
Reference in New Issue
Block a user