D1APP-89 tracking api connected
This commit is contained in:
parent
eaec7340db
commit
169b207d9f
|
|
@ -119,6 +119,8 @@ class RequestHelper {
|
|||
]);
|
||||
|
||||
static String mark(int id, String type) => baseUrl + '/$type/$id/mark';
|
||||
static String tracking(int id, String type) =>
|
||||
baseUrl + '/$type/$id/tracking';
|
||||
static String comments(int id, String type) =>
|
||||
baseUrl + '/$type/$id/comments';
|
||||
static String feedback(int id, int commentId, String type) =>
|
||||
|
|
|
|||
|
|
@ -38,40 +38,46 @@ class _NewsDetailsState extends State<NewsDetails> {
|
|||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Consumer<NewsDetailsState>(
|
||||
builder: (context, state, child) => StateHandler<NewsDetailsState>(
|
||||
onRetry: () => state.getNewsDetails(state.currentNews.id),
|
||||
state: state,
|
||||
builder: (context, state) => Stack(
|
||||
children: [
|
||||
IgnorePointer(
|
||||
ignoring: state.isFetchingNewItem,
|
||||
child: DidvanPageView(
|
||||
isRadar: false,
|
||||
initialIndex: state.initialIndex,
|
||||
onPageChanged: _onPageChnaged,
|
||||
scrollController: _scrollController,
|
||||
items: state.news,
|
||||
currentIndex: state.currentIndex,
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: FloatingNavigationBar(
|
||||
hasUnmarkConfirmation:
|
||||
widget.pageData['hasUnmarkConfirmation'],
|
||||
scrollController: _scrollController,
|
||||
item: state.currentNews,
|
||||
onCommentsChanged: state.onCommentsChanged,
|
||||
onMarkChanged: (value) => widget.pageData['onMarkChanged'](
|
||||
state.currentNews.id,
|
||||
value,
|
||||
builder: (context, state, child) => WillPopScope(
|
||||
onWillPop: () async {
|
||||
state.handleTracking(sendRequest: true);
|
||||
return true;
|
||||
},
|
||||
child: StateHandler<NewsDetailsState>(
|
||||
onRetry: () => state.getNewsDetails(state.currentNews.id),
|
||||
state: state,
|
||||
builder: (context, state) => Stack(
|
||||
children: [
|
||||
IgnorePointer(
|
||||
ignoring: state.isFetchingNewItem,
|
||||
child: DidvanPageView(
|
||||
isRadar: false,
|
||||
initialIndex: state.initialIndex,
|
||||
onPageChanged: _onPageChnaged,
|
||||
scrollController: _scrollController,
|
||||
items: state.news,
|
||||
currentIndex: state.currentIndex,
|
||||
),
|
||||
isRadar: false,
|
||||
),
|
||||
),
|
||||
],
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: FloatingNavigationBar(
|
||||
hasUnmarkConfirmation:
|
||||
widget.pageData['hasUnmarkConfirmation'],
|
||||
scrollController: _scrollController,
|
||||
item: state.currentNews,
|
||||
onCommentsChanged: state.onCommentsChanged,
|
||||
onMarkChanged: (value) => widget.pageData['onMarkChanged'](
|
||||
state.currentNews.id,
|
||||
value,
|
||||
),
|
||||
isRadar: false,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class NewsDetailsState extends CoreProvier {
|
|||
}
|
||||
final service = RequestService(RequestHelper.newsDetails(id, args));
|
||||
await service.httpGet();
|
||||
_handleTracking(sendRequest: isForward != null);
|
||||
handleTracking(sendRequest: isForward != null);
|
||||
if (service.isSuccess) {
|
||||
final result = service.result;
|
||||
final newsItem = NewsDetailsData.fromJson(result['news']);
|
||||
|
|
@ -88,15 +88,21 @@ class NewsDetailsState extends CoreProvier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> _handleTracking({bool sendRequest = true}) async {
|
||||
Future<void> handleTracking({bool sendRequest = true}) async {
|
||||
if (!sendRequest) {
|
||||
_trackingTimerCounter = 0;
|
||||
_trackingTimer = Timer.periodic(const Duration(seconds: 1), (timer) {
|
||||
_trackingTimerCounter++;
|
||||
});
|
||||
return;
|
||||
}
|
||||
//send request
|
||||
_trackingTimerCounter = 0;
|
||||
final service = RequestService(
|
||||
RequestHelper.tracking(currentNews.id, 'news'),
|
||||
body: {
|
||||
'sec': _trackingTimerCounter,
|
||||
},
|
||||
);
|
||||
service.put();
|
||||
}
|
||||
|
||||
Future<void> getRelatedContents() async {
|
||||
|
|
|
|||
|
|
@ -38,47 +38,53 @@ class _RadarDetailsState extends State<RadarDetails> {
|
|||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Consumer<RadarDetailsState>(
|
||||
builder: (context, state, child) => StateHandler<RadarDetailsState>(
|
||||
onRetry: () => state.getRadarDetails(widget.pageData['id']),
|
||||
state: state,
|
||||
builder: (context, state) => Stack(
|
||||
children: [
|
||||
IgnorePointer(
|
||||
ignoring: state.isFetchingNewItem,
|
||||
child: DidvanPageView(
|
||||
isRadar: true,
|
||||
initialIndex: state.initialIndex,
|
||||
onPageChanged: _onPageChanged,
|
||||
scrollController: _scrollController,
|
||||
items: state.radars,
|
||||
currentIndex: state.currentIndex,
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: FloatingNavigationBar(
|
||||
hasUnmarkConfirmation:
|
||||
widget.pageData['hasUnmarkConfirmation'],
|
||||
isRadar: true,
|
||||
scrollController: _scrollController,
|
||||
onMarkChanged: (value) =>
|
||||
widget.pageData['onMarkChanged']?.call(
|
||||
state.currentRadar.id,
|
||||
value,
|
||||
builder: (context, state, child) => WillPopScope(
|
||||
onWillPop: () async {
|
||||
state.handleTracking(sendRequest: true);
|
||||
return true;
|
||||
},
|
||||
child: StateHandler<RadarDetailsState>(
|
||||
onRetry: () => state.getRadarDetails(widget.pageData['id']),
|
||||
state: state,
|
||||
builder: (context, state) => Stack(
|
||||
children: [
|
||||
IgnorePointer(
|
||||
ignoring: state.isFetchingNewItem,
|
||||
child: DidvanPageView(
|
||||
isRadar: true,
|
||||
initialIndex: state.initialIndex,
|
||||
onPageChanged: _onPageChanged,
|
||||
scrollController: _scrollController,
|
||||
items: state.radars,
|
||||
currentIndex: state.currentIndex,
|
||||
),
|
||||
item: state.currentRadar,
|
||||
onCommentsChanged: (count) {
|
||||
state.onCommentsChanged(count);
|
||||
widget.pageData['onCommentsChanged']?.call(
|
||||
state.currentRadar.id,
|
||||
count,
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: FloatingNavigationBar(
|
||||
hasUnmarkConfirmation:
|
||||
widget.pageData['hasUnmarkConfirmation'],
|
||||
isRadar: true,
|
||||
scrollController: _scrollController,
|
||||
onMarkChanged: (value) =>
|
||||
widget.pageData['onMarkChanged']?.call(
|
||||
state.currentRadar.id,
|
||||
value,
|
||||
),
|
||||
item: state.currentRadar,
|
||||
onCommentsChanged: (count) {
|
||||
state.onCommentsChanged(count);
|
||||
widget.pageData['onCommentsChanged']?.call(
|
||||
state.currentRadar.id,
|
||||
count,
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class RadarDetailsState extends CoreProvier {
|
|||
}
|
||||
final service = RequestService(RequestHelper.radarDetails(id, args));
|
||||
await service.httpGet();
|
||||
_handleTracking(sendRequest: isForward != null);
|
||||
handleTracking(sendRequest: isForward != null);
|
||||
if (service.isSuccess) {
|
||||
final result = service.result;
|
||||
final radar = RadarDetailsData.fromJson(result['radar']);
|
||||
|
|
@ -121,15 +121,21 @@ class RadarDetailsState extends CoreProvier {
|
|||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> _handleTracking({bool sendRequest = true}) async {
|
||||
Future<void> handleTracking({bool sendRequest = true}) async {
|
||||
if (!sendRequest) {
|
||||
_trackingTimerCounter = 0;
|
||||
_trackingTimer = Timer.periodic(const Duration(seconds: 1), (timer) {
|
||||
_trackingTimerCounter++;
|
||||
});
|
||||
return;
|
||||
}
|
||||
//send request
|
||||
_trackingTimerCounter = 0;
|
||||
final service = RequestService(
|
||||
RequestHelper.tracking(currentRadar.id, 'radar'),
|
||||
body: {
|
||||
'sec': _trackingTimerCounter,
|
||||
},
|
||||
);
|
||||
service.put();
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
|||
Loading…
Reference in New Issue