Merge branch 'dev' into 'master'
Dev See merge request Didvan/didvan-app!18
This commit is contained in:
commit
9f594f97a6
|
|
@ -37,6 +37,14 @@ class UserProvider extends CoreProvier {
|
|||
}
|
||||
if (service.isSuccess) {
|
||||
user = User.fromJson(service.result['user']);
|
||||
await StorageService.setValue(
|
||||
key: 'notificationTimeRangeStart',
|
||||
value: service.result['user']['start'],
|
||||
);
|
||||
await StorageService.setValue(
|
||||
key: 'notificationTimeRangeEnd',
|
||||
value: service.result['user']['end'],
|
||||
);
|
||||
AppInitializer.initializeFirebase().then((_) => _registerFirebaseToken());
|
||||
_registerFirebaseToken();
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import 'package:didvan/models/requests/radar.dart';
|
|||
import 'package:didvan/models/requests/studio.dart';
|
||||
|
||||
class RequestHelper {
|
||||
static const String baseUrl = 'https://api.didvan.app';
|
||||
static const String baseUrl = 'https://test.api.didvan.app';
|
||||
static const String _baseUserUrl = baseUrl + '/user';
|
||||
static const String _baseRadarUrl = baseUrl + '/radar';
|
||||
static const String _baseNewsUrl = baseUrl + '/news';
|
||||
|
|
|
|||
|
|
@ -38,12 +38,7 @@ class _NewsDetailsState extends State<NewsDetails> {
|
|||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Consumer<NewsDetailsState>(
|
||||
builder: (context, state, child) => WillPopScope(
|
||||
onWillPop: () async {
|
||||
state.handleTracking(sendRequest: true);
|
||||
return true;
|
||||
},
|
||||
child: StateHandler<NewsDetailsState>(
|
||||
builder: (context, state, child) => StateHandler<NewsDetailsState>(
|
||||
onRetry: () => state.getNewsDetails(state.currentNews.id),
|
||||
state: state,
|
||||
builder: (context, state) => Stack(
|
||||
|
|
@ -82,7 +77,6 @@ class _NewsDetailsState extends State<NewsDetails> {
|
|||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,7 +88,7 @@ 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) {
|
||||
|
|
@ -103,6 +103,7 @@ class NewsDetailsState extends CoreProvier {
|
|||
},
|
||||
);
|
||||
service.put();
|
||||
_trackingTimerCounter = 0;
|
||||
}
|
||||
|
||||
Future<void> getRelatedContents() async {
|
||||
|
|
@ -129,6 +130,7 @@ class NewsDetailsState extends CoreProvier {
|
|||
|
||||
@override
|
||||
void dispose() {
|
||||
_handleTracking(sendRequest: true);
|
||||
_trackingTimer.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,12 +38,7 @@ class _RadarDetailsState extends State<RadarDetails> {
|
|||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Consumer<RadarDetailsState>(
|
||||
builder: (context, state, child) => WillPopScope(
|
||||
onWillPop: () async {
|
||||
state.handleTracking(sendRequest: true);
|
||||
return true;
|
||||
},
|
||||
child: StateHandler<RadarDetailsState>(
|
||||
builder: (context, state, child) => StateHandler<RadarDetailsState>(
|
||||
onRetry: () => state.getRadarDetails(widget.pageData['id']),
|
||||
state: state,
|
||||
builder: (context, state) => Stack(
|
||||
|
|
@ -89,7 +84,6 @@ class _RadarDetailsState extends State<RadarDetails> {
|
|||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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,7 +121,7 @@ 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) {
|
||||
|
|
@ -136,10 +136,12 @@ class RadarDetailsState extends CoreProvier {
|
|||
},
|
||||
);
|
||||
service.put();
|
||||
_trackingTimerCounter = 0;
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_handleTracking(sendRequest: true);
|
||||
_trackingTimer.cancel();
|
||||
super.dispose();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,12 +54,13 @@ class _GeneralSettingsState extends State<GeneralSettings> {
|
|||
title: 'زمان دریافت اعلان',
|
||||
onTap: () => _pickTimeRange(context),
|
||||
icon: DidvanIcons.notification_regular,
|
||||
suffix: DateTimeUtils.normalizeTimeDuration(
|
||||
Duration(minutes: state.notificationTimeRange[1]),
|
||||
) +
|
||||
' - ' +
|
||||
suffix: 'از' +
|
||||
DateTimeUtils.normalizeTimeDuration(
|
||||
Duration(minutes: state.notificationTimeRange[0]),
|
||||
) +
|
||||
' تا ' +
|
||||
DateTimeUtils.normalizeTimeDuration(
|
||||
Duration(minutes: state.notificationTimeRange[1]),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class _StudioState extends State<Studio> {
|
|||
child: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: SearchField(
|
||||
title: 'استودیو',
|
||||
title: state.videosSelected ? 'ویدئو' : 'پادکست',
|
||||
onChanged: _onChanged,
|
||||
focusNode: _focusNode,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ import 'package:carousel_slider/carousel_slider.dart';
|
|||
import 'package:didvan/config/design_config.dart';
|
||||
import 'package:didvan/config/theme_data.dart';
|
||||
import 'package:didvan/constants/app_icons.dart';
|
||||
import 'package:didvan/models/requests/news.dart';
|
||||
import 'package:didvan/models/requests/radar.dart';
|
||||
import 'package:didvan/routes/routes.dart';
|
||||
import 'package:didvan/utils/action_sheet.dart';
|
||||
import 'package:didvan/utils/date_time.dart';
|
||||
|
|
@ -195,24 +197,64 @@ class _DidvanPageViewState extends State<DidvanPageView> {
|
|||
data: content.text,
|
||||
onAnchorTap: (href, context, map, element) {
|
||||
if (href!.contains('navigate-')) {
|
||||
if (href.contains('statistic')) {
|
||||
Navigator.of(ActionSheetUtils.context)
|
||||
.pushNamed(Routes.statisticDetails, arguments: {
|
||||
'onMarkChanged': (value) {},
|
||||
'label': href.split('-')[1],
|
||||
'label': href.split('-')[2],
|
||||
'title': href.split('-').last,
|
||||
'marked': false,
|
||||
});
|
||||
} else if (href.contains('radar')) {
|
||||
Navigator.of(ActionSheetUtils.context).pushNamed(
|
||||
Routes.radarDetails,
|
||||
arguments: {
|
||||
'onMarkChanged': (id, value) {},
|
||||
'onCommentsChanged': (id, count) {},
|
||||
'id': int.parse(href.split('-').last),
|
||||
'args': const RadarRequestArgs(page: 0),
|
||||
'hasUnmarkConfirmation': false,
|
||||
},
|
||||
);
|
||||
} else if (href.contains('news')) {
|
||||
Navigator.of(ActionSheetUtils.context).pushNamed(
|
||||
Routes.newsDetails,
|
||||
arguments: {
|
||||
'onMarkChanged': (id, value) {},
|
||||
'id': int.parse(href.split('-').last),
|
||||
'args': const NewsRequestArgs(page: 0),
|
||||
'hasUnmarkConfirmation': false,
|
||||
},
|
||||
);
|
||||
}
|
||||
} else if (href.contains('popup-')) {
|
||||
showDialog(
|
||||
context: ActionSheetUtils.context,
|
||||
builder: (context) => Dialog(
|
||||
shape: const RoundedRectangleBorder(
|
||||
borderRadius: DesignConfig.lowBorderRadius,
|
||||
),
|
||||
alignment: Alignment.center,
|
||||
child: DidvanCard(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Icon(
|
||||
DidvanIcons.info_circle_solid,
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
DidvanText(
|
||||
element!.text,
|
||||
style: Theme.of(context).textTheme.subtitle2,
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
DidvanText(href.split('-').last),
|
||||
const DidvanDivider(),
|
||||
const SizedBox(height: 16),
|
||||
const DidvanButton(
|
||||
title: 'بستن',
|
||||
onPressed: ActionSheetUtils.pop,
|
||||
|
|
|
|||
Loading…
Reference in New Issue