弹出电话页面

This commit is contained in:
GYJ
2024-11-27 18:18:08 +08:00
parent 938a5df35f
commit 1da1683adc
14 changed files with 252 additions and 16 deletions

View File

@@ -1,7 +1,11 @@
import 'package:cashier_reserve/call/call_view.dart';
import 'package:cashier_reserve/common/base/ui.dart';
import 'package:cashier_reserve/common/base/ui_model.dart';
import 'package:cashier_reserve/common/channel/model/call_status_change_model.dart';
import 'package:cashier_reserve/common/manager/app_manager.dart';
import 'package:cashier_reserve/common/manager/event_manager.dart';
import 'package:cashier_reserve/common/print/print.dart';
import 'package:cashier_reserve/common/push/push.dart';
class HomeViewModel extends BaseUIModel {
int _currentIndex = 0;
@@ -37,12 +41,23 @@ class HomeViewModel extends BaseUIModel {
PageController? get pageController => _pageController;
bool isShowCallView = false;
HomeViewModel() {
_pageController = PageController(initialPage: 0);
Future.delayed(const Duration(milliseconds: 700), () {
_checkLogin();
});
EventManager.addListener<CallStatusChangeEvent>(this, (event) {
yjPrint("HomeViewModel CallStatusChangeEvent state: ${event.model.state}");
if (event.model.state == "Incoming") {
showCallInfoView(event.model);
} else {
hideCallInfoView();
}
});
}
@override
@@ -65,4 +80,20 @@ class HomeViewModel extends BaseUIModel {
_pageController?.jumpToPage(index);
}
showCallInfoView(CallStatusChangeModel model) {
if (isShowCallView) {
return;
}
YJPush.presentWidget(context!, CallView(statusModel: model));
isShowCallView = true;
}
hideCallInfoView() {
if (!isShowCallView) {
return;
}
Navigator.of(context!).pop();
isShowCallView = false;
}
}