sort the timlines i guess
This commit is contained in:
parent
e1af1295e7
commit
ea61556f38
|
@ -11,7 +11,7 @@ class TimelinePartModel {
|
|||
|
||||
enum Visibility { public, unlisted, private, direct }
|
||||
|
||||
class PostModel {
|
||||
class PostModel implements Comparable {
|
||||
late String id;
|
||||
late String uri;
|
||||
late String content;
|
||||
|
@ -34,6 +34,11 @@ class PostModel {
|
|||
reblogged = json["reblogged"] as bool;
|
||||
}
|
||||
|
||||
@override
|
||||
int compareTo(dynamic b) {
|
||||
return id.compareTo(b.id);
|
||||
}
|
||||
|
||||
Future<ThreadModel> getThread() async {
|
||||
final token = await settings.loadToken();
|
||||
final baseUrl = await settings.loadInstanceUrl();
|
||||
|
@ -66,28 +71,32 @@ class PostModel {
|
|||
class ThreadModel {
|
||||
late List<PostModel> posts;
|
||||
ThreadModel(List<PostModel> allPosts) {
|
||||
allPosts.sort();
|
||||
posts = allPosts;
|
||||
}
|
||||
}
|
||||
|
||||
Future<ThreadModel> getTimelineFromServer() async {
|
||||
Future<ThreadModel> getTimelineFromServer(String? olderThan) async {
|
||||
final token = await settings.loadToken();
|
||||
|
||||
Map<String, String> query = {"limit": 1.toString()};
|
||||
if (olderThan != null) {
|
||||
query.addAll({"max_id": olderThan});
|
||||
}
|
||||
|
||||
final baseUrl = await settings.loadInstanceUrl();
|
||||
final url = Uri(
|
||||
scheme: "https",
|
||||
host: baseUrl,
|
||||
path: "/api/v1/timelines/home",
|
||||
queryParameters: {"limit": 1.toString()},
|
||||
queryParameters: query,
|
||||
);
|
||||
|
||||
Map<String, String> headers = {"Authorization": "Bearer $token"};
|
||||
headers.addAll(global.defaultHeaders);
|
||||
|
||||
final response = await http.get(url, headers: headers);
|
||||
final List<dynamic> json = jsonDecode(response.body);
|
||||
|
||||
List<String> ids = [];
|
||||
|
||||
ids.add(json[0]["id"]);
|
||||
final post = PostModel.fromJson(json[0]);
|
||||
|
||||
return await post.getThread();
|
||||
|
|
|
@ -5,12 +5,12 @@ import '../../business_logic/timeline/timeline.dart' as tl;
|
|||
|
||||
class Timeline extends StatefulWidget {
|
||||
const Timeline({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<Timeline> createState() => _TimelineState();
|
||||
}
|
||||
|
||||
class _TimelineState extends State<Timeline> {
|
||||
String? id;
|
||||
final controller = ScrollController();
|
||||
List<Widget> children = [];
|
||||
bool loading = false;
|
||||
|
@ -30,7 +30,8 @@ class _TimelineState extends State<Timeline> {
|
|||
Future fetchMore() async {
|
||||
loading = true;
|
||||
|
||||
final model = await tl.getTimelineFromServer();
|
||||
final model = await tl.getTimelineFromServer(id);
|
||||
id = model.posts[model.posts.length - 1].id;
|
||||
|
||||
setState(() {
|
||||
if (children.isNotEmpty) {
|
||||
|
|
Loading…
Reference in New Issue