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.
106 lines
3.4 KiB
Dart
106 lines
3.4 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(BuildContext context) async {
|
|
Utils.showLoading(context);
|
|
try {
|
|
appInvitationHistoryList = await settingOptionsRepo.getAppInvitationsHistory();
|
|
Utils.hideLoading(context);
|
|
} catch (e) {
|
|
logger.i(e.toString());
|
|
Utils.hideLoading(context);
|
|
}
|
|
}
|
|
}
|