mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: viewpoints page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -23,12 +23,10 @@ class AtMeController extends CommonController {
|
|||||||
cursor = data.cursor?.id ?? -1;
|
cursor = data.cursor?.id ?? -1;
|
||||||
cursorTime = data.cursor?.time ?? -1;
|
cursorTime = data.cursor?.time ?? -1;
|
||||||
if (currentPage != 1 && loadingState.value is Success) {
|
if (currentPage != 1 && loadingState.value is Success) {
|
||||||
loadingState.value = LoadingState.success(
|
data.items ??= <AtMeItems>[];
|
||||||
(loadingState.value as Success).response as List
|
data.items!.insertAll(0, (loadingState.value as Success).response);
|
||||||
..addAll(data.items ?? <AtMeItems>[]));
|
|
||||||
} else {
|
|
||||||
loadingState.value = LoadingState.success(data.items);
|
|
||||||
}
|
}
|
||||||
|
loadingState.value = LoadingState.success(data.items);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,14 +27,13 @@ class LikeMeController extends CommonController {
|
|||||||
List<LikeMeItems> latest = data.latest?.items ?? [];
|
List<LikeMeItems> latest = data.latest?.items ?? [];
|
||||||
List<LikeMeItems> total = data.total?.items ?? [];
|
List<LikeMeItems> total = data.total?.items ?? [];
|
||||||
if (currentPage != 1 && loadingState.value is Success) {
|
if (currentPage != 1 && loadingState.value is Success) {
|
||||||
loadingState.value = LoadingState.success((loadingState.value as Success)
|
Pair<List<LikeMeItems>, List<LikeMeItems>> pair =
|
||||||
.response as Pair<List<LikeMeItems>, List<LikeMeItems>>
|
(loadingState.value as Success).response;
|
||||||
..first.addAll(latest)
|
latest.insertAll(0, pair.first);
|
||||||
..second.addAll(total));
|
total.insertAll(0, pair.second);
|
||||||
} else {
|
}
|
||||||
loadingState.value =
|
loadingState.value =
|
||||||
LoadingState.success(Pair(first: latest, second: total));
|
LoadingState.success(Pair(first: latest, second: total));
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,12 +23,10 @@ class ReplyMeController extends CommonController {
|
|||||||
cursor = data.cursor?.id ?? -1;
|
cursor = data.cursor?.id ?? -1;
|
||||||
cursorTime = data.cursor?.time ?? -1;
|
cursorTime = data.cursor?.time ?? -1;
|
||||||
if (currentPage != 1 && loadingState.value is Success) {
|
if (currentPage != 1 && loadingState.value is Success) {
|
||||||
loadingState.value = LoadingState.success(
|
data.items ??= <ReplyMeItems>[];
|
||||||
(loadingState.value as Success).response as List
|
data.items!.insertAll(0, (loadingState.value as Success).response);
|
||||||
..addAll(data.items ?? <ReplyMeItems>[]));
|
|
||||||
} else {
|
|
||||||
loadingState.value = LoadingState.success(data.items);
|
|
||||||
}
|
}
|
||||||
|
loadingState.value = LoadingState.success(data.items);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,18 +17,20 @@ class SysMsgController extends CommonController {
|
|||||||
@override
|
@override
|
||||||
List? handleListResponse(List currentList, List dataList) {
|
List? handleListResponse(List currentList, List dataList) {
|
||||||
if (cursor == -1) {
|
if (cursor == -1) {
|
||||||
msgSysUpdateCursor(dataList.first.cursor!);
|
msgSysUpdateCursor(dataList.firstOrNull?.cursor);
|
||||||
}
|
}
|
||||||
cursor = dataList.last.cursor ?? -1;
|
cursor = dataList.lastOrNull?.cursor ?? -1;
|
||||||
if (isEnd.not && dataList.length + 1 < pageSize) {
|
if (isEnd.not && dataList.length + 1 < pageSize) {
|
||||||
isEnd = true;
|
isEnd = true;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future msgSysUpdateCursor(int cursor) async {
|
Future msgSysUpdateCursor(int? cursor) async {
|
||||||
|
if (cursor != null) {
|
||||||
MsgHttp.msgSysUpdateCursor(cursor);
|
MsgHttp.msgSysUpdateCursor(cursor);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future onRefresh() {
|
Future onRefresh() {
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ class _ViewPointsPageState
|
|||||||
automaticallyImplyLeading: false,
|
automaticallyImplyLeading: false,
|
||||||
titleSpacing: 16,
|
titleSpacing: 16,
|
||||||
title: const Text('分段信息'),
|
title: const Text('分段信息'),
|
||||||
|
toolbarHeight: 45,
|
||||||
actions: [
|
actions: [
|
||||||
Text(
|
Text(
|
||||||
'分段进度条',
|
'分段进度条',
|
||||||
@@ -73,27 +74,25 @@ class _ViewPointsPageState
|
|||||||
),
|
),
|
||||||
const SizedBox(width: 16),
|
const SizedBox(width: 16),
|
||||||
],
|
],
|
||||||
|
bottom: PreferredSize(
|
||||||
|
preferredSize: Size.fromHeight(1),
|
||||||
|
child: Divider(
|
||||||
|
height: 1,
|
||||||
|
color: Theme.of(context).dividerColor.withOpacity(0.1),
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
body: enableSlide ? slideList() : buildList,
|
body: enableSlide ? slideList() : buildList,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget get buildList => ListView(
|
Widget get buildList => ListView.separated(
|
||||||
controller: ScrollController(),
|
controller: ScrollController(),
|
||||||
physics: const AlwaysScrollableScrollPhysics(),
|
physics: const AlwaysScrollableScrollPhysics(),
|
||||||
padding:
|
padding:
|
||||||
EdgeInsets.only(bottom: MediaQuery.paddingOf(context).bottom + 80),
|
EdgeInsets.only(bottom: MediaQuery.paddingOf(context).bottom + 80),
|
||||||
children: [
|
itemCount: videoDetailController.viewPointList.length,
|
||||||
...List.generate(
|
itemBuilder: (context, index) {
|
||||||
videoDetailController.viewPointList.length * 2 - 1,
|
|
||||||
(rawIndex) {
|
|
||||||
if (rawIndex % 2 == 1) {
|
|
||||||
return Divider(
|
|
||||||
height: 1,
|
|
||||||
color: Theme.of(context).dividerColor.withOpacity(0.1),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
int index = rawIndex ~/ 2;
|
|
||||||
Segment segment = videoDetailController.viewPointList[index];
|
Segment segment = videoDetailController.viewPointList[index];
|
||||||
if (currentIndex == -1 &&
|
if (currentIndex == -1 &&
|
||||||
segment.from != null &&
|
segment.from != null &&
|
||||||
@@ -101,8 +100,7 @@ class _ViewPointsPageState
|
|||||||
if (videoDetailController
|
if (videoDetailController
|
||||||
.plPlayerController.positionSeconds.value >=
|
.plPlayerController.positionSeconds.value >=
|
||||||
segment.from! &&
|
segment.from! &&
|
||||||
videoDetailController
|
videoDetailController.plPlayerController.positionSeconds.value <
|
||||||
.plPlayerController.positionSeconds.value <
|
|
||||||
segment.to!) {
|
segment.to!) {
|
||||||
currentIndex = index;
|
currentIndex = index;
|
||||||
}
|
}
|
||||||
@@ -135,8 +133,7 @@ class _ViewPointsPageState
|
|||||||
builder: (context, constraints) => NetworkImgLayer(
|
builder: (context, constraints) => NetworkImgLayer(
|
||||||
radius: 6,
|
radius: 6,
|
||||||
src: segment.url,
|
src: segment.url,
|
||||||
width:
|
width: constraints.maxHeight * StyleString.aspectRatio,
|
||||||
constraints.maxHeight * StyleString.aspectRatio,
|
|
||||||
height: constraints.maxHeight,
|
height: constraints.maxHeight,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -163,7 +160,9 @@ class _ViewPointsPageState
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
separatorBuilder: (context, index) => Divider(
|
||||||
|
height: 1,
|
||||||
|
color: Theme.of(context).dividerColor.withOpacity(0.1),
|
||||||
),
|
),
|
||||||
],
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user