接听挂断电话
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
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/channel_manager.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';
|
||||
@@ -51,11 +52,27 @@ class HomeViewModel extends BaseUIModel {
|
||||
});
|
||||
|
||||
EventManager.addListener<CallStatusChangeEvent>(this, (event) {
|
||||
yjPrint("HomeViewModel CallStatusChangeEvent state: ${event.model.state}");
|
||||
if (event.model.state == "Incoming") {
|
||||
showCallInfoView(event.model);
|
||||
} else {
|
||||
hideCallInfoView();
|
||||
yjPrint(
|
||||
"HomeViewModel CallStatusChangeEvent state: ${event.model.state}");
|
||||
|
||||
/// state = IncomingNumberReceived 来电接听
|
||||
/// state = OutGoing 呼出
|
||||
/// state = End 通话结束
|
||||
/// state = Incoming 来电
|
||||
/// state = Idle 空闲
|
||||
|
||||
switch (event.model.state) {
|
||||
case "IncomingNumberReceived":
|
||||
EventManager.postEvent(CallReceivedEvent());
|
||||
break;
|
||||
case "OutGoing":
|
||||
break;
|
||||
case "Incoming":
|
||||
showCallInfoView(event.model);
|
||||
break;
|
||||
default:
|
||||
hideCallInfoView();
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -85,7 +102,19 @@ class HomeViewModel extends BaseUIModel {
|
||||
if (isShowCallView) {
|
||||
return;
|
||||
}
|
||||
YJPush.presentWidget(context!, CallView(statusModel: model));
|
||||
YJPush.presentWidget(
|
||||
context!,
|
||||
CallView(
|
||||
statusModel: model,
|
||||
onAction: (action) {
|
||||
yjPrint("call view action: $action");
|
||||
if (action == "accept") {
|
||||
ChannelManager.acceptCall();
|
||||
} else {
|
||||
ChannelManager.rejectCall();
|
||||
hideCallInfoView();
|
||||
}
|
||||
}));
|
||||
isShowCallView = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,9 @@ class ReserveView extends BaseUI with TickerProviderStateMixin {
|
||||
width: 15,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () { },
|
||||
onTap: () {
|
||||
provider.testCallIncoming();
|
||||
},
|
||||
child: SizedBox(
|
||||
width: 40,
|
||||
height: 40,
|
||||
@@ -95,9 +97,7 @@ class ReserveView extends BaseUI with TickerProviderStateMixin {
|
||||
width: 5,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
provider.loadTableAreaList();
|
||||
},
|
||||
onTap: () { },
|
||||
child: SizedBox(
|
||||
width: 40,
|
||||
height: 40,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:cashier_reserve/common/base/ui_model.dart';
|
||||
import 'package:cashier_reserve/common/channel/model/call_log_model.dart';
|
||||
import 'package:cashier_reserve/common/channel/channel_manager.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';
|
||||
@@ -138,6 +139,17 @@ class ReserveViewModel extends BaseUIModel {
|
||||
loadReserveSms();
|
||||
}
|
||||
|
||||
void testCallIncoming() {
|
||||
CallStatusChangeModel model = CallStatusChangeModel(
|
||||
state: "Incoming",
|
||||
number: "123456789",
|
||||
name: "测试",
|
||||
region: "陕西省 西安市",
|
||||
);
|
||||
|
||||
EventManager.postEvent(CallStatusChangeEvent(model: model));
|
||||
}
|
||||
|
||||
void loadCallLog() {
|
||||
ChannelManager.getCallLog("getCallLog");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user