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