mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-13 05:27:41 +08:00
@@ -2,7 +2,6 @@ import 'dart:async';
|
||||
|
||||
import 'package:PiliPlus/http/loading_state.dart';
|
||||
import 'package:PiliPlus/utils/extension/scroll_controller_ext.dart';
|
||||
import 'package:easy_debounce/easy_throttle.dart';
|
||||
import 'package:flutter/widgets.dart' show ScrollController;
|
||||
import 'package:get/get.dart';
|
||||
|
||||
@@ -12,20 +11,6 @@ mixin ScrollOrRefreshMixin {
|
||||
void animateToTop() => scrollController.animToTop();
|
||||
|
||||
Future<void> onRefresh();
|
||||
|
||||
void toTopOrRefresh() {
|
||||
if (scrollController.hasClients) {
|
||||
if (scrollController.position.pixels == 0) {
|
||||
EasyThrottle.throttle(
|
||||
'topOrRefresh',
|
||||
const Duration(milliseconds: 500),
|
||||
onRefresh,
|
||||
);
|
||||
} else {
|
||||
animateToTop();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
abstract class CommonController<R, T> extends GetxController
|
||||
|
||||
@@ -13,8 +13,7 @@ import 'package:PiliPlus/utils/accounts.dart';
|
||||
import 'package:PiliPlus/utils/extension/scroll_controller_ext.dart';
|
||||
import 'package:PiliPlus/utils/extension/string_ext.dart';
|
||||
import 'package:PiliPlus/utils/storage_pref.dart';
|
||||
import 'package:easy_debounce/easy_throttle.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/material.dart' show ScrollController, TabController;
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class DynamicsController extends GetxController
|
||||
@@ -209,28 +208,6 @@ class DynamicsController extends GetxController
|
||||
scrollController.animToTop();
|
||||
}
|
||||
|
||||
@override
|
||||
void toTopOrRefresh() {
|
||||
final ctr = controller;
|
||||
if (ctr?.scrollController.hasClients == true) {
|
||||
if (ctr!.scrollController.position.pixels == 0) {
|
||||
if (scrollController.hasClients &&
|
||||
scrollController.position.pixels != 0) {
|
||||
scrollController.animToTop();
|
||||
}
|
||||
EasyThrottle.throttle(
|
||||
'topOrRefresh',
|
||||
const Duration(milliseconds: 500),
|
||||
onRefresh,
|
||||
);
|
||||
} else {
|
||||
animateToTop();
|
||||
}
|
||||
} else {
|
||||
super.toTopOrRefresh();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
tabController.dispose();
|
||||
|
||||
@@ -17,7 +17,6 @@ import 'package:PiliPlus/utils/storage.dart';
|
||||
import 'package:PiliPlus/utils/storage_key.dart';
|
||||
import 'package:PiliPlus/utils/storage_pref.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:easy_debounce/easy_throttle.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
@@ -256,30 +255,24 @@ class MainController extends GetxController
|
||||
if (value != selectedIndex.value) {
|
||||
selectedIndex.value = value;
|
||||
controller.jumpToPage(value);
|
||||
if (currentNav == NavigationBarType.home) {
|
||||
if (currentNav == .home) {
|
||||
checkUnread();
|
||||
} else if (currentNav == NavigationBarType.dynamics) {
|
||||
} else if (currentNav == .dynamics) {
|
||||
setDynCount();
|
||||
}
|
||||
} else {
|
||||
int now = DateTime.now().millisecondsSinceEpoch;
|
||||
if (now - _lastSelectTime < 500) {
|
||||
EasyThrottle.throttle(
|
||||
'topOrRefresh',
|
||||
const Duration(milliseconds: 500),
|
||||
() {
|
||||
if (currentNav == NavigationBarType.home) {
|
||||
homeController.onRefresh();
|
||||
} else if (currentNav == NavigationBarType.dynamics) {
|
||||
dynamicController.onRefresh();
|
||||
}
|
||||
},
|
||||
);
|
||||
if (currentNav == .home) {
|
||||
homeController.onRefresh();
|
||||
} else if (currentNav == .dynamics) {
|
||||
dynamicController.onRefresh();
|
||||
}
|
||||
} else {
|
||||
if (currentNav == NavigationBarType.home) {
|
||||
homeController.toTopOrRefresh();
|
||||
} else if (currentNav == NavigationBarType.dynamics) {
|
||||
dynamicController.toTopOrRefresh();
|
||||
if (currentNav == .home) {
|
||||
homeController.animateToTop();
|
||||
} else if (currentNav == .dynamics) {
|
||||
dynamicController.animateToTop();
|
||||
}
|
||||
}
|
||||
_lastSelectTime = now;
|
||||
|
||||
Reference in New Issue
Block a user