Skip to content

Commit

Permalink
Removed For You from main feed
Browse files Browse the repository at this point in the history
  • Loading branch information
mrhcjones committed Mar 28, 2024
1 parent bf93113 commit 91b6040
Showing 1 changed file with 6 additions and 119 deletions.
125 changes: 6 additions & 119 deletions lib/home/_feed.dart
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:pref/pref.dart';
import 'package:provider/provider.dart';
import 'package:quacker/forYou.dart';
import 'package:quacker/generated/l10n.dart';
import 'package:quacker/group/_settings.dart';
import 'package:quacker/group/group_model.dart';
import 'package:quacker/group/group_screen.dart';
import 'package:quacker/home/home_screen.dart';
import 'package:quacker/user.dart';

class FeedScreen extends StatefulWidget {
final ScrollController scrollController;
Expand All @@ -21,123 +13,18 @@ class FeedScreen extends StatefulWidget {
State<FeedScreen> createState() => _FeedScreenState();
}

class _FeedScreenState extends State<FeedScreen>
with AutomaticKeepAliveClientMixin<FeedScreen>, TickerProviderStateMixin {
class _FeedScreenState extends State<FeedScreen> with AutomaticKeepAliveClientMixin<FeedScreen> {
@override
bool get wantKeepAlive => true;

late TabController _tabController;
int _tab = 0;
dynamic _tabValue = L10n.current.following;

@override
void initState() {
super.initState();
_tabController = TabController(length: 2, vsync: this);
_tabController.animation!.addListener(_tabListener);
WidgetsBinding.instance.addPostFrameCallback((_) => print("hi"));
}

void _tabListener() {
if (_tab != _tabController.animation!.value.round()) {
setState(() {
_tab = _tabController.animation!.value.round();
});
}
}

@override
Widget build(BuildContext context) {
super.build(context);

return Provider<GroupModel>(create: (context) {
var model = GroupModel(widget.id);
model.loadGroup();

return model;
}, builder: (context, child) {
var model = context.read<GroupModel>();

return NestedScrollView(
controller: widget.scrollController,
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar(
pinned: false,
snap: true,
floating: true,
title: DropdownButton(
padding: EdgeInsets.only(left: 8),
underline: Container(),
value: _tabValue,
onChanged: (value) => setState(() {
if (value == L10n.current.foryou) {
_tab = 1;
} else if (value == L10n.current.following) {
_tab = 0;
}
_tabValue = value;
}),
items: [
DropdownMenuItem(value: L10n.current.following, child: Text(L10n.current.following)),
DropdownMenuItem(value: L10n.current.foryou, child: Text(L10n.current.foryou))
]),
actions: _tab == 1
? [
IconButton(
icon: const Icon(Icons.arrow_upward),
onPressed: () async {
await widget.scrollController
.animateTo(0, duration: const Duration(seconds: 1), curve: Curves.easeInOut);
}),
...createCommonAppBarActions(context)
]
: [
IconButton(
icon: const Icon(Icons.more_vert), onPressed: () => showFeedSettings(context, model)),
IconButton(
icon: const Icon(Icons.arrow_upward),
onPressed: () async {
await widget.scrollController
.animateTo(0, duration: const Duration(seconds: 1), curve: Curves.easeInOut);
}),
IconButton(
icon: const Icon(Icons.refresh),
onPressed: () async {
await model.loadGroup();
}),
...createCommonAppBarActions(context)
],
),
];
},
body: [
SubscriptionGroupScreenContent(
id: widget.id,
),
ForYouTweets(type: 'profile', includeReplies: false, pinnedTweets: [], pref: PrefService.of(context)),
][_tab]);
});
}
}

class _SliverAppBarDelegate extends SliverPersistentHeaderDelegate {
_SliverAppBarDelegate(this._tabBar);

final TabBar _tabBar;

@override
double get minExtent => _tabBar.preferredSize.height;
@override
double get maxExtent => _tabBar.preferredSize.height;

@override
Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) {
return _tabBar;
}

@override
bool shouldRebuild(_SliverAppBarDelegate oldDelegate) {
return false;
return SubscriptionGroupScreen(
scrollController: widget.scrollController,
id: widget.id,
name: widget.name,
actions: createCommonAppBarActions(context));
}
}

0 comments on commit 91b6040

Please sign in to comment.