setting.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:bot_toast/bot_toast.dart';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:provider/provider.dart';
  5. import 'package:twong/providers/setting.dart';
  6. import 'package:twong/router/index.dart';
  7. import 'package:twong/utils/index.dart';
  8. class SettingInfo {
  9. String name;
  10. IconData icon;
  11. Function onTap;
  12. String route;
  13. Widget subText;
  14. SettingInfo(this.name, this.icon, this.subText, {this.onTap, this.route});
  15. }
  16. class SettingConfig {
  17. static List<SettingInfo> get data {
  18. return [
  19. SettingInfo("账号信息", Icons.account_circle, null, route: RouteNames.account),
  20. SettingInfo("隐私设置", Icons.policy, null, route: RouteNames.private),
  21. SettingInfo("检查更新", Icons.update, Consumer<SettingModel>(
  22. builder: (context, model, child) => Text(model.version, style: TextStyle(color: Colors.grey))
  23. ), onTap: checkUpdate),
  24. SettingInfo("清除缓存", Icons.delete, Consumer<SettingModel>(
  25. builder: (context, model, child) => Text(model.cacheSize, style: TextStyle(color: Colors.grey))
  26. ), onTap: clearCache),
  27. SettingInfo("关于我们", Icons.info, null, route: RouteNames.about),
  28. ];
  29. }
  30. static void checkUpdate() {
  31. Utils.loading();
  32. Utils.checkUpdate();
  33. }
  34. static void clearCache() {
  35. Cache.clearFiles().then((value){
  36. Provider.of<SettingModel>(Cache.context, listen: false).updateCache(value);
  37. BotToast.showText(text: "清理成功");
  38. }).catchError((err) {
  39. Log.e(err);
  40. BotToast.showText(text: "清理失败");
  41. });
  42. }
  43. }