52 lines
1.5 KiB
Dart
52 lines
1.5 KiB
Dart
|
|
import 'package:flutter/material.dart';
|
|
import 'package:url_launcher/url_launcher.dart';
|
|
import 'utils.dart';
|
|
import 'package:hive/hive.dart';
|
|
import 'package:hive_flutter/hive_flutter.dart';
|
|
|
|
class Util {
|
|
|
|
static Future<Box> getBox() async {
|
|
Hive.initFlutter();
|
|
Box box = await Hive.openBox('wisetronic_app_data');
|
|
return box;
|
|
}
|
|
|
|
static Widget showImage(String imageUrl, {double width, double height,
|
|
BoxFit fit, Widget Function(BuildContext, String, dynamic) errorWidget}) {
|
|
return Image.network(imageUrl,
|
|
fit: fit,
|
|
width: width,
|
|
height: height,
|
|
cacheWidth: width != null ? width.round() : null,
|
|
cacheHeight: height != null ? height.round() : null,
|
|
loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent loadingProgress) {
|
|
if (loadingProgress == null) return child;
|
|
return Center(
|
|
child: Utils.imageLoadingIndicator(),
|
|
);
|
|
},
|
|
errorBuilder: (BuildContext context, Object object, StackTrace stackTrace) {
|
|
if (errorWidget != null) {
|
|
return errorWidget(context, null, null);
|
|
}
|
|
return Image.asset(
|
|
'assets/images/not_found.png',
|
|
width: width,
|
|
height: height,
|
|
fit: fit,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
static void openWebUrl(BuildContext context, String link) async {
|
|
var url = 'https://${link}';
|
|
if (await canLaunch(url)) {
|
|
await launch('$url');
|
|
} else {
|
|
print('Could not launch $url');
|
|
}
|
|
}
|
|
} |