index.dart 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. export 'i18n.dart';
  2. export 'cache.dart';
  3. export 'logger.dart';
  4. export 'request.dart';
  5. export 'user_ext.dart';
  6. export 'size_fit.dart';
  7. export 'net_error.dart';
  8. export 'notification.dart';
  9. import 'package:flutter/material.dart';
  10. import 'package:bot_toast/bot_toast.dart';
  11. import 'package:flutter/services.dart';
  12. import 'package:twong/utils/logger.dart';
  13. import 'package:twong/widgets/photo_view.dart';
  14. import 'cache.dart';
  15. import 'package:twong/utils/i18n.dart';
  16. import 'package:twong/router/base.dart';
  17. import 'package:twong/widgets/dialog.dart';
  18. class Utils {
  19. static String _channel = "android/back/desktop";
  20. static void showAlert(BuildContext context, {String title, Function ok, String okText, String noText}) {
  21. showDialog(
  22. context: context,
  23. builder: (context) {
  24. return CustomDialog(
  25. content: title,
  26. callback: (res) {
  27. ok?.call();
  28. }
  29. );
  30. }
  31. );
  32. }
  33. static void notOpen () {
  34. BotToast.showText(text: '功能暂未开放!');
  35. }
  36. static String formatRMB(dynamic num, { bool show = false }) {
  37. double price = double.parse(num.toString());
  38. return "${show ? I18n.$ : ""}${price.toStringAsFixed(2)}";
  39. }
  40. static void toLogin() {
  41. if (Cache.navigator == null) return;
  42. var context = Cache.navigator.currentState.overlay.context;
  43. Navigator.pushNamed(context, RouteNames.login);
  44. }
  45. static void showPhoto({String image, List<String> images, int index = 0}) {
  46. if (Cache.navigator == null) return;
  47. var context = Cache.navigator.currentState.overlay.context;
  48. PhotoListData data;
  49. if (images != null) {
  50. data = PhotoListData(index, images);
  51. } else {
  52. data = PhotoListData(index, [image]);
  53. }
  54. Navigator.pushNamed(context, RouteNames.picture, arguments: data);
  55. }
  56. static Future backDeskTop() async {
  57. var platform = MethodChannel(_channel);
  58. try {
  59. await platform.invokeMethod("back_to_desktop");
  60. } on PlatformException catch (e) {
  61. debugPrint(e.toString());
  62. }
  63. return Future.value(false);
  64. }
  65. }