firebase setup
This commit is contained in:
parent
0eb8d27bde
commit
7d3e2c5603
|
|
@ -1,36 +1,26 @@
|
|||
{
|
||||
"project_info": {
|
||||
"project_number": "186538881179",
|
||||
"project_id": "elektronika-app",
|
||||
"storage_bucket": "elektronika-app.appspot.com"
|
||||
"project_number": "283547367653",
|
||||
"project_id": "elektronikatm",
|
||||
"storage_bucket": "elektronikatm.appspot.com"
|
||||
},
|
||||
"client": [
|
||||
{
|
||||
"client_info": {
|
||||
"mobilesdk_app_id": "1:186538881179:android:96a2f9ce98f8bbf00f563e",
|
||||
"mobilesdk_app_id": "1:283547367653:android:c08fb01d915c3874487c0c",
|
||||
"android_client_info": {
|
||||
"package_name": "com.elektronika.tm"
|
||||
}
|
||||
},
|
||||
"oauth_client": [
|
||||
{
|
||||
"client_id": "186538881179-j5f608hapm9p4cmdo01fe6r8atca6ep8.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
],
|
||||
"oauth_client": [],
|
||||
"api_key": [
|
||||
{
|
||||
"current_key": "AIzaSyD9JBvYuGMFymroLwL9rYxkqB6u7EIaee0"
|
||||
"current_key": "AIzaSyAOMSH8EgasYe-vJkF7NNMFs42N27P2Ax4"
|
||||
}
|
||||
],
|
||||
"services": {
|
||||
"appinvite_service": {
|
||||
"other_platform_oauth_client": [
|
||||
{
|
||||
"client_id": "186538881179-j5f608hapm9p4cmdo01fe6r8atca6ep8.apps.googleusercontent.com",
|
||||
"client_type": 3
|
||||
}
|
||||
]
|
||||
"other_platform_oauth_client": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
buildscript {
|
||||
ext.kotlin_version = '1.6.10'
|
||||
ext.kotlin_version = '1.8.0'
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
|
|
@ -27,6 +27,6 @@ subprojects {
|
|||
project.evaluationDependsOn(':app')
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
tasks.register("clean", Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"file_generated_by": "FlutterFire CLI",
|
||||
"purpose": "FirebaseAppID & ProjectID for this Firebase app in this directory",
|
||||
"GOOGLE_APP_ID": "1:186538881179:ios:fb651acd4ce97d5d0f563e",
|
||||
"FIREBASE_PROJECT_ID": "elektronika-app",
|
||||
"GCM_SENDER_ID": "186538881179"
|
||||
"GOOGLE_APP_ID": "1:283547367653:ios:a0be3b851b594489487c0c",
|
||||
"FIREBASE_PROJECT_ID": "elektronikatm",
|
||||
"GCM_SENDER_ID": "283547367653"
|
||||
}
|
||||
|
|
@ -126,6 +126,7 @@ const Map<String, String> ruRu = {
|
|||
'payment_unsuccess': 'Платеж не прошел, повторите попытку позже!',
|
||||
'approve_lang': 'Продолжить',
|
||||
'select_language': 'Выберите язык',
|
||||
'profile':'Профиль',
|
||||
'profile': 'Профиль',
|
||||
'discounted_price': 'Товары со скидкой',
|
||||
'weekly_offers': 'Товар недели',
|
||||
};
|
||||
|
|
|
|||
|
|
@ -128,4 +128,5 @@ const Map<String, String> tmTM = {
|
|||
'select_language': 'Dili saýlaň',
|
||||
'profile': 'Profil',
|
||||
'discounted_price': 'Arzanladyşdaky harytlar',
|
||||
'weekly_offers': 'Hepdäniň pursatlary',
|
||||
};
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ Map<String, dynamic> _readAndroidBuildData(AndroidDeviceInfo build) {
|
|||
'tags': build.tags,
|
||||
'type': build.type,
|
||||
'isPhysicalDevice': build.isPhysicalDevice,
|
||||
'androidId': build.androidId,
|
||||
'androidId': build.id,
|
||||
'systemFeatures': build.systemFeatures,
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Future<String> downloadFile(String url, String filename) async {
|
|||
options: Options(
|
||||
responseType: ResponseType.bytes,
|
||||
followRedirects: false,
|
||||
receiveTimeout: 5000000,
|
||||
receiveTimeout: Duration(seconds: 5),
|
||||
));
|
||||
|
||||
final file = File(filePath);
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ class HttpUtil {
|
|||
HttpUtil._internal() {
|
||||
BaseOptions options = new BaseOptions(
|
||||
baseUrl: Constants.BASE_URL,
|
||||
connectTimeout: 100000,
|
||||
receiveTimeout: 50000,
|
||||
connectTimeout: Duration(seconds: 4),
|
||||
receiveTimeout: Duration(seconds: 5),
|
||||
headers: {},
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
);
|
||||
|
|
@ -35,9 +35,9 @@ class HttpUtil {
|
|||
return handler.next(response);
|
||||
},
|
||||
onError: (DioError e, handler) {
|
||||
ErrorEntity eInfo = createErrorEntity(e);
|
||||
// ErrorEntity eInfo = createErrorEntity(e);
|
||||
|
||||
switch (eInfo.code) {
|
||||
switch (e.response!.statusCode) {
|
||||
case 401: // No permission to log in again
|
||||
setLoginStatus(false);
|
||||
break;
|
||||
|
|
@ -48,60 +48,60 @@ class HttpUtil {
|
|||
));
|
||||
}
|
||||
|
||||
ErrorEntity createErrorEntity(DioError error) {
|
||||
switch (error.type) {
|
||||
case DioErrorType.cancel:
|
||||
return ErrorEntity(code: -1, message: 'Request cancellation');
|
||||
case DioErrorType.connectTimeout:
|
||||
return ErrorEntity(code: -1, message: 'Connection timed out');
|
||||
case DioErrorType.sendTimeout:
|
||||
return ErrorEntity(code: -1, message: 'Request timed out');
|
||||
case DioErrorType.receiveTimeout:
|
||||
return ErrorEntity(code: -1, message: 'Response timeout');
|
||||
case DioErrorType.response:
|
||||
{
|
||||
try {
|
||||
int? errCode = error.response?.statusCode;
|
||||
switch (errCode) {
|
||||
case 400:
|
||||
return ErrorEntity(code: errCode, message: 'Request syntax error');
|
||||
case 401:
|
||||
return ErrorEntity(code: errCode, message: 'Username or password incorrect');
|
||||
case 403:
|
||||
return ErrorEntity(code: errCode, message: 'Server refused to execute');
|
||||
case 404:
|
||||
return ErrorEntity(code: errCode, message: 'Can not reach server');
|
||||
case 405:
|
||||
return ErrorEntity(code: errCode, message: 'Request method is forbidden');
|
||||
case 405:
|
||||
return ErrorEntity(code: errCode, message: 'User already registered');
|
||||
case 500:
|
||||
return ErrorEntity(code: errCode, message: 'Server internal error');
|
||||
case 502:
|
||||
return ErrorEntity(code: errCode, message: 'Invalid request');
|
||||
case 503:
|
||||
return ErrorEntity(code: errCode, message: 'Server hung up');
|
||||
case 505:
|
||||
return ErrorEntity(code: errCode, message: 'Does not support HTTP protocol request');
|
||||
default:
|
||||
{
|
||||
// return ErrorEntity(code: errCode, message: 'Unknown error');
|
||||
return ErrorEntity(
|
||||
code: errCode,
|
||||
message: error.response?.statusMessage,
|
||||
);
|
||||
}
|
||||
}
|
||||
} on Exception catch (_) {
|
||||
return ErrorEntity(code: -1, message: 'Unknown error');
|
||||
}
|
||||
}
|
||||
default:
|
||||
{
|
||||
return ErrorEntity(code: -1, message: error.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
// ErrorEntity createErrorEntity(DioError error) {
|
||||
// switch (error.type) {
|
||||
// case DioErrorType.cancel:
|
||||
// return ErrorEntity(code: -1, message: 'Request cancellation');
|
||||
// case DioErrorType.connectTimeout:
|
||||
// return ErrorEntity(code: -1, message: 'Connection timed out');
|
||||
// case DioErrorType.sendTimeout:
|
||||
// return ErrorEntity(code: -1, message: 'Request timed out');
|
||||
// case DioErrorType.receiveTimeout:
|
||||
// return ErrorEntity(code: -1, message: 'Response timeout');
|
||||
// case DioErrorType.response:
|
||||
// {
|
||||
// try {
|
||||
// int? errCode = error.response?.statusCode;
|
||||
// switch (errCode) {
|
||||
// case 400:
|
||||
// return ErrorEntity(code: errCode, message: 'Request syntax error');
|
||||
// case 401:
|
||||
// return ErrorEntity(code: errCode, message: 'Username or password incorrect');
|
||||
// case 403:
|
||||
// return ErrorEntity(code: errCode, message: 'Server refused to execute');
|
||||
// case 404:
|
||||
// return ErrorEntity(code: errCode, message: 'Can not reach server');
|
||||
// case 405:
|
||||
// return ErrorEntity(code: errCode, message: 'Request method is forbidden');
|
||||
// case 405:
|
||||
// return ErrorEntity(code: errCode, message: 'User already registered');
|
||||
// case 500:
|
||||
// return ErrorEntity(code: errCode, message: 'Server internal error');
|
||||
// case 502:
|
||||
// return ErrorEntity(code: errCode, message: 'Invalid request');
|
||||
// case 503:
|
||||
// return ErrorEntity(code: errCode, message: 'Server hung up');
|
||||
// case 505:
|
||||
// return ErrorEntity(code: errCode, message: 'Does not support HTTP protocol request');
|
||||
// default:
|
||||
// {
|
||||
// // return ErrorEntity(code: errCode, message: 'Unknown error');
|
||||
// return ErrorEntity(
|
||||
// code: errCode,
|
||||
// message: error.response?.statusMessage,
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
// } on Exception catch (_) {
|
||||
// return ErrorEntity(code: -1, message: 'Unknown error');
|
||||
// }
|
||||
// }
|
||||
// default:
|
||||
// {
|
||||
// return ErrorEntity(code: -1, message: error.message);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
void cancelRequests(CancelToken token) {
|
||||
token.cancel('cancelled');
|
||||
|
|
@ -150,7 +150,8 @@ class HttpUtil {
|
|||
Map<String, dynamic>? authorization = await getAuthorizationHeader();
|
||||
requestOptions.headers!.addAll(authorization);
|
||||
|
||||
var response = await dio.get(path, queryParameters: queryParameters, options: requestOptions, cancelToken: cancelToken);
|
||||
var response =
|
||||
await dio.get(path, queryParameters: queryParameters, options: requestOptions, cancelToken: cancelToken);
|
||||
|
||||
return response.data;
|
||||
}
|
||||
|
|
@ -243,7 +244,7 @@ class HttpUtil {
|
|||
}
|
||||
|
||||
/// restful post form
|
||||
Future postForm(
|
||||
Future postForm(
|
||||
String path, {
|
||||
required Map<String, dynamic> data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import 'package:firebase_core/firebase_core.dart';
|
|||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
import '../../../firebase_options.dart';
|
||||
import '../../app.dart';
|
||||
|
|
@ -202,21 +203,40 @@ class FCMFunctions {
|
|||
}
|
||||
|
||||
Future<void> _performClickAction(RemoteMessage message) async {
|
||||
// if (message.data['type'] == 'product') {
|
||||
// final int productId = int.parse(message.data['id']);
|
||||
// final ProductModel? model = await ProductApi.getProductById(productId);
|
||||
// if (model != null) Get.to(() => ProductDetailsPage(model: model));
|
||||
// } else if (message.data['type'] == 'filter') {
|
||||
// message.data.remove('type');
|
||||
// navigateToProductListScreen(message.data, false);
|
||||
// } else {
|
||||
if (message.data['type'] == 'product') {
|
||||
final int productId = int.parse(message.data['id']);
|
||||
final ProductModel? model = await ProductApi.getProductById(productId);
|
||||
if (model != null) Get.to(() => ProductDetailsPage(model: model));
|
||||
} else if (message.data['type'] == 'category_id') {
|
||||
final args = {
|
||||
'type': 'category_id',
|
||||
'id': message.data['id'],
|
||||
'name':message.data['name']
|
||||
};
|
||||
navigateToProductListScreen(args);
|
||||
} else {
|
||||
// open dialog
|
||||
// if (message.notification == null) return;
|
||||
|
||||
// Get.to(
|
||||
// () => NotificationPage(title: message.notification!.title ?? '', data: message.notification!.body ?? ''),
|
||||
// );
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* @params send via firebase
|
||||
*
|
||||
* @params for product
|
||||
* {
|
||||
* "type": "product",
|
||||
* "id":1922
|
||||
* }
|
||||
* @params for category
|
||||
* {
|
||||
* "type": "category_id",
|
||||
* "id":2
|
||||
* "name": "Category Name",
|
||||
* }
|
||||
**/
|
||||
}
|
||||
|
||||
String? _getImageUrl(RemoteNotification notification) {
|
||||
|
|
|
|||
|
|
@ -39,6 +39,22 @@ class ProductApi {
|
|||
}
|
||||
}
|
||||
|
||||
static Future<ProductModel?> getProductById(int id) async {
|
||||
final String fnName = 'getProductById';
|
||||
|
||||
try {
|
||||
debugPrint('class: $className, method: $fnName, params: $id');
|
||||
|
||||
String path = Constants.BASE_URL + 'products/$id';
|
||||
|
||||
final response = await HttpUtil().get(path: path);
|
||||
|
||||
return ProductModel.fromJson(response['data']);
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static Future<Map<String, dynamic>?> getProductVariants(int productId) async {
|
||||
final String fnName = 'getProductVariants';
|
||||
|
||||
|
|
@ -62,7 +78,8 @@ class ProductApi {
|
|||
}
|
||||
}
|
||||
|
||||
static Future<List<ProductAdditionalInfoModel>?> getProductAdditionalInfo(int productId, Map<String, dynamic> params) async {
|
||||
static Future<List<ProductAdditionalInfoModel>?> getProductAdditionalInfo(
|
||||
int productId, Map<String, dynamic> params) async {
|
||||
final String fnName = 'getProductAdditionalInfo';
|
||||
|
||||
final List<ProductAdditionalInfoModel> list = [];
|
||||
|
|
|
|||
|
|
@ -56,9 +56,18 @@ class CustomAppbarWidget extends StatelessWidget implements PreferredSizeWidget
|
|||
controller.state.cartModel.value != null /* && controller.state.cartModel.value?.itemsQty != 0 */
|
||||
? badge.Badge(
|
||||
position: badge.BadgePosition.topEnd(top: -14),
|
||||
animationType: badge.BadgeAnimationType.scale,
|
||||
// animationType: badge.BadgeAnimationType.scale,
|
||||
// animationDuration: Duration(milliseconds: 300),
|
||||
// badgeColor: ThemeColor.mainColor.withOpacity(0.70),
|
||||
badgeAnimation: badge.BadgeAnimation.rotation(
|
||||
animationDuration: Duration(milliseconds: 300),
|
||||
colorChangeAnimationDuration: Duration(seconds: 1),
|
||||
curve: Curves.fastOutSlowIn,
|
||||
colorChangeAnimationCurve: Curves.easeInCubic,
|
||||
),
|
||||
badgeStyle: badge.BadgeStyle(
|
||||
badgeColor: ThemeColor.mainColor.withOpacity(0.70),
|
||||
),
|
||||
badgeContent: Text(
|
||||
controller.state.cartModel.value?.itemsQty.toString() ?? '',
|
||||
style: new TextStyle(
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ Widget cachedImageNetwork(
|
|||
child: url.contains('https://')
|
||||
? CachedNetworkImage(
|
||||
imageUrl: url,
|
||||
fit: boxFit,
|
||||
imageBuilder: (context, imageProvider) => Container(
|
||||
width: width,
|
||||
height: height,
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ class HorizontalScrollableProducts extends StatefulWidget {
|
|||
|
||||
class _HorizontalScrollableProductsState extends State<HorizontalScrollableProducts> {
|
||||
late PagewiseLoadController<ProductModel> pagewiseLoadController;
|
||||
bool hasData = true;
|
||||
|
||||
Future<void> initPageWiseController() async {
|
||||
pagewiseLoadController = PagewiseLoadController(
|
||||
|
|
@ -35,7 +36,13 @@ class _HorizontalScrollableProductsState extends State<HorizontalScrollableProdu
|
|||
this.widget.param.keys.first: this.widget.param.values.first,
|
||||
};
|
||||
|
||||
return await ProductApi.getHomePageProducts(apiParams, this.widget.param['url']);
|
||||
final data = await ProductApi.getHomePageProducts(apiParams, this.widget.param['url']);
|
||||
|
||||
setState(() {
|
||||
hasData = data.isNotEmpty;
|
||||
});
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
@ -46,7 +53,8 @@ class _HorizontalScrollableProductsState extends State<HorizontalScrollableProdu
|
|||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Column(
|
||||
return hasData
|
||||
? Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
|
|
@ -67,6 +75,7 @@ class _HorizontalScrollableProductsState extends State<HorizontalScrollableProdu
|
|||
itemBuilder: (_, model, i) => ItemBuilder(model: model),
|
||||
pageLoadController: pagewiseLoadController,
|
||||
// pageFuture: (pageIndex) => pc.fetchProducts(pageIndex!),
|
||||
|
||||
loadingBuilder: (context) {
|
||||
return Container(
|
||||
// To remove left padding 16
|
||||
|
|
@ -106,7 +115,8 @@ class _HorizontalScrollableProductsState extends State<HorizontalScrollableProdu
|
|||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
)
|
||||
: SizedBox.shrink();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ class CartOrderPage extends StatelessWidget {
|
|||
color: Colors.white,
|
||||
child: LoaderOverlay(
|
||||
useDefaultLoading: false,
|
||||
overlayColor: Colors.transparent,
|
||||
overlayWidget: CustomLoader(),
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.white, //ThemeColor.scaffoldBckColor,
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ class CartPage extends StatelessWidget {
|
|||
: model != null
|
||||
? LoaderOverlay(
|
||||
useDefaultLoading: false,
|
||||
overlayColor: Colors.transparent,
|
||||
overlayWidget: CustomLoader(),
|
||||
child: Container(
|
||||
color: Colors.white,
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ class CouponCodeTextFormField extends StatelessWidget {
|
|||
init: CartController(),
|
||||
builder: (cc) => LoaderOverlay(
|
||||
useDefaultLoading: false,
|
||||
overlayColor: Colors.transparent,
|
||||
overlayWidget: CustomLoader(),
|
||||
child: Container(
|
||||
padding: const EdgeInsets.only(left: 18),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:webview_flutter/webview_flutter.dart';
|
||||
|
|
@ -16,38 +14,30 @@ class PaymentWebView extends StatefulWidget {
|
|||
|
||||
class _PaymentWebViewState extends State<PaymentWebView> {
|
||||
bool _isLoading = true;
|
||||
final _key = UniqueKey();
|
||||
// final _key = UniqueKey();
|
||||
late WebViewController _controller;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
if (Platform.isAndroid) {
|
||||
WebView.platform = SurfaceAndroidWebView();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: CustomAppbarWidget(leading: AppBarBackBtn()),
|
||||
body: Stack(
|
||||
children: [
|
||||
WebView(
|
||||
key: _key,
|
||||
javascriptMode: JavascriptMode.unrestricted,
|
||||
initialUrl: widget.url,
|
||||
void _initWebViewController() {
|
||||
_controller = WebViewController()
|
||||
..setJavaScriptMode(JavaScriptMode.unrestricted)
|
||||
// ..setBackgroundColor(const Color(0x00000000))
|
||||
..setNavigationDelegate(
|
||||
NavigationDelegate(
|
||||
onProgress: (int progress) {
|
||||
debugPrint('WebView is loading (progress : $progress%)');
|
||||
// Update loading bar.
|
||||
},
|
||||
onPageStarted: (String url) {
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
},
|
||||
onPageFinished: (finish) {
|
||||
setState(() {
|
||||
_isLoading = false;
|
||||
});
|
||||
},
|
||||
navigationDelegate: (NavigationRequest request) {
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
onWebResourceError: (WebResourceError error) {},
|
||||
onNavigationRequest: (NavigationRequest request) {
|
||||
if (request.url.startsWith(Constants.BASE_URL_WEB + 'checkout/success')) {
|
||||
debugPrint('if');
|
||||
CartController cc = Get.put(CartController());
|
||||
|
|
@ -63,6 +53,26 @@ class _PaymentWebViewState extends State<PaymentWebView> {
|
|||
return NavigationDecision.navigate;
|
||||
},
|
||||
),
|
||||
)
|
||||
..loadRequest(Uri.parse(widget.url));
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_initWebViewController();
|
||||
// if (Platform.isAndroid) {
|
||||
// WebView.platform = SurfaceAndroidWebView();
|
||||
// }
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: CustomAppbarWidget(leading: AppBarBackBtn()),
|
||||
body: Stack(
|
||||
children: [
|
||||
WebViewWidget(controller: _controller),
|
||||
_isLoading
|
||||
? Center(
|
||||
child: CustomLoader(),
|
||||
|
|
|
|||
|
|
@ -110,6 +110,19 @@ class HomePage extends StatelessWidget {
|
|||
),
|
||||
|
||||
AppTheme.appSizeDivider30H,
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.only(left: 16.w, right: 16.w),
|
||||
child: HorizontalScrollableProducts(
|
||||
param: {
|
||||
'weekly': 1,
|
||||
'title': 'weekly_offers'.tr,
|
||||
'url': 'weeklyOffers',
|
||||
},
|
||||
),
|
||||
),
|
||||
|
||||
AppTheme.appSizeDivider30H,
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ class ProductDetailsPage extends StatelessWidget {
|
|||
top: false,
|
||||
child: LoaderOverlay(
|
||||
useDefaultLoading: false,
|
||||
overlayColor: Colors.transparent,
|
||||
overlayWidget: CustomLoader(),
|
||||
child: Scaffold(
|
||||
appBar: CustomAppbarWidget(leading: AppBarBackBtn()),
|
||||
|
|
|
|||
|
|
@ -23,14 +23,14 @@ class ProductAboutWidget extends StatelessWidget {
|
|||
child: Html(
|
||||
shrinkWrap: true,
|
||||
data: data,
|
||||
customRender: {
|
||||
'table': (context, child) {
|
||||
return SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: (context.tree as TableLayoutElement).toWidget(context),
|
||||
);
|
||||
},
|
||||
},
|
||||
// customRender: {
|
||||
// 'table': (context, child) {
|
||||
// return SingleChildScrollView(
|
||||
// scrollDirection: Axis.horizontal,
|
||||
// child: (context.tree as TableLayoutElement).toWidget(context),
|
||||
// );
|
||||
// },
|
||||
// },
|
||||
style: {
|
||||
// tables will have the below background color
|
||||
'table': Style(
|
||||
|
|
@ -40,13 +40,16 @@ class ProductAboutWidget extends StatelessWidget {
|
|||
'tr': Style(
|
||||
border: Border(bottom: BorderSide(color: ThemeColor.colorE5E5E5)),
|
||||
),
|
||||
'th': Style(
|
||||
padding: EdgeInsets.symmetric(vertical: 6),
|
||||
'th': Style(padding: HtmlPaddings.symmetric(vertical: 6)
|
||||
// EdgeInsets.symmetric(vertical: 6),
|
||||
),
|
||||
'td': Style(
|
||||
padding: EdgeInsets.symmetric(vertical: 16, horizontal: 8),
|
||||
padding: HtmlPaddings.symmetric(
|
||||
vertical: 16,
|
||||
horizontal: 8,
|
||||
), //EdgeInsets.symmetric(vertical: 16, horizontal: 8),
|
||||
// alignment: Alignment.topLeft,
|
||||
width: 0.45.sw,
|
||||
width: Width(0.45.sw), // 0.45.sw,
|
||||
),
|
||||
},
|
||||
),
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ class BSChooseSortMethod extends StatelessWidget {
|
|||
body: SingleChildScrollView(
|
||||
child: LoaderOverlay(
|
||||
useDefaultLoading: false,
|
||||
overlayColor: Colors.transparent,
|
||||
overlayWidget: CustomLoader(),
|
||||
child: Column(
|
||||
children: cc.state.sortModels
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ class PersonalInformationPage extends StatelessWidget {
|
|||
SizedBox(height: 50.h),
|
||||
LoaderOverlay(
|
||||
useDefaultLoading: false,
|
||||
overlayColor: Colors.transparent,
|
||||
overlayWidget: CustomLoader(),
|
||||
child: AddressList(
|
||||
title: 'our_address'.tr,
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ class WishlistsListWidget extends StatelessWidget {
|
|||
final bool isLastPage = wc.wlState.lastPage.value;
|
||||
return LoaderOverlay(
|
||||
useDefaultLoading: false,
|
||||
overlayColor: Colors.transparent,
|
||||
overlayWidget: CustomLoader(),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
|
|
|||
|
|
@ -50,20 +50,19 @@ class DefaultFirebaseOptions {
|
|||
}
|
||||
|
||||
static const FirebaseOptions android = FirebaseOptions(
|
||||
apiKey: 'AIzaSyD9JBvYuGMFymroLwL9rYxkqB6u7EIaee0',
|
||||
appId: '1:186538881179:android:96a2f9ce98f8bbf00f563e',
|
||||
messagingSenderId: '186538881179',
|
||||
projectId: 'elektronika-app',
|
||||
storageBucket: 'elektronika-app.appspot.com',
|
||||
apiKey: 'AIzaSyAOMSH8EgasYe-vJkF7NNMFs42N27P2Ax4',
|
||||
appId: '1:283547367653:android:c08fb01d915c3874487c0c',
|
||||
messagingSenderId: '283547367653',
|
||||
projectId: 'elektronikatm',
|
||||
storageBucket: 'elektronikatm.appspot.com',
|
||||
);
|
||||
|
||||
static const FirebaseOptions ios = FirebaseOptions(
|
||||
apiKey: 'AIzaSyCS07pxfuN62pBYCauLVRAWttTx0GSNDH0',
|
||||
appId: '1:186538881179:ios:fb651acd4ce97d5d0f563e',
|
||||
messagingSenderId: '186538881179',
|
||||
projectId: 'elektronika-app',
|
||||
storageBucket: 'elektronika-app.appspot.com',
|
||||
iosClientId: '186538881179-d39r6qso5iv98m8m60vev91gtsh8fs9o.apps.googleusercontent.com',
|
||||
apiKey: 'AIzaSyBeQk2PlPBPMGQ3JvhAmRjHb-Bpiu8j3H4',
|
||||
appId: '1:283547367653:ios:a0be3b851b594489487c0c',
|
||||
messagingSenderId: '283547367653',
|
||||
projectId: 'elektronikatm',
|
||||
storageBucket: 'elektronikatm.appspot.com',
|
||||
iosBundleId: 'com.elektronika.tm',
|
||||
);
|
||||
}
|
||||
|
|
|
|||
352
pubspec.lock
352
pubspec.lock
|
|
@ -13,10 +13,10 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: animate_do
|
||||
sha256: "4554744e604b841e2bde710398ef3f4f8a1935a182b48727afe2a1023527b883"
|
||||
sha256: "91b3e0306ba2096c7a7e1ee1ba96f491e25e92034c215f4bf8de6a7251c4bef1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
version: "3.1.2"
|
||||
archive:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -53,10 +53,10 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: badges
|
||||
sha256: "727580d938b7a1ff47ea42df730d581415606b4224cfa708671c10287f8d3fe6"
|
||||
sha256: a7b6bbd60dce418df0db3058b53f9d083c22cdb5132a052145dc267494df0b84
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.3"
|
||||
version: "3.1.2"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -105,22 +105,22 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
chewie:
|
||||
checked_yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: chewie
|
||||
sha256: "745e81e84c6d7f3835f89f85bb49771c0a66099e4caf8f8e9e9a372bc66fb2c1"
|
||||
name: checked_yaml
|
||||
sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.5.0"
|
||||
chewie_audio:
|
||||
version: "2.0.3"
|
||||
cli_util:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: chewie_audio
|
||||
sha256: "73948a8b9841d050433af3498a1f8b11320bd5a2cd70b449bdbe16d4405e97c5"
|
||||
name: cli_util
|
||||
sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.5.0"
|
||||
version: "0.4.0"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -173,66 +173,34 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: dbus
|
||||
sha256: "4f814fc7e73057f78f307a6c4714fe2ffb4bdb994ab1970540a068ec4d5a45be"
|
||||
sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.3"
|
||||
version: "0.7.8"
|
||||
device_info_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: device_info_plus
|
||||
sha256: c2386729379f04cd39ee0d5d4c48d8c8a0e70f7622dac626cbf5e396392602fd
|
||||
sha256: "7035152271ff67b072a211152846e9f1259cf1be41e34cd3e0b5463d2d6b8419"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.4"
|
||||
device_info_plus_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: device_info_plus_linux
|
||||
sha256: e4eb5db4704f5534e872148a21cfcd39581022b63df556da6720d88f7c9f91a9
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
device_info_plus_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: device_info_plus_macos
|
||||
sha256: "38871fd2ad31871399d8307630c9f4eb5941dd2c643ee221c44d58de95d367a1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.3"
|
||||
version: "9.1.0"
|
||||
device_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: device_info_plus_platform_interface
|
||||
sha256: b2743934f0efc3e291880d76fb341ea114b7e8417d77ee0f93bd21f5dfd3e8d2
|
||||
sha256: d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.6.1"
|
||||
device_info_plus_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: device_info_plus_web
|
||||
sha256: "38715ad1ef3bee8915dd7bee08a9ac9ab54472a8df425c887062a3046209f663"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
device_info_plus_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: device_info_plus_windows
|
||||
sha256: "8fb1403fc94636d6ab48aeebb5f9379f2ca51cde3b337167ec6f39db09234492"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "7.0.0"
|
||||
dio:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: dio
|
||||
sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8"
|
||||
sha256: "417e2a6f9d83ab396ec38ff4ea5da6c254da71e4db765ad737a42af6930140b7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.6"
|
||||
version: "5.3.3"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -245,10 +213,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
sha256: "13a6ccf6a459a125b3fcdb6ec73bd5ff90822e071207c663bfd1f70062d51d18"
|
||||
sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
version: "2.1.0"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -322,66 +290,50 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_html
|
||||
sha256: ccb810fcabfce3a7ffaca46e458323915ac7e7fc59082c7357ff848972c02230
|
||||
sha256: "02ad69e813ecfc0728a455e4bf892b9379983e050722b1dce00192ee2e41d1ee"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "3.0.0-beta.2"
|
||||
flutter_launcher_icons:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_launcher_icons
|
||||
sha256: "559c600f056e7c704bd843723c21e01b5fba47e8824bd02422165bcc02a5de1d"
|
||||
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.3"
|
||||
flutter_layout_grid:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_layout_grid
|
||||
sha256: "86c1b21520612edfbb93f189b3ec05058470570f3a5c08ce10c92cc76a6e814e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.6"
|
||||
version: "0.13.1"
|
||||
flutter_local_notifications:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_local_notifications
|
||||
sha256: f222919a34545931e47b06000836b5101baeffb0e6eb5a4691d2d42851740dd9
|
||||
sha256: "6d11ea777496061e583623aaf31923f93a9409ef8fcaeeefdd6cd78bf4fe5bb3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "12.0.4"
|
||||
version: "16.1.0"
|
||||
flutter_local_notifications_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_local_notifications_linux
|
||||
sha256: "6af440e3962eeab8459602c309d7d4ab9e62f05d5cfe58195a28f846a0b5d523"
|
||||
sha256: "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "4.0.0+1"
|
||||
flutter_local_notifications_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_local_notifications_platform_interface
|
||||
sha256: "5ec1feac5f7f7d9266759488bc5f76416152baba9aa1b26fe572246caa00d1ab"
|
||||
sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.0"
|
||||
flutter_math_fork:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_math_fork
|
||||
sha256: cfec964c4975c6becc64291eb9b782fe70df5e0c5bfe0763d9e856432fcc6fcd
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.2+2"
|
||||
version: "7.0.0+1"
|
||||
flutter_native_splash:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_native_splash
|
||||
sha256: bd36d1a7f05ff8378cad17d20c33ca904630bfd3fcf8b15c9e8237efbccfad0a
|
||||
sha256: "5bf4c3e5e5a0426c1e2fc8ca3555a9e617e76369c3442e1dae8385c7767ba97a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.0+1"
|
||||
version: "2.3.4"
|
||||
flutter_rating_bar:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -402,18 +354,18 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_staggered_grid_view
|
||||
sha256: "1312314293acceb65b92754298754801b0e1f26a1845833b740b30415bbbcf07"
|
||||
sha256: "19e7abb550c96fbfeb546b23f3ff356ee7c59a019a651f8f102a4ba9b7349395"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.2"
|
||||
version: "0.7.0"
|
||||
flutter_svg:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_svg
|
||||
sha256: "9ac1967e2f72a08af11b05b39167920f90d043cf67163d13a544a358c8f31afa"
|
||||
sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.22.0"
|
||||
version: "2.0.7"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
|
|
@ -460,18 +412,18 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: image
|
||||
sha256: "02bafd3b4f399bfeb10034deba9753d93b55ce41cd0c4d3d8b355626f80e5b32"
|
||||
sha256: "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.3"
|
||||
version: "4.1.3"
|
||||
intl:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: intl
|
||||
sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
|
||||
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.17.0"
|
||||
version: "0.18.1"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -480,14 +432,30 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.7"
|
||||
json_annotation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: json_annotation
|
||||
sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.8.1"
|
||||
lint:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: lint
|
||||
sha256: "4a539aa34ec5721a2c7574ae2ca0336738ea4adc2a34887d54b7596310b33c85"
|
||||
sha256: f4bd4dbaa39f4ae8836f2d1275f2f32bc68b3a8cce0a0735dd1f7a601f06682a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
version: "2.1.2"
|
||||
list_counter:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: list_counter
|
||||
sha256: c447ae3dfcd1c55f0152867090e67e219d42fe6d4f2807db4bbe8b8d69912237
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
loader_overlay:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -545,22 +513,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.1.3"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: nested
|
||||
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
numerus:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: numerus
|
||||
sha256: "0087ef729d63b96cb347a9c44b9c592f21cecb3605b415bbd18710aef80ce5cb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
octo_image:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -577,22 +529,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.8.3"
|
||||
path_drawing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_drawing
|
||||
sha256: "3bdd251dae9ffaef944450b73f168610db7e968e7b20daf0c3907f8b4aafc8a2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.1+1"
|
||||
path_parsing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_parsing
|
||||
sha256: ee5c47c1058ad66b4a41746ec3996af9593d0858872807bcd64ac118f0700337
|
||||
sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.1"
|
||||
version: "1.0.1"
|
||||
path_provider:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -637,10 +581,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_windows
|
||||
sha256: a34ecd7fb548f8e57321fd8e50d865d266941b54e6c3b7758cf8f37c24116905
|
||||
sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.7"
|
||||
version: "2.2.1"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -653,10 +597,10 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: pin_code_fields
|
||||
sha256: c8652519d14688f3fe2a8288d86910a46aa0b9046d728f292d3bf6067c31b4c7
|
||||
sha256: "4c0db7fbc889e622e7c71ea54b9ee624bb70c7365b532abea0271b17ea75b729"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.4.0"
|
||||
version: "8.0.1"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -689,22 +633,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.2.4"
|
||||
provider:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: provider
|
||||
sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.5"
|
||||
quiver:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: quiver
|
||||
sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.1"
|
||||
roundcheckbox:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
@ -781,10 +709,10 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: shimmer
|
||||
sha256: "1f1009b5845a1f88f1c5630212279540486f97409e9fc3f63883e71070d107bf"
|
||||
sha256: "5f88c883a22e9f9f299e5ba0e4f7e6054857224976a5d9f839d4ebdc94a14ac9"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "3.0.0"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
|
|
@ -894,14 +822,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.2"
|
||||
tuple:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: tuple
|
||||
sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -990,6 +910,30 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.1.0"
|
||||
vector_graphics:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics
|
||||
sha256: b16dadf7eb610e20da044c141b4a0199a5e8082ca21daba68322756f953ce714
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9"
|
||||
vector_graphics_codec:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics_codec
|
||||
sha256: a4b01403d5c613db115e30e71eca33f7e9e09f2d3c52c3fb84e16333ecddc539
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9"
|
||||
vector_graphics_compiler:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vector_graphics_compiler
|
||||
sha256: d26c0e2f237476426523eb25512e4c09fa27c6d33ed659a0e69d79e20b5dc47f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.9"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -998,86 +942,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.4"
|
||||
video_player:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player
|
||||
sha256: "74b86e63529cf5885130c639d74cd2f9232e7c8a66cbecbddd1dcb9dbd060d1e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.7.2"
|
||||
video_player_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_android
|
||||
sha256: "3fe89ab07fdbce786e7eb25b58532d6eaf189ceddc091cb66cba712f8d9e8e55"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.10"
|
||||
video_player_avfoundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_avfoundation
|
||||
sha256: "6387c2de77763b45104256b3b00b660089be4f909ded8631457dc11bf635e38f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.5.0"
|
||||
video_player_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_platform_interface
|
||||
sha256: be72301bf2c0150ab35a8c34d66e5a99de525f6de1e8d27c0672b836fe48f73a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.1"
|
||||
video_player_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: video_player_web
|
||||
sha256: "2dd24f7ba46bfb5d070e9c795001db95e0ca5f2a3d025e98f287c10c9f0fd62f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
wakelock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock
|
||||
sha256: "769ecf42eb2d07128407b50cb93d7c10bd2ee48f0276ef0119db1d25cc2f87db"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.2"
|
||||
wakelock_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_macos
|
||||
sha256: "047c6be2f88cb6b76d02553bca5a3a3b95323b15d30867eca53a19a0a319d4cd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.0"
|
||||
wakelock_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_platform_interface
|
||||
sha256: "1f4aeb81fb592b863da83d2d0f7b8196067451e4df91046c26b54a403f9de621"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.3.0"
|
||||
wakelock_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_web
|
||||
sha256: "1b256b811ee3f0834888efddfe03da8d18d0819317f20f6193e2922b41a501b5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.0"
|
||||
wakelock_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_windows
|
||||
sha256: "108b1b73711f1664ee462e73af34a9286ff496e27d4d8371e2fb4da8fde4cdac"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -1090,42 +954,50 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: webview_flutter
|
||||
sha256: "6886b3ceef1541109df5001054aade5ee3c36b5780302e41701c78357233721c"
|
||||
sha256: c1ab9b81090705c6069197d9fdc1625e587b52b8d70cdde2339d177ad0dbb98e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.8.0"
|
||||
version: "4.4.1"
|
||||
webview_flutter_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_android
|
||||
sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd"
|
||||
sha256: b0cd33dd7d3dd8e5f664e11a19e17ba12c352647269921a3b568406b001f1dff
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.10.4"
|
||||
version: "3.12.0"
|
||||
webview_flutter_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_platform_interface
|
||||
sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf"
|
||||
sha256: "6d9213c65f1060116757a7c473247c60f3f7f332cac33dc417c9e362a9a13e4f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.9.5"
|
||||
version: "2.6.0"
|
||||
webview_flutter_wkwebview:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_wkwebview
|
||||
sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0
|
||||
sha256: "30b9af6bdd457b44c08748b9190d23208b5165357cc2eb57914fee1366c42974"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.9.5"
|
||||
version: "3.9.1"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
sha256: c0e3a4f7be7dae51d8f152230b86627e3397c1ba8c3fa58e63d44a9f3edc9cef
|
||||
sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.6.1"
|
||||
version: "5.0.9"
|
||||
win32_registry:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32_registry
|
||||
sha256: "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.2"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
@ -1138,10 +1010,10 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
sha256: "80d494c09849dc3f899d227a78c30c5b949b985ededf884cb3f3bcd39f4b447a"
|
||||
sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.4.1"
|
||||
version: "6.3.0"
|
||||
yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
|||
30
pubspec.yaml
30
pubspec.yaml
|
|
@ -14,9 +14,9 @@ dependencies:
|
|||
cupertino_icons: ^1.0.2
|
||||
flutter_screenutil: ^5.5.3+2
|
||||
get: ^4.6.5
|
||||
flutter_svg: ^0.22.0
|
||||
badges: ^2.0.1
|
||||
dio: ^4.0.0
|
||||
flutter_svg: ^2.0.7
|
||||
badges: ^3.1.2
|
||||
dio: ^5.3.3
|
||||
carousel_slider: ^4.0.0
|
||||
smooth_page_indicator: ^1.0.0+2 # indicators used on images
|
||||
cached_network_image: ^3.2.1
|
||||
|
|
@ -27,34 +27,34 @@ dependencies:
|
|||
url: https://github.com/followthemoney1/modal_bottom_sheet.git
|
||||
ref: main
|
||||
path: modal_bottom_sheet
|
||||
pin_code_fields: ^7.3.0
|
||||
pin_code_fields: ^8.0.1
|
||||
path_provider: ^2.0.6
|
||||
animate_do: ^2.1.0
|
||||
animate_do: ^3.1.2
|
||||
flutter_rating_bar: ^4.0.0
|
||||
mask_text_input_formatter: ^2.0.0
|
||||
snapping_sheet: ^3.1.0 # draggable bottom_sheet:
|
||||
shared_preferences: ^2.0.12
|
||||
flutter_html: ^2.2.1 # try to remove, use webview_flutter
|
||||
flutter_html: ^3.0.0-beta.2 # try to remove, use webview_flutter
|
||||
html: ^0.15.0 # used for parse html
|
||||
loader_overlay: ^2.0.7
|
||||
device_info_plus: ^3.2.1
|
||||
intl: ^0.17.0
|
||||
loader_overlay: ^2.3.2
|
||||
device_info_plus: ^9.1.0
|
||||
intl: ^0.18.1
|
||||
roundcheckbox: ^2.0.4+1
|
||||
multi_select_flutter: ^4.1.2
|
||||
shimmer: ^2.0.0
|
||||
flutter_staggered_grid_view: ^0.6.1
|
||||
shimmer: ^3.0.0
|
||||
flutter_staggered_grid_view: ^0.7.0
|
||||
url_launcher: ^6.1.5
|
||||
webview_flutter: ^2.8.0
|
||||
webview_flutter: ^4.4.1
|
||||
firebase_messaging: ^14.1.1
|
||||
firebase_core: ^2.3.0
|
||||
flutter_local_notifications: ^12.0.4
|
||||
flutter_local_notifications: ^16.1.0
|
||||
flutter_native_splash: ^2.2.0+1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
lint: ^1.7.2
|
||||
flutter_launcher_icons: "^0.9.2"
|
||||
lint: ^2.1.2
|
||||
flutter_launcher_icons: ^0.13.1
|
||||
|
||||
flutter_native_splash:
|
||||
image: assets/logo/icon-rounded.png
|
||||
|
|
|
|||
Loading…
Reference in New Issue