2021-07-28 18:06:30 +00:00
|
|
|
import 'dart:async';
|
2021-07-28 15:29:21 +00:00
|
|
|
|
2021-07-28 14:08:27 +00:00
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
2021-07-28 18:06:30 +00:00
|
|
|
import 'package:photos/core/event_bus.dart';
|
2021-09-15 20:56:05 +00:00
|
|
|
import 'package:photos/events/user_details_changed_event.dart';
|
2021-07-28 14:08:27 +00:00
|
|
|
import 'package:photos/models/user_details.dart';
|
|
|
|
import 'package:photos/services/user_service.dart';
|
|
|
|
import 'package:photos/ui/loading_widget.dart';
|
2022-04-06 18:34:56 +00:00
|
|
|
import 'package:photos/ui/settings/usage_details_widget.dart';
|
2021-07-28 14:08:27 +00:00
|
|
|
|
|
|
|
class DetailsSectionWidget extends StatefulWidget {
|
|
|
|
DetailsSectionWidget({Key key}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
|
|
_DetailsSectionWidgetState createState() => _DetailsSectionWidgetState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _DetailsSectionWidgetState extends State<DetailsSectionWidget> {
|
|
|
|
UserDetails _userDetails;
|
2021-09-15 20:56:05 +00:00
|
|
|
StreamSubscription<UserDetailsChangedEvent> _userDetailsChangedEvent;
|
2021-07-28 14:08:27 +00:00
|
|
|
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
2021-07-28 18:06:30 +00:00
|
|
|
_fetchUserDetails();
|
2022-03-05 20:52:00 +00:00
|
|
|
_userDetailsChangedEvent =
|
|
|
|
Bus.instance.on<UserDetailsChangedEvent>().listen((event) {
|
2021-07-28 18:06:30 +00:00
|
|
|
_fetchUserDetails();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
void _fetchUserDetails() {
|
2021-07-28 14:08:27 +00:00
|
|
|
UserService.instance.getUserDetails().then((details) {
|
|
|
|
setState(() {
|
|
|
|
_userDetails = details;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-07-28 18:06:30 +00:00
|
|
|
@override
|
|
|
|
void dispose() {
|
2021-09-15 20:56:05 +00:00
|
|
|
_userDetailsChangedEvent.cancel();
|
2021-07-28 18:06:30 +00:00
|
|
|
super.dispose();
|
|
|
|
}
|
|
|
|
|
2021-07-28 14:08:27 +00:00
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
2021-07-28 14:35:27 +00:00
|
|
|
return SizedBox(
|
2022-04-06 18:34:56 +00:00
|
|
|
height: 196,
|
2021-07-28 14:35:27 +00:00
|
|
|
child: _userDetails == null ? loadWidget : getContainer(),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2022-04-06 18:34:56 +00:00
|
|
|
Widget getContainer() {
|
|
|
|
return UsageDetailsWidget(_userDetails);
|
2021-07-28 14:08:27 +00:00
|
|
|
}
|
|
|
|
}
|