commit
4e96c2fd2f
@ -1,5 +1,6 @@
|
|||||||
|
#Mon Nov 04 14:28:07 AST 2024
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|||||||
@ -1,11 +1,26 @@
|
|||||||
include ':app'
|
pluginManagement {
|
||||||
|
def flutterSdkPath = {
|
||||||
|
def properties = new Properties()
|
||||||
|
file("local.properties").withInputStream { properties.load(it) }
|
||||||
|
def flutterSdkPath = properties.getProperty("flutter.sdk")
|
||||||
|
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
|
||||||
|
return flutterSdkPath
|
||||||
|
}()
|
||||||
|
|
||||||
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
|
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
|
||||||
def properties = new Properties()
|
|
||||||
|
|
||||||
assert localPropertiesFile.exists()
|
repositories {
|
||||||
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
def flutterSdkPath = properties.getProperty("flutter.sdk")
|
plugins {
|
||||||
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
|
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||||
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
|
id "com.android.application" version '8.7.0' apply false
|
||||||
|
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
include ":app"
|
||||||
@ -1,151 +0,0 @@
|
|||||||
import 'dart:io';
|
|
||||||
import 'package:car_provider_app/config/provider_routes.dart';
|
|
||||||
import 'package:car_provider_app/views/branch_management/branch/dealer/widget/add_phone_num_wiget.dart';
|
|
||||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
|
||||||
import 'package:flutter/cupertino.dart';
|
|
||||||
import 'package:mc_common_app/classes/app_state.dart';
|
|
||||||
import 'package:mc_common_app/config/dependency_injection.dart';
|
|
||||||
import 'package:mc_common_app/generated/locale_keys.g.dart';
|
|
||||||
import 'package:mc_common_app/main.dart';
|
|
||||||
import 'package:mc_common_app/models/user_models/image_response.dart';
|
|
||||||
import 'package:mc_common_app/repositories/user_repo.dart';
|
|
||||||
import 'package:mc_common_app/services/common_services.dart';
|
|
||||||
import 'package:mc_common_app/utils/enums.dart';
|
|
||||||
import 'package:mc_common_app/utils/navigator.dart';
|
|
||||||
import 'package:mc_common_app/view_models/shipping_management_view_model.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'package:mc_common_app/utils/location/Location.dart';
|
|
||||||
import 'package:mc_common_app/utils/shared_prefrence.dart';
|
|
||||||
import 'package:mc_common_app/utils/utils.dart';
|
|
||||||
import 'package:mc_common_app/view_models/ad_view_model.dart';
|
|
||||||
import 'package:mc_common_app/view_models/appointments_view_model.dart';
|
|
||||||
import 'package:mc_common_app/view_models/base_view_model.dart';
|
|
||||||
import 'package:mc_common_app/widgets/bottom_sheet.dart';
|
|
||||||
import 'package:mc_common_app/view_models/chat_view_model.dart';
|
|
||||||
import 'package:mc_common_app/view_models/requests_view_model.dart';
|
|
||||||
import 'package:mc_common_app/view_models/service_view_model.dart';
|
|
||||||
import 'package:mc_common_app/view_models/subscriptions_view_model.dart';
|
|
||||||
|
|
||||||
class DashboardVM extends BaseVM {
|
|
||||||
final CommonAppServices commonServices;
|
|
||||||
final UserRepo userRepo;
|
|
||||||
|
|
||||||
DashboardVM({required this.commonServices, required this.userRepo});
|
|
||||||
|
|
||||||
String pickedImage = "";
|
|
||||||
|
|
||||||
int selectedNavbarBarIndex = 2;
|
|
||||||
|
|
||||||
void onNavbarTapped(int index) async {
|
|
||||||
logger.i(AppState().getDeviceToken);
|
|
||||||
selectedNavbarBarIndex = index;
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
void pickImageFromPhone(BuildContext context, int sourceFlag) async {
|
|
||||||
final File? pickedImageFile = await commonServices.pickImageFromPhone(sourceFlag);
|
|
||||||
if (pickedImageFile == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int sizeInBytes = pickedImageFile.lengthSync();
|
|
||||||
if (sizeInBytes > 1000000) {
|
|
||||||
Utils.showToast(LocaleKeys.fileLarger.tr());
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
String image64 = Utils.convertFileToBase64(pickedImageFile);
|
|
||||||
|
|
||||||
Utils.showLoading(context);
|
|
||||||
ImageResponse response = await userRepo.updateUserImage(image64);
|
|
||||||
Utils.hideLoading(context);
|
|
||||||
Navigator.pop(context);
|
|
||||||
if (response.messageStatus == 1) {
|
|
||||||
Utils.showToast(LocaleKeys.imageUploaded.tr());
|
|
||||||
AppState().getUser.data!.userInfo!.userImageUrl = response.data;
|
|
||||||
} else {
|
|
||||||
Utils.showToast(response.message ?? "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<ImageResponse> updateUserImage(String image) async {
|
|
||||||
return await userRepo.updateUserImage(image);
|
|
||||||
}
|
|
||||||
|
|
||||||
fetchUsernameAndLocation() async {
|
|
||||||
String userName = await SharedPrefManager.getPhoneOrEmail();
|
|
||||||
Location.getCurrentLocation(
|
|
||||||
(LatLng? latlng) {
|
|
||||||
AppState().currentLocation = latlng ?? const LatLng(0, 0);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> onRefresh(BuildContext context) async {
|
|
||||||
final requestsVM = context.read<RequestsVM>();
|
|
||||||
final chatVM = context.read<ChatVM>();
|
|
||||||
final appointmentVM = context.read<AppointmentsVM>();
|
|
||||||
final shippingManagementVM = context.read<ShippingManagementVM>();
|
|
||||||
final serviceVM = context.read<ServiceVM>();
|
|
||||||
final adVm = context.read<AdVM>();
|
|
||||||
final subscriptionsVM = context.read<SubscriptionsVM>();
|
|
||||||
requestsVM.populateDataForRequestsFilter();
|
|
||||||
appointmentVM.populateAppointmentsFilterList();
|
|
||||||
shippingManagementVM.populateShippingRequestFilterList();
|
|
||||||
await serviceVM.getBranchAndServices();
|
|
||||||
await appointmentVM.getMyAppointmentsForProvider({"ServiceProviderID": injector.get<AppState>().getUser.data?.userInfo?.providerId.toString() ?? "0"});
|
|
||||||
adVm.populateAdsFilterList();
|
|
||||||
await chatVM.buildHubConnection(context);
|
|
||||||
await adVm.getMyAds();
|
|
||||||
await adVm.getExploreAds();
|
|
||||||
await adVm.getVehicleTypes();
|
|
||||||
await adVm.getVehicleAdsDuration();
|
|
||||||
await requestsVM.getRequests();
|
|
||||||
// await subscriptionsVM.getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
|
|
||||||
await subscriptionsVM.getSubscriptionBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "", true);
|
|
||||||
// await subscriptionsVM.getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "");
|
|
||||||
}
|
|
||||||
|
|
||||||
void checkUserSubscription(SubscriptionActionTypeEnum actionType, BuildContext context, {required Function() callback}) async {
|
|
||||||
switch (actionType) {
|
|
||||||
case SubscriptionActionTypeEnum.ads:
|
|
||||||
performCheckOnAds(context);
|
|
||||||
break;
|
|
||||||
case SubscriptionActionTypeEnum.users:
|
|
||||||
performCheckOnUsers(context, callback);
|
|
||||||
break;
|
|
||||||
case SubscriptionActionTypeEnum.branches:
|
|
||||||
performCheckOnBranches(context);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void performCheckOnBranches(BuildContext context) async {
|
|
||||||
if (AppState().getproviderSubscription.isNotEmpty && AppState().getproviderSubscription.first.branchesRemaining! > 0) {
|
|
||||||
logger.d(AppState().getproviderSubscription.first.toJson());
|
|
||||||
await navigateWithName(context, ProviderAppRoutes.defineBranch);
|
|
||||||
} else {
|
|
||||||
Utils.showToast("Upgrade your subscription to add more Branches.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void performCheckOnAds(BuildContext context) async {
|
|
||||||
//adsRemaining
|
|
||||||
if (AppState().getproviderSubscription.isNotEmpty && AppState().getproviderSubscription.first.adsRemaining! > 0) {
|
|
||||||
logger.d(AppState().getproviderSubscription.first.toJson());
|
|
||||||
await navigateWithName(context, ProviderAppRoutes.defineBranch);
|
|
||||||
} else {
|
|
||||||
Utils.showToast("Upgrade your subscription to add more Ads.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void performCheckOnUsers(BuildContext context, Function() callBack) async {
|
|
||||||
if (AppState().getproviderSubscription.isNotEmpty && AppState().getproviderSubscription.first.subUsersRemaining! > 0) {
|
|
||||||
logger.d(AppState().getproviderSubscription.first.toJson());
|
|
||||||
showMyBottomSheet(context, isDismissible: false, child: const AddPhoneNumWidget(), callBackFunc: callBack);
|
|
||||||
} else {
|
|
||||||
Utils.showToast("Upgrade your subscription to add more Sub Users.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue