Bug fix, refresh page after podcast update.
This commit is contained in:
parent
ffead02039
commit
e97752bea5
|
@ -31,7 +31,7 @@ import 'audioplayer.dart';
|
|||
import 'download_list.dart';
|
||||
import 'home_groups.dart';
|
||||
import 'home_menu.dart';
|
||||
import 'import_ompl.dart';
|
||||
import 'import_opml.dart';
|
||||
import 'playlist.dart';
|
||||
import 'search_podcast.dart';
|
||||
|
||||
|
@ -452,9 +452,9 @@ class __PlaylistButtonState extends State<_PlaylistButton> {
|
|||
),
|
||||
),
|
||||
),
|
||||
PopupMenuDivider(
|
||||
height: 1,
|
||||
),
|
||||
//PopupMenuDivider(
|
||||
// height: 1,
|
||||
//),
|
||||
// PopupMenuItem(
|
||||
// value: 2,
|
||||
// child: Container(
|
||||
|
@ -723,11 +723,11 @@ class _RecentUpdateState extends State<_RecentUpdate>
|
|||
Widget build(BuildContext context) {
|
||||
super.build(context);
|
||||
final s = context.s;
|
||||
return Selector<RefreshWorker, bool>(
|
||||
selector: (_, worker) => worker.complete,
|
||||
builder: (_, complete, __) => Selector<GroupList, bool>(
|
||||
selector: (_, worker) => worker.created,
|
||||
builder: (context, created, child) {
|
||||
return Selector2<RefreshWorker, GroupList, Tuple2<bool, bool>>(
|
||||
selector: (_, refreshWorkder, groupWorker) =>
|
||||
Tuple2(refreshWorkder.created, groupWorker.created),
|
||||
builder: (_, data, __) {
|
||||
print('${data.item1}Refresh completed');
|
||||
return FutureBuilder<List<EpisodeBrief>>(
|
||||
future: _getRssItem(_top, _group, hideListened: _hideListened),
|
||||
builder: (context, snapshot) {
|
||||
|
@ -741,8 +741,7 @@ class _RecentUpdateState extends State<_RecentUpdate>
|
|||
Icon(LineIcons.cloud_download_alt_solid,
|
||||
size: 80, color: Colors.grey[500]),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(vertical: 10)),
|
||||
padding: EdgeInsets.symmetric(vertical: 10)),
|
||||
Text(
|
||||
s.noEpisodeRecent,
|
||||
style: TextStyle(color: Colors.grey[500]),
|
||||
|
@ -821,18 +820,16 @@ class _RecentUpdateState extends State<_RecentUpdate>
|
|||
Material(
|
||||
color: Colors.transparent,
|
||||
child: IconButton(
|
||||
tooltip:
|
||||
context.s.refresh,
|
||||
tooltip: context.s.refresh,
|
||||
icon: Icon(
|
||||
LineIcons
|
||||
.redo_alt_solid,
|
||||
LineIcons.redo_alt_solid,
|
||||
size: 16),
|
||||
onPressed: () {
|
||||
_updateRssItem();
|
||||
Fluttertoast.showToast(
|
||||
msg: s.refreshStarted,
|
||||
gravity: ToastGravity
|
||||
.BOTTOM,
|
||||
gravity:
|
||||
ToastGravity.BOTTOM,
|
||||
);
|
||||
}),
|
||||
),
|
||||
|
@ -840,20 +837,17 @@ class _RecentUpdateState extends State<_RecentUpdate>
|
|||
Material(
|
||||
color: Colors.transparent,
|
||||
child: IconButton(
|
||||
tooltip:
|
||||
s.hideListenedSetting,
|
||||
tooltip: s.hideListenedSetting,
|
||||
icon: SizedBox(
|
||||
width: 30,
|
||||
height: 15,
|
||||
child: HideListened(
|
||||
hideListened:
|
||||
_hideListened ??
|
||||
false,
|
||||
_hideListened ?? false,
|
||||
),
|
||||
),
|
||||
onPressed: () {
|
||||
setState(() =>
|
||||
_hideListened =
|
||||
setState(() => _hideListened =
|
||||
!_hideListened);
|
||||
},
|
||||
),
|
||||
|
@ -875,14 +869,14 @@ class _RecentUpdateState extends State<_RecentUpdate>
|
|||
width: 20,
|
||||
height: 10,
|
||||
child: CustomPaint(
|
||||
painter: MultiSelectPainter(
|
||||
painter:
|
||||
MultiSelectPainter(
|
||||
color: context
|
||||
.accentColor)),
|
||||
),
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
_selectedEpisodes =
|
||||
[];
|
||||
_selectedEpisodes = [];
|
||||
_multiSelect = true;
|
||||
});
|
||||
},
|
||||
|
@ -909,7 +903,7 @@ class _RecentUpdateState extends State<_RecentUpdate>
|
|||
: Center();
|
||||
},
|
||||
);
|
||||
}),
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -108,9 +108,10 @@ class _ScrollPodcastsState extends State<ScrollPodcasts>
|
|||
Widget build(BuildContext context) {
|
||||
final width = MediaQuery.of(context).size.width;
|
||||
final s = context.s;
|
||||
return Selector<GroupList, tuple.Tuple2<List<PodcastGroup>, bool>>(
|
||||
selector: (_, groupList) =>
|
||||
tuple.Tuple2(groupList.groups, groupList.created),
|
||||
return Selector2<GroupList, RefreshWorker,
|
||||
tuple.Tuple3<List<PodcastGroup>, bool, bool>>(
|
||||
selector: (_, groupList, refreshWorker) => tuple.Tuple3(
|
||||
groupList.groups, groupList.created, refreshWorker.created),
|
||||
builder: (_, data, __) {
|
||||
var groups = data.item1;
|
||||
var import = data.item2;
|
||||
|
@ -513,11 +514,10 @@ class _PodcastPreviewState extends State<PodcastPreview> {
|
|||
return Column(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Selector<RefreshWorker, bool>(
|
||||
selector: (_, worker) => worker.complete,
|
||||
builder: (_, complete, __) => Selector<GroupList, bool>(
|
||||
selector: (_, worker) => worker.created,
|
||||
builder: (context, created, child) {
|
||||
child: Selector2<RefreshWorker, GroupList, tuple.Tuple2<bool, bool>>(
|
||||
selector: (_, refreshWorker, groupWorker) =>
|
||||
tuple.Tuple2(refreshWorker.created, groupWorker.created),
|
||||
builder: (_, data, __) {
|
||||
_getRssItem = _getRssItemTop(widget.podcastLocal);
|
||||
return FutureBuilder<List<EpisodeBrief>>(
|
||||
future: _getRssItem,
|
||||
|
@ -527,12 +527,10 @@ class _PodcastPreviewState extends State<PodcastPreview> {
|
|||
episodes: snapshot.data,
|
||||
podcastLocal: widget.podcastLocal,
|
||||
)
|
||||
: Padding(
|
||||
padding: const EdgeInsets.all(5.0),
|
||||
);
|
||||
: Padding(padding: const EdgeInsets.all(5.0));
|
||||
},
|
||||
);
|
||||
}),
|
||||
},
|
||||
),
|
||||
),
|
||||
Container(
|
||||
|
|
|
@ -27,6 +27,7 @@ class RefreshWorker extends ChangeNotifier {
|
|||
bool get complete => _complete;
|
||||
|
||||
bool _created = false;
|
||||
bool get created => _created;
|
||||
|
||||
Future<void> _createIsolate() async {
|
||||
receivePort = ReceivePort();
|
||||
|
@ -46,12 +47,12 @@ class RefreshWorker extends ChangeNotifier {
|
|||
notifyListeners();
|
||||
} else if (message is String && message == "done") {
|
||||
_currentRefreshItem = RefreshItem('', RefreshState.none);
|
||||
_complete = true;
|
||||
notifyListeners();
|
||||
_complete = false;
|
||||
refreshIsolate?.kill();
|
||||
refreshIsolate = null;
|
||||
_created = false;
|
||||
_complete = true;
|
||||
notifyListeners();
|
||||
_complete = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue