Move services to a separate package
This commit is contained in:
parent
5a25676dc4
commit
7f16f88a8f
20 changed files with 50 additions and 52 deletions
|
@ -18,7 +18,7 @@ import 'package:photos/models/file.dart';
|
|||
|
||||
import 'package:photos/core/configuration.dart';
|
||||
|
||||
class PhotoSyncManager {
|
||||
class FileSyncManager {
|
||||
final _logger = Logger("PhotoSyncManager");
|
||||
final _dio = Dio();
|
||||
final _db = FilesDB.instance;
|
||||
|
@ -34,14 +34,13 @@ class PhotoSyncManager {
|
|||
static final _dbUpdationTimeKey = "db_updation_time";
|
||||
static final _diffLimit = 100;
|
||||
|
||||
PhotoSyncManager._privateConstructor() {
|
||||
FileSyncManager._privateConstructor() {
|
||||
Bus.instance.on<UserAuthenticatedEvent>().listen((event) {
|
||||
sync();
|
||||
});
|
||||
}
|
||||
|
||||
static final PhotoSyncManager instance =
|
||||
PhotoSyncManager._privateConstructor();
|
||||
static final FileSyncManager instance = FileSyncManager._privateConstructor();
|
||||
|
||||
Future<void> init() async {
|
||||
_prefs = await SharedPreferences.getInstance();
|
|
@ -5,10 +5,10 @@ import 'package:flutter/material.dart';
|
|||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:photos/core/constants.dart';
|
||||
import 'package:photos/core/configuration.dart';
|
||||
import 'package:photos/favorite_files_repository.dart';
|
||||
import 'package:photos/folder_service.dart';
|
||||
import 'package:photos/memories_service.dart';
|
||||
import 'package:photos/photo_sync_manager.dart';
|
||||
import 'package:photos/services/favorites_service.dart';
|
||||
import 'package:photos/services/folder_service.dart';
|
||||
import 'package:photos/services/memories_service.dart';
|
||||
import 'package:photos/file_sync_manager.dart';
|
||||
import 'package:photos/ui/home_widget.dart';
|
||||
import 'package:sentry/sentry.dart';
|
||||
import 'package:super_logging/super_logging.dart';
|
||||
|
@ -31,9 +31,9 @@ void _main() async {
|
|||
areLogsEnabled: false,
|
||||
);
|
||||
await Configuration.instance.init();
|
||||
await PhotoSyncManager.instance.init();
|
||||
await FileSyncManager.instance.init();
|
||||
await MemoriesService.instance.init();
|
||||
await FavoriteFilesRepository.instance.init();
|
||||
await FavoritesService.instance.init();
|
||||
_sync();
|
||||
|
||||
final SentryClient sentry = new SentryClient(dsn: SENTRY_DSN);
|
||||
|
@ -54,7 +54,7 @@ void _sync() async {
|
|||
FolderSharingService.instance.sync().catchError((e) {
|
||||
_logger.warning(e);
|
||||
});
|
||||
PhotoSyncManager.instance.sync().catchError((e) {
|
||||
FileSyncManager.instance.sync().catchError((e) {
|
||||
_logger.warning(e);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import 'package:photos/favorite_files_repository.dart';
|
||||
import 'package:photos/services/favorites_service.dart';
|
||||
import 'package:photos/models/filters/gallery_items_filter.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
|
||||
class FavoriteItemsFilter implements GalleryItemsFilter {
|
||||
@override
|
||||
bool shouldInclude(File file) {
|
||||
return FavoriteFilesRepository.instance.isLiked(file);
|
||||
return FavoritesService.instance.isLiked(file);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,13 +7,13 @@ import 'package:photos/models/face.dart';
|
|||
import 'package:photos/models/file.dart';
|
||||
import 'package:photos/utils/file_name_util.dart';
|
||||
|
||||
class FaceSearchManager {
|
||||
class FaceSearchService {
|
||||
final _logger = Logger("FaceSearchManager");
|
||||
final _dio = Dio();
|
||||
|
||||
FaceSearchManager._privateConstructor();
|
||||
static final FaceSearchManager instance =
|
||||
FaceSearchManager._privateConstructor();
|
||||
FaceSearchService._privateConstructor();
|
||||
static final FaceSearchService instance =
|
||||
FaceSearchService._privateConstructor();
|
||||
|
||||
Future<List<Face>> getFaces() {
|
||||
return _dio
|
|
@ -3,11 +3,11 @@ import 'package:photos/events/local_photos_updated_event.dart';
|
|||
import 'package:photos/models/file.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class FavoriteFilesRepository {
|
||||
class FavoritesService {
|
||||
static final _favoritePhotoIdsKey = "favorite_photo_ids";
|
||||
FavoriteFilesRepository._privateConstructor();
|
||||
static FavoriteFilesRepository instance =
|
||||
FavoriteFilesRepository._privateConstructor();
|
||||
FavoritesService._privateConstructor();
|
||||
static FavoritesService instance =
|
||||
FavoritesService._privateConstructor();
|
||||
|
||||
SharedPreferences _preferences;
|
||||
|
|
@ -10,7 +10,7 @@ import 'package:photos/events/user_authenticated_event.dart';
|
|||
import 'package:photos/models/folder.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
|
||||
import 'core/event_bus.dart';
|
||||
import '../core/event_bus.dart';
|
||||
|
||||
class FolderSharingService {
|
||||
final _logger = Logger("FolderSharingService");
|
|
@ -13,14 +13,13 @@ import 'package:photos/ui/passphrase_reentry_page.dart';
|
|||
import 'package:photos/utils/dialog_util.dart';
|
||||
import 'package:photos/utils/toast_util.dart';
|
||||
|
||||
class UserAuthenticator {
|
||||
class UserService {
|
||||
final _dio = Dio();
|
||||
final _logger = Logger("UserAuthenticator");
|
||||
|
||||
UserAuthenticator._privateConstructor();
|
||||
UserService._privateConstructor();
|
||||
|
||||
static final UserAuthenticator instance =
|
||||
UserAuthenticator._privateConstructor();
|
||||
static final UserService instance = UserService._privateConstructor();
|
||||
|
||||
Future<void> getOtt(BuildContext context, String email) async {
|
||||
final dialog = createProgressDialog(context, "Please wait...");
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:like_button/like_button.dart';
|
||||
import 'package:photos/favorite_files_repository.dart';
|
||||
import 'package:photos/services/favorites_service.dart';
|
||||
import 'package:photos/file_repository.dart';
|
||||
import 'package:photos/models/file_type.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
|
@ -178,9 +178,9 @@ class _DetailPageState extends State<DetailPage> {
|
|||
Widget _getFavoriteButton() {
|
||||
final file = _files[_selectedIndex];
|
||||
return LikeButton(
|
||||
isLiked: FavoriteFilesRepository.instance.isLiked(file),
|
||||
isLiked: FavoritesService.instance.isLiked(file),
|
||||
onTap: (oldValue) {
|
||||
return FavoriteFilesRepository.instance.setLiked(file, !oldValue);
|
||||
return FavoritesService.instance.setLiked(file, !oldValue);
|
||||
},
|
||||
likeBuilder: (isLiked) {
|
||||
return Icon(
|
||||
|
|
|
@ -5,7 +5,7 @@ import 'package:flutter/widgets.dart';
|
|||
import 'package:photos/core/event_bus.dart';
|
||||
import 'package:photos/db/files_db.dart';
|
||||
import 'package:photos/events/local_photos_updated_event.dart';
|
||||
import 'package:photos/favorite_files_repository.dart';
|
||||
import 'package:photos/services/favorites_service.dart';
|
||||
import 'package:photos/models/device_folder.dart';
|
||||
import 'package:photos/models/filters/favorite_items_filter.dart';
|
||||
import 'package:photos/models/filters/folder_name_filter.dart';
|
||||
|
@ -85,9 +85,9 @@ class _DeviceFolderGalleryWidgetState extends State<DeviceFolderGalleryWidget> {
|
|||
return second.thumbnail.creationTime
|
||||
.compareTo(first.thumbnail.creationTime);
|
||||
});
|
||||
if (FavoriteFilesRepository.instance.hasFavorites()) {
|
||||
if (FavoritesService.instance.hasFavorites()) {
|
||||
final file = await FilesDB.instance.getLatestFileAmongGeneratedIDs(
|
||||
FavoriteFilesRepository.instance.getLiked().toList());
|
||||
FavoritesService.instance.getLiked().toList());
|
||||
folders.insert(0,
|
||||
DeviceFolder("Favorites", "/Favorites", file, FavoriteItemsFilter()));
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ import 'package:flutter/cupertino.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:photos/core/configuration.dart';
|
||||
import 'package:photos/user_authenticator.dart';
|
||||
import 'package:photos/services/user_service.dart';
|
||||
|
||||
class EmailEntryPage extends StatefulWidget {
|
||||
EmailEntryPage({Key key}) : super(key: key);
|
||||
|
@ -54,7 +54,7 @@ class _EmailEntryPageState extends State<EmailEntryPage> {
|
|||
onPressed: () {
|
||||
final email = _emailController.text;
|
||||
Configuration.instance.setEmail(email);
|
||||
UserAuthenticator.instance.getOtt(context, email);
|
||||
UserService.instance.getOtt(context, email);
|
||||
},
|
||||
padding: const EdgeInsets.fromLTRB(8, 12, 8, 12),
|
||||
child: Text("Sign In"),
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:photos/face_search_manager.dart';
|
||||
import 'package:photos/services/face_search_service.dart';
|
||||
import 'package:photos/models/face.dart';
|
||||
import 'package:photos/models/selected_files.dart';
|
||||
import 'package:photos/ui/gallery.dart';
|
||||
import 'package:photos/ui/gallery_app_bar_widget.dart';
|
||||
|
||||
class FaceSearchResultsPage extends StatelessWidget {
|
||||
final FaceSearchManager _faceSearchManager = FaceSearchManager.instance;
|
||||
final FaceSearchService _faceSearchManager = FaceSearchService.instance;
|
||||
final Face face;
|
||||
final selectedFiles = SelectedFiles();
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ import 'package:photos/models/filters/important_items_filter.dart';
|
|||
import 'package:photos/models/file.dart';
|
||||
import 'package:photos/file_repository.dart';
|
||||
import 'package:photos/models/selected_files.dart';
|
||||
import 'package:photos/photo_sync_manager.dart';
|
||||
import 'package:photos/file_sync_manager.dart';
|
||||
import 'package:photos/ui/device_folders_gallery_widget.dart';
|
||||
import 'package:photos/ui/gallery.dart';
|
||||
import 'package:photos/ui/gallery_app_bar_widget.dart';
|
||||
|
@ -20,7 +20,7 @@ import 'package:photos/ui/loading_widget.dart';
|
|||
import 'package:photos/ui/memories_widget.dart';
|
||||
import 'package:photos/ui/remote_folder_gallery_widget.dart';
|
||||
import 'package:photos/ui/search_page.dart';
|
||||
import 'package:photos/user_authenticator.dart';
|
||||
import 'package:photos/services/user_service.dart';
|
||||
import 'package:photos/utils/logging_util.dart';
|
||||
import 'package:shake/shake.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
@ -76,7 +76,7 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
bottomNavigationBar: _buildBottomNavigationBar(),
|
||||
body: IndexedStack(
|
||||
children: <Widget>[
|
||||
PhotoSyncManager.instance.hasScannedDisk()
|
||||
FileSyncManager.instance.hasScannedDisk()
|
||||
? _getMainGalleryWidget()
|
||||
: LoadingPhotosWidget(),
|
||||
_deviceFolderGalleryWidget,
|
||||
|
@ -140,7 +140,7 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
}
|
||||
final ott = Uri.parse(link).queryParameters["ott"];
|
||||
_logger.info("Ott: " + ott);
|
||||
UserAuthenticator.instance.getCredentials(context, ott);
|
||||
UserService.instance.getCredentials(context, ott);
|
||||
}
|
||||
|
||||
Widget _getMainGalleryWidget() {
|
||||
|
@ -155,7 +155,7 @@ class _HomeWidgetState extends State<HomeWidget> {
|
|||
return _getFilteredPhotos(FileRepository.instance.files);
|
||||
},
|
||||
reloadEvent: Bus.instance.on<LocalPhotosUpdatedEvent>(),
|
||||
onRefresh: PhotoSyncManager.instance.sync,
|
||||
onRefresh: FileSyncManager.instance.sync,
|
||||
tagPrefix: "home_gallery",
|
||||
selectedFiles: _selectedFiles,
|
||||
headerWidget: _memoriesWidget,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:photos/memories_service.dart';
|
||||
import 'package:photos/services/memories_service.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
import 'package:photos/models/file_type.dart';
|
||||
import 'package:photos/models/memory.dart';
|
||||
|
|
|
@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/widgets.dart';
|
||||
import 'package:photos/core/configuration.dart';
|
||||
import 'package:photos/ui/email_entry_page.dart';
|
||||
import 'package:photos/user_authenticator.dart';
|
||||
import 'package:photos/services/user_service.dart';
|
||||
|
||||
class OTTVerificationPage extends StatefulWidget {
|
||||
OTTVerificationPage({Key key}) : super(key: key);
|
||||
|
@ -84,7 +84,7 @@ class _OTTVerificationPageState extends State<OTTVerificationPage> {
|
|||
_verificationCodeController.text.isEmpty
|
||||
? null
|
||||
: () {
|
||||
UserAuthenticator.instance.getCredentials(
|
||||
UserService.instance.getCredentials(
|
||||
context, _verificationCodeController.text);
|
||||
},
|
||||
padding: const EdgeInsets.fromLTRB(8, 12, 8, 12),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:photos/user_authenticator.dart';
|
||||
import 'package:photos/services/user_service.dart';
|
||||
import 'package:photos/utils/dialog_util.dart';
|
||||
|
||||
class PassphraseEntryPage extends StatefulWidget {
|
||||
|
@ -142,7 +142,7 @@ class _PassphraseEntryPageState extends State<PassphraseEntryPage> {
|
|||
child: Text("Confirm"),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
UserAuthenticator.instance
|
||||
UserService.instance
|
||||
.setupKey(context, _passphraseController1.text);
|
||||
},
|
||||
),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:photos/db/files_db.dart';
|
||||
import 'package:photos/folder_service.dart';
|
||||
import 'package:photos/services/folder_service.dart';
|
||||
import 'package:photos/models/folder.dart';
|
||||
import 'package:photos/models/selected_files.dart';
|
||||
import 'package:photos/ui/gallery.dart';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:photos/face_search_manager.dart';
|
||||
import 'package:photos/services/face_search_service.dart';
|
||||
import 'package:photos/models/face.dart';
|
||||
import 'package:photos/ui/circular_network_image_widget.dart';
|
||||
import 'package:photos/ui/face_search_results_page.dart';
|
||||
|
@ -12,7 +12,7 @@ class SearchPage extends StatefulWidget {
|
|||
}
|
||||
|
||||
class _SearchPageState extends State<SearchPage> {
|
||||
final FaceSearchManager _faceSearchManager = FaceSearchManager.instance;
|
||||
final FaceSearchService _faceSearchManager = FaceSearchService.instance;
|
||||
String _searchString = "";
|
||||
|
||||
@override
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:photos/folder_service.dart';
|
||||
import 'package:photos/services/folder_service.dart';
|
||||
import 'package:photos/models/folder.dart';
|
||||
import 'package:photos/ui/loading_widget.dart';
|
||||
import 'package:photos/utils/dialog_util.dart';
|
||||
|
|
|
@ -4,7 +4,7 @@ import 'dart:developer';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
import 'package:photos/events/photo_upload_event.dart';
|
||||
import 'package:photos/photo_sync_manager.dart';
|
||||
import 'package:photos/file_sync_manager.dart';
|
||||
import 'package:pull_to_refresh/pull_to_refresh.dart';
|
||||
|
||||
class SyncIndicator extends StatefulWidget {
|
||||
|
@ -67,7 +67,7 @@ class _SyncIndicatorState extends State<SyncIndicator> {
|
|||
child: Text("YES"),
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
PhotoSyncManager.instance.stopSync();
|
||||
FileSyncManager.instance.stopSync();
|
||||
_completeText = "Sync stopped.";
|
||||
setState(() {});
|
||||
widget.refreshController.refreshCompleted();
|
||||
|
|
Loading…
Add table
Reference in a new issue