You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.7 KiB

import 'package:dde_gesture_manager/builder/provider_annotation.dart';
import 'package:dde_gesture_manager/constants/sp_keys.dart';
import 'package:dde_gesture_manager/extensions.dart';
import 'package:dde_gesture_manager/utils/helper.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
enum BrightnessMode {
system,
light,
dark,
}
@ProviderModel()
class Configs {
@ProviderModelProp()
BrightnessMode? brightnessMode;
@ProviderModelProp()
String? get appliedSchemeId => _appliedSchemeId;
set appliedSchemeId(String? schemeId) {
_appliedSchemeId = schemeId;
if (schemeId.notNull)
H().sp.updateString(SPKeys.appliedSchemeId, schemeId!);
else
H().sp.remove(SPKeys.appliedSchemeId);
}
String? _appliedSchemeId;
@ProviderModelProp()
String? get accessToken => _accessToken;
set accessToken(String? token) {
_accessToken = token;
if (token.notNull)
H().sp.updateString(SPKeys.accessToken, token!);
else
H().sp.remove(SPKeys.accessToken);
}
String? _accessToken;
@ProviderModelProp()
String? get email => _email;
set email(String? emailAddress) {
_email = emailAddress;
if (emailAddress.notNull) {
H().sp.updateString(SPKeys.loginEmail, emailAddress!);
Sentry.configureScope(
(scope) => scope.user = SentryUser(email: emailAddress),
);
} else
H().sp.remove(SPKeys.loginEmail);
}
String? _email;
Configs() {
this.brightnessMode =
BrightnessMode.values[H().sp.getInt(SPKeys.brightnessMode)?.clamp(0, BrightnessMode.values.length - 1) ?? 0];
this.appliedSchemeId = H().sp.getString(SPKeys.appliedSchemeId);
this.accessToken = H().sp.getString(SPKeys.accessToken);
this.email = H().sp.getString(SPKeys.loginEmail);
}
}