2021-05-10 14:23:38 +00:00
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
2022-04-22 06:44:20 +00:00
|
|
|
import 'package:lottie/lottie.dart';
|
2021-05-10 14:23:38 +00:00
|
|
|
import 'package:photos/core/event_bus.dart';
|
2022-04-22 06:44:20 +00:00
|
|
|
import 'package:photos/ente_theme_data.dart';
|
2021-05-10 14:23:38 +00:00
|
|
|
import 'package:photos/events/sync_status_update_event.dart';
|
2021-07-01 10:42:13 +00:00
|
|
|
import 'package:photos/services/local_sync_service.dart';
|
2021-05-12 18:58:48 +00:00
|
|
|
import 'package:photos/ui/backup_folder_selection_page.dart';
|
2021-05-29 17:01:59 +00:00
|
|
|
import 'package:photos/utils/navigation_util.dart';
|
2021-05-10 14:23:38 +00:00
|
|
|
|
2021-05-29 17:01:59 +00:00
|
|
|
class LoadingPhotosWidget extends StatefulWidget {
|
|
|
|
const LoadingPhotosWidget({Key key}) : super(key: key);
|
2021-05-10 14:23:38 +00:00
|
|
|
|
|
|
|
@override
|
2021-05-29 17:01:59 +00:00
|
|
|
_LoadingPhotosWidgetState createState() => _LoadingPhotosWidgetState();
|
2021-05-10 14:23:38 +00:00
|
|
|
}
|
|
|
|
|
2021-05-29 17:01:59 +00:00
|
|
|
class _LoadingPhotosWidgetState extends State<LoadingPhotosWidget> {
|
2021-05-10 14:23:38 +00:00
|
|
|
StreamSubscription<SyncStatusUpdate> _firstImportEvent;
|
2022-04-22 11:32:20 +00:00
|
|
|
// final int _currentPage = 0;
|
|
|
|
// final PageController _pageController = PageController(
|
|
|
|
// initialPage: 0,
|
|
|
|
// );
|
2021-05-10 14:23:38 +00:00
|
|
|
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
|
|
|
_firstImportEvent =
|
|
|
|
Bus.instance.on<SyncStatusUpdate>().listen((event) async {
|
|
|
|
if (mounted &&
|
|
|
|
event.status == SyncStatus.completed_first_gallery_import) {
|
2021-07-01 10:42:13 +00:00
|
|
|
if (LocalSyncService.instance.hasGrantedLimitedPermissions()) {
|
|
|
|
// Do nothing, let HomeWidget refresh
|
|
|
|
} else {
|
2021-07-11 18:05:07 +00:00
|
|
|
routeToPage(
|
|
|
|
context,
|
|
|
|
BackupFolderSelectionPage(
|
|
|
|
shouldSelectAll: true,
|
2022-06-03 12:10:14 +00:00
|
|
|
buttonText: "Start backup",
|
2021-07-11 18:05:07 +00:00
|
|
|
));
|
2021-07-01 10:42:13 +00:00
|
|
|
}
|
2021-05-10 14:23:38 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
void dispose() {
|
|
|
|
_firstImportEvent.cancel();
|
|
|
|
super.dispose();
|
|
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return Scaffold(
|
|
|
|
body: Center(
|
|
|
|
child: Column(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
children: [
|
2022-04-22 06:44:20 +00:00
|
|
|
SizedBox(
|
|
|
|
height: 56,
|
2021-05-10 15:43:20 +00:00
|
|
|
),
|
2022-04-22 06:44:20 +00:00
|
|
|
Lottie.asset('assets/loadingGalleryLottie.json'),
|
|
|
|
Text("Did you know?",
|
|
|
|
style: Theme.of(context).textTheme.headline6.copyWith(
|
|
|
|
fontFamily: "Inter",
|
|
|
|
color: Theme.of(context)
|
|
|
|
.colorScheme
|
|
|
|
.defaultTextColor
|
|
|
|
.withOpacity(0.4))),
|
2021-08-24 13:33:53 +00:00
|
|
|
SizedBox(
|
2022-04-22 06:44:20 +00:00
|
|
|
height: 16,
|
2021-05-10 14:23:38 +00:00
|
|
|
),
|
2022-04-22 06:44:20 +00:00
|
|
|
Text(
|
|
|
|
"ente is amazing",
|
|
|
|
style: Theme.of(context).textTheme.headline6.copyWith(
|
|
|
|
fontFamily: "Inter",
|
|
|
|
color: Theme.of(context).colorScheme.defaultTextColor),
|
|
|
|
)
|
2021-05-10 14:23:38 +00:00
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
2021-05-10 15:43:20 +00:00
|
|
|
|
|
|
|
Widget _getMessage(String text) {
|
|
|
|
return Padding(
|
|
|
|
padding: const EdgeInsets.only(left: 24, right: 24),
|
|
|
|
child: Text(
|
|
|
|
text,
|
|
|
|
textAlign: TextAlign.center,
|
|
|
|
style: TextStyle(
|
2021-05-29 16:17:21 +00:00
|
|
|
color: Colors.white.withOpacity(0.7),
|
2021-05-10 15:43:20 +00:00
|
|
|
height: 1.5,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
2021-05-10 14:23:38 +00:00
|
|
|
}
|