[mob] ServiceLocator for UserRemoteFlagService
This commit is contained in:
@@ -47,7 +47,6 @@ import 'package:photos/services/remote_sync_service.dart';
|
||||
import 'package:photos/services/search_service.dart';
|
||||
import 'package:photos/services/sync_service.dart';
|
||||
import 'package:photos/services/trash_sync_service.dart';
|
||||
import 'package:photos/services/user_remote_flag_service.dart';
|
||||
import 'package:photos/services/user_service.dart';
|
||||
import 'package:photos/ui/tools/app_lock.dart';
|
||||
import 'package:photos/ui/tools/lock_screen.dart';
|
||||
@@ -245,10 +244,6 @@ Future<void> _init(bool isBackground, {String via = ''}) async {
|
||||
await UserService.instance.init();
|
||||
_logger.info("UserService init done $tlog");
|
||||
|
||||
_logger.info("UserRemoteFlagService init $tlog");
|
||||
await UserRemoteFlagService.instance.init();
|
||||
_logger.info("UserRemoteFlagService init done $tlog");
|
||||
|
||||
_logger.info("BillingService init $tlog");
|
||||
BillingService.instance.init();
|
||||
_logger.info("BillingService init done $tlog");
|
||||
|
||||
@@ -8,6 +8,7 @@ import "package:photos/services/entity_service.dart";
|
||||
import "package:photos/services/location_service.dart";
|
||||
import "package:photos/services/storage_bonus_service.dart";
|
||||
import "package:photos/services/update_service.dart";
|
||||
import "package:photos/services/user_remote_flag_service.dart";
|
||||
import "package:photos/utils/local_settings.dart";
|
||||
import "package:shared_preferences/shared_preferences.dart";
|
||||
|
||||
@@ -85,3 +86,12 @@ LocationService get locationService {
|
||||
_locationService ??= LocationService(ServiceLocator.instance.prefs);
|
||||
return _locationService!;
|
||||
}
|
||||
|
||||
UserRemoteFlagService? _userRemoteFlagService;
|
||||
UserRemoteFlagService get userRemoteFlagService {
|
||||
_userRemoteFlagService ??= UserRemoteFlagService(
|
||||
ServiceLocator.instance.enteDio,
|
||||
ServiceLocator.instance.prefs,
|
||||
);
|
||||
return _userRemoteFlagService!;
|
||||
}
|
||||
|
||||
@@ -2,23 +2,19 @@ import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
import "package:dio/dio.dart";
|
||||
import "package:flutter/foundation.dart";
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
import 'package:photos/core/network/network.dart';
|
||||
import 'package:photos/events/notification_event.dart';
|
||||
import "package:photos/service_locator.dart";
|
||||
import 'package:photos/services/user_service.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class UserRemoteFlagService {
|
||||
final _enteDio = NetworkClient.instance.enteDio;
|
||||
final Dio _enteDio;
|
||||
final _logger = Logger((UserRemoteFlagService).toString());
|
||||
late SharedPreferences _prefs;
|
||||
|
||||
UserRemoteFlagService._privateConstructor();
|
||||
|
||||
static final UserRemoteFlagService instance =
|
||||
UserRemoteFlagService._privateConstructor();
|
||||
final SharedPreferences _prefs;
|
||||
|
||||
static const String recoveryVerificationFlag = "recoveryKeyVerified";
|
||||
static const String mapEnabled = "mapEnabled";
|
||||
@@ -26,8 +22,8 @@ class UserRemoteFlagService {
|
||||
static const String needRecoveryKeyVerification =
|
||||
"needRecoveryKeyVerification";
|
||||
|
||||
Future<void> init() async {
|
||||
_prefs = await SharedPreferences.getInstance();
|
||||
UserRemoteFlagService(this._enteDio, this._prefs) {
|
||||
debugPrint("UserRemoteFlagService constructor");
|
||||
}
|
||||
|
||||
bool shouldShowRecoveryVerification() {
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:bip39/bip39.dart' as bip39;
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -8,8 +6,8 @@ import 'package:photos/core/event_bus.dart';
|
||||
import 'package:photos/ente_theme_data.dart';
|
||||
import 'package:photos/events/notification_event.dart';
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import "package:photos/service_locator.dart";
|
||||
import 'package:photos/services/local_authentication_service.dart';
|
||||
import 'package:photos/services/user_remote_flag_service.dart';
|
||||
import 'package:photos/services/user_service.dart';
|
||||
import "package:photos/theme/ente_theme.dart";
|
||||
import 'package:photos/ui/account/recovery_key_page.dart';
|
||||
@@ -42,7 +40,7 @@ class _VerifyRecoveryPageState extends State<VerifyRecoveryPage> {
|
||||
final String recoveryKeyWords = bip39.entropyToMnemonic(recoveryKey);
|
||||
if (inputKey == recoveryKey || inputKey == recoveryKeyWords) {
|
||||
try {
|
||||
await UserRemoteFlagService.instance.markRecoveryVerificationAsDone();
|
||||
await userRemoteFlagService.markRecoveryVerificationAsDone();
|
||||
} catch (e) {
|
||||
await dialog.hide();
|
||||
if (e is DioError && e.type == DioErrorType.other) {
|
||||
|
||||
@@ -8,8 +8,8 @@ import 'package:photos/ente_theme_data.dart';
|
||||
import 'package:photos/events/notification_event.dart';
|
||||
import 'package:photos/events/sync_status_update_event.dart';
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import "package:photos/service_locator.dart";
|
||||
import 'package:photos/services/sync_service.dart';
|
||||
import 'package:photos/services/user_remote_flag_service.dart';
|
||||
import "package:photos/theme/ente_theme.dart";
|
||||
import 'package:photos/theme/text_style.dart';
|
||||
import 'package:photos/ui/account/verify_recovery_page.dart';
|
||||
@@ -112,7 +112,7 @@ class _StatusBarWidgetState extends State<StatusBarWidget> {
|
||||
_showErrorBanner
|
||||
? HeaderErrorWidget(error: _syncError)
|
||||
: const SizedBox.shrink(),
|
||||
UserRemoteFlagService.instance.shouldShowRecoveryVerification() &&
|
||||
userRemoteFlagService.shouldShowRecoveryVerification() &&
|
||||
!_showErrorBanner
|
||||
? Padding(
|
||||
padding:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import "package:flutter/cupertino.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import 'package:photos/models/button_result.dart';
|
||||
import "package:photos/service_locator.dart";
|
||||
import "package:photos/services/user_remote_flag_service.dart";
|
||||
import "package:photos/ui/components/buttons/button_widget.dart";
|
||||
import "package:photos/ui/components/dialog_widget.dart";
|
||||
@@ -9,7 +10,7 @@ import "package:photos/utils/toast_util.dart";
|
||||
|
||||
Future<bool> requestForMapEnable(BuildContext context) async {
|
||||
const String flagName = UserRemoteFlagService.mapEnabled;
|
||||
if (UserRemoteFlagService.instance.getCachedBoolValue(flagName)) {
|
||||
if (userRemoteFlagService.getCachedBoolValue(flagName)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -25,7 +26,7 @@ Future<bool> requestForMapEnable(BuildContext context) async {
|
||||
labelText: S.of(context).enableMaps,
|
||||
isInAlert: true,
|
||||
onTap: () async {
|
||||
await UserRemoteFlagService.instance.setBoolValue(
|
||||
await userRemoteFlagService.setBoolValue(
|
||||
flagName,
|
||||
true,
|
||||
);
|
||||
@@ -51,6 +52,5 @@ Future<bool> requestForMapEnable(BuildContext context) async {
|
||||
|
||||
//For debugging.
|
||||
void disableMap() {
|
||||
UserRemoteFlagService.instance
|
||||
.setBoolValue(UserRemoteFlagService.mapEnabled, false);
|
||||
userRemoteFlagService.setBoolValue(UserRemoteFlagService.mapEnabled, false);
|
||||
}
|
||||
|
||||
@@ -173,19 +173,17 @@ class _AdvancedSettingsScreenState extends State<AdvancedSettingsScreen> {
|
||||
singleBorderRadius: 8,
|
||||
alignCaptionedTextToLeft: true,
|
||||
trailingWidget: ToggleSwitchWidget(
|
||||
value: () => UserRemoteFlagService.instance
|
||||
.getCachedBoolValue(
|
||||
value: () =>
|
||||
userRemoteFlagService.getCachedBoolValue(
|
||||
UserRemoteFlagService.mapEnabled,
|
||||
),
|
||||
onChanged: () async {
|
||||
final isEnabled = UserRemoteFlagService
|
||||
.instance
|
||||
.getCachedBoolValue(
|
||||
final isEnabled =
|
||||
userRemoteFlagService.getCachedBoolValue(
|
||||
UserRemoteFlagService.mapEnabled,
|
||||
);
|
||||
|
||||
await UserRemoteFlagService.instance
|
||||
.setBoolValue(
|
||||
await userRemoteFlagService.setBoolValue(
|
||||
UserRemoteFlagService.mapEnabled,
|
||||
!isEnabled,
|
||||
);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import "package:flutter/material.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import "package:photos/service_locator.dart";
|
||||
import "package:photos/services/user_remote_flag_service.dart";
|
||||
import "package:photos/theme/ente_theme.dart";
|
||||
import "package:photos/ui/common/web_page.dart";
|
||||
@@ -140,7 +141,7 @@ class _EnableMachineLearningConsentState
|
||||
|
||||
Future<void> enableMlConsent(BuildContext context) async {
|
||||
try {
|
||||
await UserRemoteFlagService.instance.setBoolValue(
|
||||
await userRemoteFlagService.setBoolValue(
|
||||
UserRemoteFlagService.mlEnabled,
|
||||
true,
|
||||
);
|
||||
|
||||
@@ -210,7 +210,7 @@ class _MachineLearningSettingsPageState
|
||||
}
|
||||
|
||||
Future<void> toggleIndexingState() async {
|
||||
final hasGivenConsent = UserRemoteFlagService.instance
|
||||
final hasGivenConsent = userRemoteFlagService
|
||||
.getCachedBoolValue(UserRemoteFlagService.mlEnabled);
|
||||
if (!localSettings.isMLIndexingEnabled && !hasGivenConsent) {
|
||||
final result = await Navigator.push(
|
||||
@@ -232,8 +232,8 @@ class _MachineLearningSettingsPageState
|
||||
unawaited(MLService.instance.runAllML(force: true));
|
||||
} else {
|
||||
MLService.instance.pauseIndexingAndClustering();
|
||||
await UserRemoteFlagService.instance
|
||||
.setBoolValue(UserRemoteFlagService.mlEnabled, false);
|
||||
await userRemoteFlagService.setBoolValue(
|
||||
UserRemoteFlagService.mlEnabled, false);
|
||||
}
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
|
||||
@@ -183,7 +183,7 @@ class _InfoMapState extends State<InfoMap> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_hasEnabledMap = UserRemoteFlagService.instance
|
||||
_hasEnabledMap = userRemoteFlagService
|
||||
.getCachedBoolValue(UserRemoteFlagService.mapEnabled);
|
||||
_fileLat = widget.file.location!.latitude!;
|
||||
_fileLng = widget.file.location!.longitude!;
|
||||
|
||||
Reference in New Issue
Block a user