feat : apk installer

This commit is contained in:
2025-07-19 15:35:07 +03:30
parent 69945a29cf
commit 3683e8a9e6
15 changed files with 641 additions and 79 deletions

View File

@@ -1,56 +1,53 @@
library;
//models
export 'data/model/pagination_model/pagination_model.dart';
export 'package:android_intent_plus/android_intent.dart';
export 'package:android_intent_plus/flag.dart';
export 'package:device_info_plus/device_info_plus.dart';
export 'package:dio/dio.dart';
//other packages
export 'package:flutter_localizations/flutter_localizations.dart';
export 'package:flutter_map/flutter_map.dart';
export 'package:flutter_map_animations/flutter_map_animations.dart';
export 'package:flutter_rating_bar/flutter_rating_bar.dart';
export 'package:flutter_screenutil/flutter_screenutil.dart';
export 'package:flutter_secure_storage/flutter_secure_storage.dart';
export 'package:flutter_slidable/flutter_slidable.dart';
export 'package:font_awesome_flutter/font_awesome_flutter.dart';
export 'package:device_info_plus/device_info_plus.dart';
export 'package:dio/dio.dart';
export 'package:pretty_dio_logger/pretty_dio_logger.dart';
export 'package:flutter_screenutil/flutter_screenutil.dart';
//freezed
export 'package:freezed_annotation/freezed_annotation.dart';
export 'package:geolocator/geolocator.dart';
export 'package:get/get.dart' hide FormData, MultipartFile, Response;
//di
export 'package:get_it/get_it.dart';
export 'injection/di.dart';
//local storage
export 'package:hive_ce_flutter/hive_flutter.dart';
export 'infrastructure/local/hive_local_storage.dart';
///image picker
export 'package:image_picker/image_picker.dart';
//encryption
//export 'package:encrypt/encrypt.dart' show Encrypted;
//Map and location
export 'package:latlong2/latlong.dart';
export 'package:path_provider/path_provider.dart';
export 'package:permission_handler/permission_handler.dart' hide ServiceStatus;
export 'package:persian_datetime_picker/persian_datetime_picker.dart';
export 'package:pretty_dio_logger/pretty_dio_logger.dart';
export 'package:rasadyar_core/presentation/common/common.dart';
export 'package:rasadyar_core/presentation/utils/utils.dart';
export 'package:rasadyar_core/presentation/widget/widget.dart';
//models
export 'data/model/pagination_model/pagination_model.dart';
//infrastructure
export 'infrastructure/infrastructure.dart';
///image picker
export 'package:image_picker/image_picker.dart';
//utils
export 'utils/logger_utils.dart';
export 'utils/network/network.dart';
export 'infrastructure/local/hive_local_storage.dart';
export 'injection/di.dart';
export 'utils/extension/date_time_utils.dart';
export 'utils/extension/num_utils.dart';
export 'utils/map_utils.dart';
export 'utils/route_utils.dart';
export 'utils/extension/string_utils.dart';
//utils
export 'utils/logger_utils.dart';
export 'utils/map_utils.dart';
export 'utils/network/network.dart';
export 'utils/route_utils.dart';
export 'utils/separator_input_formatter.dart';

View File

@@ -4,14 +4,17 @@ import 'package:rasadyar_core/core.dart';
class DioRemote implements IHttpClient {
String? baseUrl;
late Dio dio;
final AppInterceptor interceptors;
AppInterceptor? interceptors;
DioRemote({this.baseUrl, required this.interceptors});
DioRemote({this.baseUrl, this.interceptors});
@override
Future<void> init() async {
dio = Dio(BaseOptions(baseUrl: baseUrl ?? ''));
dio.interceptors.add(interceptors);
if (interceptors != null) {
dio.interceptors.add(interceptors!);
}
if (kDebugMode) {
dio.interceptors.add(
PrettyDioLogger(

View File

@@ -1,2 +1,3 @@
export 'delete_dialog.dart';
export 'warning_dialog.dart';
export 'warning_dialog.dart';
export 'update_dialog.dart';

View File

@@ -0,0 +1,53 @@
import 'dart:io';
import 'package:rasadyar_core/core.dart';
Future<void> requiredUpdateDialog({required Future<void> Function() onConfirm}) async {
await Get.defaultDialog(
barrierDismissible: false,
onWillPop: () async => false,
title: 'بروزرسانی',
middleText: 'برای استفاده از امکانات برنامه لطفا برنامه را بروز رسانی نمایید.',
confirm: RElevated(
height: 40.h,
width: 150.w,
text: 'خروج',
backgroundColor: AppColor.error,
onPressed: () {
exit(0);
},
),
cancel: RElevated(
height: 40.h,
width: 150.w,
text: 'بروز رسانی',
onPressed: onConfirm,
backgroundColor: AppColor.greenNormal,
),
);
}
Future<void> optionalUpdateDialog({required Future<void> Function() onConfirm}) async {
await Get.defaultDialog(
barrierDismissible: false,
onWillPop: () async => false,
title: 'بروزرسانی',
middleText: 'برای استفاده از امکانات جدید برنامه می توانید آن را بروزرسانی نمایید.',
confirm: RElevated(
height: 40.h,
width: 150.w,
text: 'ادامه',
backgroundColor: AppColor.error,
onPressed: () => Get.back(),
),
cancel: RElevated(
height: 40.h,
width: 150.w,
text: 'بروز رسانی',
onPressed: onConfirm,
backgroundColor: AppColor.greenNormal,
),
);
}