update pubspec

This commit is contained in:
2021-08-25 19:00:04 +06:30
parent 1b331e1f8e
commit a144c945b6
8 changed files with 315 additions and 293 deletions

View File

@@ -59,7 +59,7 @@ class _AppState extends State<App> {
final CartonSizeModel cartonSizeModel = new CartonSizeModel(); final CartonSizeModel cartonSizeModel = new CartonSizeModel();
final ProcessingModel processingModel = new ProcessingModel(); final ProcessingModel processingModel = new ProcessingModel();
AppTranslationsDelegate _newLocaleDelegate; late AppTranslationsDelegate _newLocaleDelegate;
@override @override
void initState() { void initState() {
@@ -81,7 +81,8 @@ class _AppState extends State<App> {
..addModel(cartonSizeModel) ..addModel(cartonSizeModel)
..addModel(processingModel); ..addModel(processingModel);
_newLocaleDelegate = AppTranslationsDelegate(newLocale: null); _newLocaleDelegate = AppTranslationsDelegate(
newLocale: Translation().supportedLocales().first);
Translation().onLocaleChanged = onLocaleChange; Translation().onLocaleChanged = onLocaleChange;
} }

View File

@@ -1,11 +1,16 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
enum Flavor { DEV, STAGING, PRODUCTION, LOCAL } enum Flavor { UNSET, DEV, STAGING, PRODUCTION, LOCAL }
const FlavorNames = ["Development", "Staging", "Production", "Local"]; const FlavorNames = ["Unset", "Development", "Staging", "Production", "Local"];
class Config { class Config {
static Config _instance; static Config _instance = Config(
flavor: Flavor.UNSET,
apiURL: "",
bucketName: "",
reportProjectID: "",
reportURL: "");
final Flavor flavor; final Flavor flavor;
final String name; final String name;
@@ -17,14 +22,14 @@ class Config {
final String bucketName; final String bucketName;
factory Config( factory Config(
{@required Flavor flavor, {required Flavor flavor,
@required String apiURL, required String apiURL,
@required String reportURL, required String reportURL,
@required String reportProjectID, required String reportProjectID,
@required String bucketName, required String bucketName,
Color color: Colors.blue, Color color: Colors.blue,
Level level: Level.SEVERE}) { Level level: Level.SEVERE}) {
_instance ??= Config._internal(flavor, FlavorNames[flavor.index], color, _instance = Config._internal(flavor, FlavorNames[flavor.index], color,
apiURL, reportURL, level, reportProjectID, bucketName); apiURL, reportURL, level, reportProjectID, bucketName);
Logger.root.level = level; Logger.root.level = level;

View File

@@ -6,7 +6,7 @@ import 'transalation.dart';
class AppTranslationsDelegate extends LocalizationsDelegate<AppTranslations> { class AppTranslationsDelegate extends LocalizationsDelegate<AppTranslations> {
final Locale newLocale; final Locale newLocale;
const AppTranslationsDelegate({this.newLocale}); const AppTranslationsDelegate({required this.newLocale});
@override @override
bool isSupported(Locale locale) { bool isSupported(Locale locale) {

View File

@@ -23,5 +23,5 @@ class Translation {
supportedLanguagesCodes.map<Locale>((language) => Locale(language, "")); supportedLanguagesCodes.map<Locale>((language) => Locale(language, ""));
//function to be invoked when changing the language //function to be invoked when changing the language
LocaleChangeCallback onLocaleChanged; LocaleChangeCallback? onLocaleChanged;
} }

View File

@@ -16,22 +16,22 @@ class PaginatorListener<T> {
List<String> ids = []; List<String> ids = [];
List<T> data = []; List<T> data = [];
DocumentSnapshot prev; DocumentSnapshot? prev;
int rowPerLoad = 10; int rowPerLoad = 10;
bool ended = false; bool ended = false;
bool isLoading = false; bool isLoading = false;
bool insertNewByListener = false; bool insertNewByListener = false;
ToObj toObj; ToObj toObj;
CallBack onChange; CallBack? onChange;
StreamSubscription<QuerySnapshot> listener; StreamSubscription<QuerySnapshot>? listener;
Query listeningQuery; Query? listeningQuery;
Query pageQuery; Query? pageQuery;
PaginatorListener(this.toObj, PaginatorListener(this.toObj,
{this.onChange, this.rowPerLoad = 10, this.insertNewByListener = false}); {this.onChange, this.rowPerLoad = 10, this.insertNewByListener = false});
Future<bool> refresh({Query listeningQuery, Query pageQuery}) { Future<bool> refresh({Query? listeningQuery, Query? pageQuery}) {
this.listeningQuery = listeningQuery ?? this.listeningQuery; this.listeningQuery = listeningQuery ?? this.listeningQuery;
this.pageQuery = pageQuery ?? this.pageQuery; this.pageQuery = pageQuery ?? this.pageQuery;
_clearState(); _clearState();
@@ -45,7 +45,7 @@ class PaginatorListener<T> {
data = []; data = [];
ended = false; ended = false;
isLoading = false; isLoading = false;
if (listener != null) listener.cancel(); if (listener != null) listener!.cancel();
listener = null; listener = null;
} }
@@ -58,35 +58,39 @@ class PaginatorListener<T> {
final String isDeletedField = 'is_deleted'; final String isDeletedField = 'is_deleted';
void _initListener() { void _initListener() {
Query _query = Query _query =
listeningQuery.orderBy(updateTimeField, descending: true).limit(1); listeningQuery!.orderBy(updateTimeField, descending: true).limit(1);
_query.getDocuments(source: Source.server).then((QuerySnapshot snapshot) { _query
int count = snapshot.documents.length; .get(GetOptions(source: Source.server))
.then((QuerySnapshot snapshot) {
int count = snapshot.docs.length;
int updateTime = 0; int updateTime = 0;
if (count == 1) { if (count == 1) {
updateTime = snapshot.documents[0].data[updateTimeField]; Map<String, dynamic> data =
snapshot.docs[0].data()! as Map<String, dynamic>;
updateTime = data[updateTimeField];
} }
Query _queryListener = listeningQuery Query _queryListener = listeningQuery!
.where(updateTimeField, isGreaterThan: updateTime) .where(updateTimeField, isGreaterThan: updateTime)
.orderBy(updateTimeField, descending: true); .orderBy(updateTimeField, descending: true);
if (listener != null) listener.cancel(); if (listener != null) listener!.cancel();
listener = listener =
_queryListener.snapshots(includeMetadataChanges: true).listen((qs) { _queryListener.snapshots(includeMetadataChanges: true).listen((qs) {
qs.documentChanges.forEach((c) { qs.docChanges.forEach((c) {
switch (c.type) { switch (c.type) {
case DocumentChangeType.added: case DocumentChangeType.added:
_update(c.document.documentID, c.document.data); _update(c.doc.id, c.doc.data() as Map<String, dynamic>);
break; break;
case DocumentChangeType.modified: case DocumentChangeType.modified:
_update(c.document.documentID, c.document.data); _update(c.doc.id, c.doc.data() as Map<String, dynamic>);
break; break;
case DocumentChangeType.removed: case DocumentChangeType.removed:
_remove(c.document.documentID, c.document.data); _remove(c.doc.id, c.doc.data() as Map<String, dynamic>);
break; break;
default: default:
} }
if (onChange != null) onChange(); if (onChange != null) onChange!();
}); });
}); });
}); });
@@ -129,26 +133,26 @@ class PaginatorListener<T> {
return this._load(); return this._load();
} }
Future<bool> _load({CallBack onStarted, CallBack onFinished}) async { Future<bool> _load({CallBack? onStarted, CallBack? onFinished}) async {
if (ended) return ended; if (ended) return ended;
Query _query = Query _query =
prev != null ? pageQuery.startAfterDocument(prev) : pageQuery; prev != null ? pageQuery!.startAfterDocument(prev!) : pageQuery!;
try { try {
isLoading = true; isLoading = true;
if (onStarted != null) { if (onStarted != null) {
onStarted(); onStarted();
} }
if (onChange != null) onChange(); if (onChange != null) onChange!();
await _query await _query
.where(isDeletedField, isEqualTo: false) .where(isDeletedField, isEqualTo: false)
.limit(rowPerLoad) .limit(rowPerLoad)
.getDocuments(source: Source.server) .get(GetOptions(source: Source.server))
.then((QuerySnapshot snapshot) { .then((QuerySnapshot snapshot) {
int count = snapshot.documents.length; int count = snapshot.docs.length;
ended = count < rowPerLoad; ended = count < rowPerLoad;
prev = count > 0 ? snapshot.documents[count - 1] : prev; prev = count > 0 ? snapshot.docs[count - 1] : prev;
snapshot.documents.forEach((e) { snapshot.docs.forEach((e) {
_add(e.documentID, e.data); _add(e.id, e.data() as Map<String, dynamic>);
}); });
}); });
} catch (e) { } catch (e) {
@@ -156,7 +160,7 @@ class PaginatorListener<T> {
} finally { } finally {
isLoading = false; isLoading = false;
if (onFinished != null) onFinished(); if (onFinished != null) onFinished();
if (onChange != null) onChange(); if (onChange != null) onChange!();
} }
return ended; return ended;
} }

View File

@@ -10,19 +10,17 @@ typedef OnScroll = void Function(bool down);
class PaginatorListView<T> extends StatelessWidget { class PaginatorListView<T> extends StatelessWidget {
final PaginatorListener<T> paginatorListener; final PaginatorListener<T> paginatorListener;
final RowBuilder rowBuilder; final RowBuilder rowBuilder;
final OnScroll onScroll; final OnScroll? onScroll;
final ScrollController _scrollController; final ScrollController _scrollController;
final Color color; final Color color;
PaginatorListView( PaginatorListView(
{Key key, {Key? key,
this.paginatorListener, required this.paginatorListener,
this.rowBuilder, required this.rowBuilder,
this.onScroll, this.onScroll,
this.color = Colors.blueAccent}) this.color = Colors.blueAccent})
: _scrollController = ScrollController(), : _scrollController = ScrollController(),
assert(paginatorListener != null),
assert(rowBuilder != null),
super(key: key) { super(key: key) {
_scrollController.addListener(() async { _scrollController.addListener(() async {
if (_scrollController.position.pixels == if (_scrollController.position.pixels ==
@@ -32,7 +30,7 @@ class PaginatorListView<T> extends StatelessWidget {
if (onScroll != null) { if (onScroll != null) {
var down = _scrollController.position.userScrollDirection == var down = _scrollController.position.userScrollDirection ==
ScrollDirection.forward; ScrollDirection.forward;
onScroll(down); onScroll!(down);
} }
}); });
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,58 +1,58 @@
name: fcs name: fcs
description: FCS Logistics description: FCS Logistics
publish_to: 'none' # Remove this line if you wish to publish to pub.dev publish_to: 'none'
version: 1.0.6+10
version: 1.0.6+9
environment: environment:
sdk: ">=2.7.0 <3.0.0" sdk: ">=2.12.0 <3.0.0"
dependencies: dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
cupertino_icons: ^0.1.3
flutter_localizations: flutter_localizations:
sdk: flutter sdk: flutter
firebase_core: ^0.4.3+2
cloud_firestore: ^0.13.0+1
firebase_storage: ^3.1.0
firebase_auth: ^0.16.1
#firebase_auth: ^0.15.5+3
firebase_messaging: ^6.0.15
provider: ^4.3.2+1 cupertino_icons: ^1.0.3
image_picker: ^0.6.0+9 firebase_core: ^1.5.0
shared_preferences: ^0.5.7+3 cloud_firestore: ^2.5.0
firebase_storage: ^10.0.2
firebase_auth: "^3.0.2"
# firebase_messaging: ^6.0.15
provider: ^6.0.0
image_picker: ^0.8.3+3
shared_preferences: ^2.0.7
progress: progress:
path: path:
../flutter/packages/progress ../mokkon-flutter/packages/progress
flutter_datetime_picker: ^1.3.8 flutter_datetime_picker: ^1.5.1
dio: ^3.0.9 dio: ^4.0.0
package_info: ^0.4.0+6 package_info: ^2.0.2
google_api_availability: ^2.0.1 google_api_availability: ^3.0.1
intl: ^0.16.0 intl: ^0.17.0
font_awesome_flutter: ^8.0.1 font_awesome_flutter: ^9.1.0
photo_view: ^0.9.0 photo_view: ^0.12.0
uuid: ^2.0.4 uuid: ^3.0.4
zefyr: # zefyr:
path_provider: ^1.6.11 path_provider: ^2.0.2
camera: ^0.4.2 camera: ^0.9.0
url_launcher: ^5.7.10 url_launcher: ^6.0.9
device_info: ^0.4.1+4 device_info: ^2.0.2
connectivity: ^2.0.2 connectivity: ^3.0.6
logging: ^0.11.4 logging: ^1.0.1
permission_handler: ^4.0.0 permission_handler: ^8.1.4+2
country_code_picker: ^1.3.12 country_code_picker: ^2.0.2
pin_input_text_field: pin_input_text_field: ^4.1.0
flutter_icons: ^1.1.0 # flutter_icons: ^1.1.0
country_icons: ^1.1.1 country_icons: ^2.0.2
timeline_list: ^0.0.5 timeline_list: ^0.0.5
barcode_scan: ^2.0.2 # barcode_scan: ^2.0.2
flutter_pdfview: ^1.0.3 barcode_scan2: ^4.1.4
flutter_local_notifications: ^1.4.4+4 flutter_pdfview: ^1.2.1
share: '>=0.6.5+4 <2.0.0' # flutter_local_notifications: ^8.1.1+1
cached_network_image: ^2.3.2+1 share: ^2.0.4
flutter_cache_manager: ^2.0.0 cached_network_image: ^3.1.0
flutter_cache_manager: ^3.1.2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: