You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
car_common_app/lib/view_models/setting_options_view_model....

103 lines
3.3 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:mc_common_app/classes/consts.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/main.dart';
import 'package:mc_common_app/models/general_models/generic_resp_model.dart';
import 'package:mc_common_app/models/setting_utils_models/app_info_model.dart';
import 'package:mc_common_app/models/setting_utils_models/app_invitation_history_model.dart';
import 'package:mc_common_app/models/setting_utils_models/contact_infos_model.dart';
import 'package:mc_common_app/models/setting_utils_models/faqs_model.dart';
import 'package:mc_common_app/repositories/setting_options_repo.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/utils.dart';
import 'package:mc_common_app/view_models/base_view_model.dart';
import 'package:share_plus/share_plus.dart';
class SettingOptionsVM extends BaseVM {
final SettingOptionsRepo settingOptionsRepo;
SettingOptionsVM({required this.settingOptionsRepo});
List<FAQsModel> faqsList = [];
Future<void> getAllFaqs() async {
setState(ViewState.busy);
try {
faqsList = await settingOptionsRepo.getAllFaqs();
setState(ViewState.idle);
notifyListeners();
} catch (e) {
logger.i(e.toString());
Utils.showToast(e.toString());
setState(ViewState.idle);
}
}
List<ContactInfoModel> contactInfosList = [];
Future<void> getAllContactInfosList() async {
setState(ViewState.busy);
try {
contactInfosList = await settingOptionsRepo.getAllContactInfos();
setState(ViewState.idle);
notifyListeners();
} catch (e) {
logger.i(e.toString());
Utils.showToast(e.toString());
setState(ViewState.idle);
}
}
List<AppInfoModel> appInfoList = [];
Future<void> getAppInfoList() async {
setState(ViewState.busy);
try {
appInfoList = await settingOptionsRepo.getAppInfoList();
setState(ViewState.idle);
notifyListeners();
} catch (e) {
logger.i(e.toString());
Utils.showToast(e.toString());
setState(ViewState.idle);
}
}
List<AppInfoModel> termsAndConditionsList = [];
Future<void> getTermsAndConditions() async {
setState(ViewState.busy);
try {
termsAndConditionsList = await settingOptionsRepo.getTermsAndConditions();
setState(ViewState.idle);
notifyListeners();
} catch (e) {
logger.i(e.toString());
Utils.showToast(e.toString());
setState(ViewState.idle);
}
}
Future<void> appInvitationCreate({required BuildContext context, required InviteTypeEnum inviteTypeEnum}) async {
Utils.showLoading(context);
try {
GenericRespModel respModel = await settingOptionsRepo.appInvitationCreate(channelId: inviteTypeEnum.toIntFromEnum(), message: GlobalConsts.getAppInvitationLink());
await Utils.inviteFriend(inviteTypeEnum: inviteTypeEnum, message: GlobalConsts.getAppInvitationLink());
Utils.hideLoading(context);
} catch (e) {
logger.i(e.toString());
Utils.hideLoading(context);
}
}
List<AppInvitationHistoryModel> appInvitationHistoryList = [];
Future<void> getAppInvitationHistoryList() async {
try {
appInvitationHistoryList = await settingOptionsRepo.getAppInvitationsHistory();
} catch (e) {
logger.i(e.toString());
}
}
}