null safety

This commit is contained in:
phyothandar
2021-09-10 16:48:21 +06:30
parent 03c5fc5016
commit bb4f4ad7c2
40 changed files with 393 additions and 352 deletions

View File

@@ -16,9 +16,9 @@ import 'package:path/path.dart' as Path;
class PackageModel extends BaseModel {
final log = Logger('PackageModel');
PaginatorListener? packages;
PaginatorListener? customerPackages;
PaginatorListener? activePackages;
late PaginatorListener<Package> packages;
late PaginatorListener<Package> customerPackages;
late PaginatorListener<Package> activePackages;
bool isLoading = false;
int _menuSelectedIndex = 1;
@@ -63,15 +63,16 @@ class PackageModel extends BaseModel {
@override
logout() async {
if (customerPackages != null) customerPackages!.close();
if (packages != null) packages!.close();
if (activePackages != null) activePackages!.close();
if (customerPackages != null) customerPackages.close();
if (packages != null) packages.close();
if (activePackages != null) activePackages.close();
}
Future<void> _loadPackages(bool isDelivered) async {
if (user == null) return;
if (!((user!.hasPackages() || user!.hasReceiving() || user!.hasProcessing())))
return;
if (!((user!.hasPackages() ||
user!.hasReceiving() ||
user!.hasProcessing()))) return;
String path = "/$packages_collection";
try {
@@ -83,7 +84,7 @@ class PackageModel extends BaseModel {
.where("is_delivered", isEqualTo: isDelivered);
pageQuery = pageQuery.orderBy("update_time", descending: true);
packages!.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
packages.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
} catch (e) {
log.warning("Error!! $e");
}
@@ -104,7 +105,7 @@ class PackageModel extends BaseModel {
.where("user_id", isEqualTo: user!.id)
.orderBy("update_time", descending: true);
customerPackages!.refresh(
customerPackages.refresh(
listeningQuery: listenerQuery, pageQuery: pageQuery);
} catch (e) {
log.warning("Error!! $e");
@@ -113,8 +114,9 @@ class PackageModel extends BaseModel {
Future<void> _loadActivePackages() async {
if (user == null) return;
if (!((user!.hasPackages() || user!.hasReceiving() || user!.hasProcessing())))
return;
if (!((user!.hasPackages() ||
user!.hasReceiving() ||
user!.hasProcessing()))) return;
String path = "/$packages_collection";
try {
@@ -126,7 +128,7 @@ class PackageModel extends BaseModel {
.where("is_delivered", isEqualTo: false);
pageQuery = pageQuery.orderBy("update_time", descending: true);
activePackages!.refresh(
activePackages.refresh(
listeningQuery: listenerQuery, pageQuery: pageQuery);
} catch (e) {
log.warning("Error!! $e");
@@ -161,7 +163,8 @@ class PackageModel extends BaseModel {
.get(const GetOptions(source: Source.server));
if (snaps.docs.length == 1) {
var snap = snaps.docs[0];
var package = Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
var package =
Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
return package;
}
} catch (e) {
@@ -184,7 +187,8 @@ class PackageModel extends BaseModel {
if (qsnap.docs.length > 0) {
var snap = qsnap.docs[0];
if (snap.exists) {
var package = Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
var package =
Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
return package;
}
}
@@ -198,7 +202,8 @@ class PackageModel extends BaseModel {
if (qsnap.docs.length > 0) {
var snap = qsnap.docs[0];
if (snap.exists) {
var package = Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
var package =
Package.fromMap(snap.data as Map<String, dynamic>, snap.id);
return package;
}
}
@@ -218,8 +223,8 @@ class PackageModel extends BaseModel {
.where("is_deleted", isEqualTo: false)
.get(const GetOptions(source: Source.server));
packages = snaps.docs.map((documentSnapshot) {
var p =
Package.fromMap(documentSnapshot.data as Map<String, dynamic>, documentSnapshot.id);
var p = Package.fromMap(
documentSnapshot.data as Map<String, dynamic>, documentSnapshot.id);
return p;
}).toList();
} catch (e) {

View File

@@ -38,8 +38,8 @@ class _PackageEditorPageState extends State<PackageEditorPage> {
super.initState();
_package = widget.package!;
selectedMarket = _package!.market;
_descCtl.text = _package!.desc;
_remarkCtl.text = _package!.remark;
_descCtl.text = _package!.desc!;
_remarkCtl.text = _package!.remark!;
multiImgController.setImageUrls = _package!.photoUrls;
}
@@ -157,7 +157,7 @@ class _PackageEditorPageState extends State<PackageEditorPage> {
String? selectedMarket;
Widget marketDropdown() {
List<Market> _markets = Provider.of<MarketModel>(context).markets;
List<String> markets = _markets.map((e) => e.name).toList();
List<String?> markets = _markets.map((e) => e.name).toList();
markets.insert(0, MANAGE_MARKET);
if (!markets.contains(selectedMarket)) {
markets.insert(0, selectedMarket!);
@@ -194,10 +194,10 @@ class _PackageEditorPageState extends State<PackageEditorPage> {
});
},
isExpanded: true,
items: markets.map<DropdownMenuItem<String>>((String value) {
items: markets.map<DropdownMenuItem<String>>((String? value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value,
child: Text(value ?? "",
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: value == MANAGE_MARKET

View File

@@ -51,10 +51,10 @@ class _PackageInfoState extends State<PackageInfo> {
initPackage(Package pkg) async {
PackageModel packageModel =
Provider.of<PackageModel>(context, listen: false);
Package package = await packageModel.getPackageByTrackingID(pkg.trackingID);
Package? package = await packageModel.getPackageByTrackingID(pkg.trackingID!);
setState(() {
_package = package;
multiImgController.setImageUrls = package.photoUrls;
multiImgController.setImageUrls = package!.photoUrls;
});
}
@@ -65,7 +65,7 @@ class _PackageInfoState extends State<PackageInfo> {
@override
Widget build(BuildContext context) {
String id = Provider.of<MainModel>(context).user.id;
String? id = Provider.of<MainModel>(context).user!.id;
bool owner = _package?.userID == id;
bool canChangeDeliveryAddress =
_package?.status == package_received_status ||
@@ -199,7 +199,7 @@ class _PackageInfoState extends State<PackageInfo> {
try {
await packageModel.changeDeliveryAddress(_package!, deliveryAddress);
var da =
await deliveryAddressModel.getDeliveryAddress(deliveryAddress.id);
await deliveryAddressModel.getDeliveryAddress(deliveryAddress.id!);
setState(() {
_package!.deliveryAddress = da;
});

View File

@@ -97,7 +97,7 @@ class _PackageListState extends State<PackageList> {
_searchCallback(Package package) async {
var packageModel = Provider.of<PackageModel>(context, listen: false);
Package _package = await packageModel.getPackage(package.id);
Package? _package = await packageModel.getPackage(package.id!);
if (_package == null) return;
Navigator.push(
context,

View File

@@ -60,7 +60,9 @@ class PackageListRow extends StatelessWidget {
Padding(
padding: const EdgeInsets.only(left: 8.0),
child: new Text(
package!.id == null ? '' : package!.trackingID,
package!.id == null
? ''
: package!.trackingID!,
style: new TextStyle(
fontSize: 15.0, color: Colors.black),
),
@@ -68,7 +70,9 @@ class PackageListRow extends StatelessWidget {
Padding(
padding: const EdgeInsets.only(left: 8.0),
child: new Text(
package!.market == null ? '' : package!.market,
package!.market == null
? ''
: package!.market!,
style: new TextStyle(
fontSize: 15.0, color: Colors.black),
),
@@ -84,12 +88,14 @@ class PackageListRow extends StatelessWidget {
children: <Widget>[
Padding(
padding: const EdgeInsets.all(3.0),
child: getStatus(package!.status),
child: getStatus(package!.status??""),
),
Padding(
padding: const EdgeInsets.all(0),
child: new Text(
dateFormat.format(package!.currentStatusDate),
package!.currentStatusDate != null
? dateFormat.format(package!.currentStatusDate!)
: '',
style:
new TextStyle(fontSize: 15.0, color: Colors.grey),
),

View File

@@ -144,8 +144,8 @@ class _PackageNewState extends State<PackageNew> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(packages[index].market),
Text(packages[index].trackingID),
Text(packages[index].market!),
Text(packages[index].trackingID!),
// DisplayText(
// labelText: "Tracking ID",
// text: packages[index].trackingID,

View File

@@ -87,7 +87,7 @@ class _TrackingIDPageState extends State<TrackingIDPage> {
String? selectedMarket;
Widget dropDown() {
List<Market> _markets = Provider.of<MarketModel>(context).markets;
List<String> markets = _markets.map((e) => e.name).toList();
List<String?> markets = _markets.map((e) => e.name).toList();
markets.insert(0, MANAGE_MARKET);
markets.insert(0, SELECT_MARKET);
@@ -126,10 +126,10 @@ class _TrackingIDPageState extends State<TrackingIDPage> {
});
},
isExpanded: true,
items: markets.map<DropdownMenuItem<String>>((String value) {
items: markets.map<DropdownMenuItem<String>>((String? value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value,
child: Text(value ?? "",
overflow: TextOverflow.ellipsis,
style: TextStyle(
color: value == MANAGE_MARKET
@@ -146,7 +146,7 @@ class _TrackingIDPageState extends State<TrackingIDPage> {
_manageMarket() {
Navigator.push<Package>(
context,
CupertinoPageRoute(builder: (context) => MarketEditor()),
CupertinoPageRoute(builder: (context) => MarketEditor()),
);
}