46 lines
1.3 KiB
Dart
46 lines
1.3 KiB
Dart
|
|
import 'package:cached_network_image/cached_network_image.dart';
|
|
import 'package:flutter/material.dart';
|
|
import '../routes.dart';
|
|
import 'utils.dart';
|
|
import 'package:hive/hive.dart';
|
|
import 'package:path_provider/path_provider.dart';
|
|
|
|
class Util {
|
|
static Future<Box> getBox() async {
|
|
final dir = await getApplicationDocumentsDirectory();
|
|
Hive.init(dir.path);
|
|
Box box = await Hive.openBox('app_data');
|
|
return box;
|
|
}
|
|
|
|
static Widget showImage(String imageUrl, {double width, double height,
|
|
BoxFit fit, Widget Function(BuildContext, String, dynamic) errorWidget}) {
|
|
if (imageUrl == null || imageUrl.isEmpty) {
|
|
return Container(
|
|
width: width,
|
|
height: height,
|
|
child: Text(''),
|
|
);
|
|
}
|
|
return CachedNetworkImage(
|
|
imageUrl: imageUrl,
|
|
width: width,
|
|
height: width,
|
|
fit: fit,
|
|
placeholder: (context, url) => Utils.imageLoadingIndicator(),
|
|
errorWidget: errorWidget != null ? errorWidget : (context, url, error) {
|
|
return Image.asset(
|
|
'assets/images/not_found.png',
|
|
width: width,
|
|
height: height,
|
|
fit: fit,
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
static void openWebUrl(BuildContext context, String link) {
|
|
Routes.router.navigateTo(context, '/webview/$link');
|
|
}
|
|
} |