Commit 55151ba2 authored by DatHV's avatar DatHV
Browse files

update history point, manager

parent f714cdcc
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/configs/constants.dart'; import 'package:mypoint_flutter_app/configs/constants.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/screen/quiz_campaign/quiz_campaign_model.dart'; import 'package:mypoint_flutter_app/screen/quiz_campaign/quiz_campaign_model.dart';
import '../../base/restful_api_viewmodel.dart'; import '../../networking/restful_api_viewmodel.dart';
import '../../widgets/alert/popup_data_model.dart'; import '../../widgets/alert/popup_data_model.dart';
class QuizCampaignViewModel extends RestfulApiViewModel { class QuizCampaignViewModel extends RestfulApiViewModel {
......
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import '../../base/restful_api_viewmodel.dart'; import '../../networking/restful_api_viewmodel.dart';
import 'model/registration_form_package_model.dart'; import 'model/registration_form_package_model.dart';
class RegisterFormInputViewModel extends RestfulApiViewModel { class RegisterFormInputViewModel extends RestfulApiViewModel {
......
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import '../../base/restful_api_viewmodel.dart'; import '../../networking/restful_api_viewmodel.dart';
import '../../permission/biometric_manager.dart'; import '../../permission/biometric_manager.dart';
import '../../preference/data_preference.dart'; import '../../preference/data_preference.dart';
......
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:mypoint_flutter_app/model/check_update_response_model.dart'; import 'package:mypoint_flutter_app/screen/splash/models/check_update_response_model.dart';
part 'update_response_model.g.dart'; part 'update_response_model.g.dart';
......
...@@ -2,18 +2,14 @@ import 'dart:io'; ...@@ -2,18 +2,14 @@ import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:mypoint_flutter_app/configs/api_paths.dart';
import 'package:mypoint_flutter_app/dio_http_service/api_helper.dart';
import 'package:mypoint_flutter_app/screen/splash/splash_screen_viewmodel.dart'; import 'package:mypoint_flutter_app/screen/splash/splash_screen_viewmodel.dart';
import 'package:mypoint_flutter_app/shared/router_gage.dart'; import 'package:mypoint_flutter_app/shared/router_gage.dart';
import 'package:mypoint_flutter_app/widgets/alert/custom_alert_dialog.dart'; import 'package:mypoint_flutter_app/widgets/alert/custom_alert_dialog.dart';
import '../../base/base_screen.dart'; import '../../base/base_screen.dart';
import '../../base/basic_state.dart'; import '../../base/basic_state.dart';
import '../../model/check_update_response_model.dart'; import 'models/check_update_response_model.dart';
import '../../resources/base_color.dart'; import '../../resources/base_color.dart';
import '../../widgets/alert/data_alert_model.dart'; import '../../widgets/alert/data_alert_model.dart';
import '../onboarding/onboarding_screen.dart';
class SplashScreen extends BaseScreen { class SplashScreen extends BaseScreen {
const SplashScreen({super.key}); const SplashScreen({super.key});
...@@ -22,13 +18,12 @@ class SplashScreen extends BaseScreen { ...@@ -22,13 +18,12 @@ class SplashScreen extends BaseScreen {
State<SplashScreen> createState() => _SplashScreenState(); State<SplashScreen> createState() => _SplashScreenState();
} }
class _SplashScreenState extends BaseState<SplashScreen> with BasicState, ApiHelper { class _SplashScreenState extends BaseState<SplashScreen> with BasicState {
final SplashScreenViewModel _viewModel = Get.put(SplashScreenViewModel()); final SplashScreenViewModel _viewModel = Get.put(SplashScreenViewModel());
@override @override
void initState() { void initState() {
super.initState(); super.initState();
initNetWork(APIPaths.baseUrl);
_viewModel.checkUpdateApp(); _viewModel.checkUpdateApp();
_viewModel.infoAppUpdate.listen((response) { _viewModel.infoAppUpdate.listen((response) {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
...@@ -39,10 +34,10 @@ class _SplashScreenState extends BaseState<SplashScreen> with BasicState, ApiHel ...@@ -39,10 +34,10 @@ class _SplashScreenState extends BaseState<SplashScreen> with BasicState, ApiHel
} }
var result = response?.data?.updateRequest?.first; var result = response?.data?.updateRequest?.first;
var status = result?.status ?? UpdateStatus.none; var status = result?.status ?? UpdateStatus.none;
if (result == null && status == UpdateStatus.none) { if (result == null || status == UpdateStatus.none) {
_navigateToBeforCheckUpdate(); _navigateToBeforCheckUpdate();
} else { } else {
_showSuggestUpdateAlert(result!); _showSuggestUpdateAlert(result);
} }
}); });
}); });
...@@ -83,7 +78,7 @@ class _SplashScreenState extends BaseState<SplashScreen> with BasicState, ApiHel ...@@ -83,7 +78,7 @@ class _SplashScreenState extends BaseState<SplashScreen> with BasicState, ApiHel
} }
void _navigateToBeforCheckUpdate() { void _navigateToBeforCheckUpdate() {
Get.toNamed(onboardingScreen); Get.offAllNamed(onboardingScreen);
} }
void _showSuggestUpdateAlert(CheckUpdateResponseModel data) { void _showSuggestUpdateAlert(CheckUpdateResponseModel data) {
......
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:mypoint_flutter_app/base/restful_api_viewmodel.dart'; import 'package:mypoint_flutter_app/networking/restful_api_viewmodel.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/shared/router_gage.dart'; import 'package:mypoint_flutter_app/shared/router_gage.dart';
import '../../base/base_response_model.dart'; import '../../base/base_response_model.dart';
import '../../model/auth/profile_response_model.dart'; import '../../model/auth/profile_response_model.dart';
import '../../model/update_response_model.dart'; import 'models/update_response_model.dart';
import '../../preference/data_preference.dart'; import '../../preference/data_preference.dart';
import '../../preference/point/point_manager.dart'; import '../../preference/point/point_manager.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
......
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/preference/data_preference.dart'; import 'package:mypoint_flutter_app/preference/data_preference.dart';
import '../../base/restful_api_viewmodel.dart'; import '../../networking/restful_api_viewmodel.dart';
import '../../preference/contact_storage_service.dart'; import '../../preference/contact_storage_service.dart';
import '../voucher/models/product_brand_model.dart'; import '../voucher/models/product_brand_model.dart';
import '../voucher/models/product_model.dart'; import '../voucher/models/product_model.dart';
......
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/configs/constants.dart'; import 'package:mypoint_flutter_app/configs/constants.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/screen/traffic_service/traffic_service_model.dart'; import 'package:mypoint_flutter_app/screen/traffic_service/traffic_service_model.dart';
import '../../base/restful_api_viewmodel.dart'; import '../../networking/restful_api_viewmodel.dart';
class TrafficServiceViewModel extends RestfulApiViewModel { class TrafficServiceViewModel extends RestfulApiViewModel {
var trafficData = Rxn<TrafficServiceResponseModel>(); var trafficData = Rxn<TrafficServiceResponseModel>();
......
...@@ -8,6 +8,8 @@ import '../../../base/base_screen.dart'; ...@@ -8,6 +8,8 @@ import '../../../base/base_screen.dart';
import '../../../base/basic_state.dart'; import '../../../base/basic_state.dart';
import '../../../resources/base_color.dart'; import '../../../resources/base_color.dart';
import '../../../widgets/back_button.dart'; import '../../../widgets/back_button.dart';
import '../../../widgets/custom_navigation_bar.dart';
import '../../../widgets/custom_toast_message.dart';
import '../../../widgets/image_loader.dart'; import '../../../widgets/image_loader.dart';
import 'transaction_history_detail_viewmodel.dart'; import 'transaction_history_detail_viewmodel.dart';
import 'transaction_history_model.dart'; import 'transaction_history_model.dart';
...@@ -41,21 +43,14 @@ class _TransactionHistoryDetailScreenState extends BaseState<TransactionHistoryD ...@@ -41,21 +43,14 @@ class _TransactionHistoryDetailScreenState extends BaseState<TransactionHistoryD
Widget createBody() { Widget createBody() {
return Scaffold( return Scaffold(
backgroundColor: Colors.grey.shade100, backgroundColor: Colors.grey.shade100,
appBar: AppBar( appBar: CustomNavigationBar(
backgroundColor: Colors.white, title: 'Chi tiết giao dịch',
elevation: 0, leftButtons: canBack ? [CustomBackButton()] : [],
centerTitle: true, rightButtons: [
title: const Text(
'Chi tiết giao dịch',
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Colors.black87),
),
leading: canBack ? CustomBackButton() : SizedBox.shrink(),
actions: [
IconButton( IconButton(
icon: const Icon(Icons.headset_mic, size: 24, color: Colors.black), icon: const Icon(Icons.headset_mic, size: 24, color: Colors.black54),
onPressed: () { onPressed: () {
Get.toNamed(supportScreen); Get.toNamed(supportScreen);
// Xử lý khi nhấn nút hỗ trợ
}, },
), ),
], ],
...@@ -172,7 +167,7 @@ class _TransactionHistoryDetailScreenState extends BaseState<TransactionHistoryD ...@@ -172,7 +167,7 @@ class _TransactionHistoryDetailScreenState extends BaseState<TransactionHistoryD
icon: const Icon(Icons.copy, size: 16, color: BaseColor.primary500), icon: const Icon(Icons.copy, size: 16, color: BaseColor.primary500),
onPressed: () { onPressed: () {
Clipboard.setData(ClipboardData(text: data.transactionId ?? '')); Clipboard.setData(ClipboardData(text: data.transactionId ?? ''));
Get.snackbar('✔️', 'Đã sao chép mã giao dịch'); showToastMessage('Đã sao chép mã giao dịch');
}, },
), ),
), ),
......
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/screen/transaction/history/transaction_history_model.dart'; import 'package:mypoint_flutter_app/screen/transaction/history/transaction_history_model.dart';
import '../../../base/restful_api_viewmodel.dart'; import '../../../networking/restful_api_viewmodel.dart';
import '../../../configs/constants.dart'; import '../../../configs/constants.dart';
class TransactionHistoryDetailViewModel extends RestfulApiViewModel { class TransactionHistoryDetailViewModel extends RestfulApiViewModel {
......
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:get/get_core/src/get_main.dart'; import 'package:get/get_core/src/get_main.dart';
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import 'package:mypoint_flutter_app/shared/router_gage.dart'; import 'package:mypoint_flutter_app/shared/router_gage.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
import '../../base/restful_api_viewmodel.dart'; import '../../networking/restful_api_viewmodel.dart';
import '../../configs/constants.dart'; import '../../configs/constants.dart';
import '../../preference/contact_storage_service.dart'; import '../../preference/contact_storage_service.dart';
import '../../preference/data_preference.dart'; import '../../preference/data_preference.dart';
......
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/extensions/datetime_extensions.dart'; import 'package:mypoint_flutter_app/extensions/datetime_extensions.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import '../../base/restful_api_viewmodel.dart'; import '../../networking/restful_api_viewmodel.dart';
import 'history/transaction_category_model.dart'; import 'history/transaction_category_model.dart';
import 'history/transaction_history_response_model.dart'; import 'history/transaction_history_response_model.dart';
......
import 'dart:ui'; import 'dart:ui';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
import '../../../base/restful_api_viewmodel.dart'; import '../../../networking/restful_api_viewmodel.dart';
import '../../../configs/constants.dart'; import '../../../configs/constants.dart';
import '../../../shared/router_gage.dart'; import '../../../shared/router_gage.dart';
import '../models/product_model.dart'; import '../models/product_model.dart';
......
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/configs/constants.dart'; import 'package:mypoint_flutter_app/configs/constants.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import '../../../base/restful_api_viewmodel.dart'; import '../../../networking/restful_api_viewmodel.dart';
import '../../mobile_card/models/product_mobile_card_model.dart'; import '../../mobile_card/models/product_mobile_card_model.dart';
import '../models/my_product_status_type.dart'; import '../models/my_product_status_type.dart';
......
import 'package:get/get_rx/src/rx_types/rx_types.dart'; import 'package:get/get_rx/src/rx_types/rx_types.dart';
import 'package:mypoint_flutter_app/networking/restful_api.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client.dart';
import 'package:mypoint_flutter_app/networking/restful_api_request.dart'; import 'package:mypoint_flutter_app/networking/restful_api_client_all_request.dart';
import '../../../base/restful_api_viewmodel.dart'; import '../../../networking/restful_api_viewmodel.dart';
import '../../home/models/my_product_model.dart'; import '../../home/models/my_product_model.dart';
class MyProductListViewModel extends RestfulApiViewModel { class MyProductListViewModel extends RestfulApiViewModel {
......
...@@ -167,7 +167,7 @@ class _VoucherGridItem extends StatelessWidget { ...@@ -167,7 +167,7 @@ class _VoucherGridItem extends StatelessWidget {
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
), ),
PriceTagWidget(point: product.amountToBePaid ?? 0,), PriceTagWidget(point: product.amountToBePaid ?? 0, type: product.price?.method),
], ],
), ),
], ],
......
...@@ -120,7 +120,7 @@ class VoucherListItem extends StatelessWidget { ...@@ -120,7 +120,7 @@ class VoucherListItem extends StatelessWidget {
], ],
), ),
const SizedBox(height: 8), const SizedBox(height: 8),
PriceTagWidget(point: product.amountToBePaid ?? 0,), PriceTagWidget(point: product.amountToBePaid ?? 0, type: product.price?.method,),
], ],
), ),
), ),
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment