login_dialog_controller.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import 'dart:async';
  2. import 'dart:io';
  3. import 'package:flutter/cupertino.dart';
  4. import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
  5. import 'package:get/get.dart';
  6. import 'package:injectable/injectable.dart';
  7. import 'package:keyboard/base/base_controller.dart';
  8. import 'package:keyboard/module/login/login_page.dart';
  9. import 'package:keyboard/utils/atmob_log.dart';
  10. import 'package:keyboard/utils/toast_util.dart';
  11. import '../../handler/wechat_login_service.dart';
  12. import '../member_agreement_dialog.dart';
  13. import '../privacy_agreement_dialog.dart';
  14. import 'login_dialog.dart';
  15. @injectable
  16. class LoginDialogController extends BaseController {
  17. final tag = "LoginDialogController";
  18. final WechatLoginService wechatLoginService;
  19. LoginDialogController(this.wechatLoginService);
  20. final RxBool _isAgree = false.obs;
  21. bool get isAgree => _isAgree.value;
  22. clickAgree() {
  23. _isAgree.value = !_isAgree.value;
  24. }
  25. void clickWxLogin() async {
  26. if (!_isAgree.value) {
  27. PrivacyAgreementDialog.show(
  28. btnConfirm: () async {
  29. _isAgree.value = true;
  30. clickWxLogin();
  31. },
  32. );
  33. return;
  34. }
  35. wechatLoginService.login(
  36. onSuccess: (code) {
  37. debugPrint("登录成功 code: $code");
  38. // TODO: 通过 code 获取后端 token
  39. },
  40. onError: (code, msg) {
  41. ToastUtil.show("微信登录失败:$msg");
  42. },
  43. onCancel: () {
  44. ToastUtil.show("用户取消登录");
  45. },
  46. );
  47. }
  48. void clickClose() {
  49. AtmobLog.d(tag, "clickClose");
  50. SmartDialog.dismiss(tag: LoginDialog.TAG);
  51. }
  52. void clickPhoneLogin() {
  53. AtmobLog.d(tag, "clickPhoneLogin");
  54. LoginPage.start();
  55. SmartDialog.dismiss(tag: LoginDialog.TAG);
  56. }
  57. @override
  58. void onInit() {
  59. super.onInit();
  60. }
  61. @override
  62. void onClose() {
  63. super.onClose();
  64. }
  65. }