enable_map.dart 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import "package:flutter/cupertino.dart";
  2. import "package:photos/generated/l10n.dart";
  3. import 'package:photos/models/button_result.dart';
  4. import "package:photos/services/user_remote_flag_service.dart";
  5. import "package:photos/ui/components/buttons/button_widget.dart";
  6. import "package:photos/ui/components/dialog_widget.dart";
  7. import "package:photos/ui/components/models/button_type.dart";
  8. import "package:photos/utils/toast_util.dart";
  9. Future<bool> requestForMapEnable(BuildContext context) async {
  10. const String flagName = UserRemoteFlagService.mapEnabled;
  11. if (UserRemoteFlagService.instance.getCachedBoolValue(flagName)) {
  12. return true;
  13. }
  14. final ButtonResult? result = await showDialogWidget(
  15. context: context,
  16. title: S.of(context).enableMaps,
  17. body: S.of(context).enableMapsDesc,
  18. isDismissible: true,
  19. buttons: [
  20. ButtonWidget(
  21. buttonType: ButtonType.primary,
  22. buttonAction: ButtonAction.first,
  23. labelText: S.of(context).enableMaps,
  24. isInAlert: true,
  25. onTap: () async {
  26. await UserRemoteFlagService.instance.setBoolValue(
  27. flagName,
  28. true,
  29. );
  30. },
  31. ),
  32. ButtonWidget(
  33. buttonType: ButtonType.secondary,
  34. buttonAction: ButtonAction.second,
  35. labelText: S.of(context).cancel,
  36. isInAlert: true,
  37. ),
  38. ],
  39. );
  40. if (result?.action == ButtonAction.first) {
  41. return true;
  42. }
  43. if (result?.action == ButtonAction.error) {
  44. showShortToast(context, S.of(context).somethingWentWrong);
  45. return false;
  46. }
  47. return false;
  48. }
  49. //For debugging.
  50. void disableMap() {
  51. UserRemoteFlagService.instance
  52. .setBoolValue(UserRemoteFlagService.mapEnabled, false);
  53. }