|
...
|
...
|
@@ -40,6 +40,7 @@ import 'package:easy_contact_picker/easy_contact_picker.dart'; |
|
|
|
import '../../models/user_history_entity.dart';
|
|
|
|
import '../../utils/screen_util.dart';
|
|
|
|
import '../../widgets/special_text/my_extended_text_selection_controls.dart';
|
|
|
|
import 'package:flutter_picker/flutter_picker.dart' as Picker;
|
|
|
|
|
|
|
|
typedef clickCallback = void Function(String value);
|
|
|
|
|
|
...
|
...
|
@@ -531,8 +532,8 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { |
|
|
|
_notebookDetailChangeModel.nameController.text.endsWith(suffix)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (name != '') {
|
|
|
|
_notebookDetailChangeModel.nameController.text = name + suffix;
|
|
|
|
if (name != ''&& name != null) {
|
|
|
|
_notebookDetailChangeModel.nameController.text = name + suffix??'';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
...
|
...
|
@@ -1053,27 +1054,154 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { |
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
// _getCallLog() async {
|
|
|
|
// Iterable<CallLogEntry> result = await CallLog.query();
|
|
|
|
// _notebookDetailChangeModel.userHistorys = [];
|
|
|
|
|
|
|
|
// List<CallLogEntry> object = Utils.removeDuplicates(result.toList());
|
|
|
|
|
|
|
|
// print(object);
|
|
|
|
// object.forEach((element) {
|
|
|
|
// UserHistoryEntity userHistoryEntity =
|
|
|
|
// UserHistoryEntity(null, null, '', '', '', '', '', null);
|
|
|
|
// userHistoryEntity.rname = element.name ?? '';
|
|
|
|
// userHistoryEntity.phone = element.number ?? '';
|
|
|
|
// _notebookDetailChangeModel.userHistorys.add(userHistoryEntity);
|
|
|
|
// });
|
|
|
|
// if (object.length > 0) {
|
|
|
|
// //有记录
|
|
|
|
// showPhoneHistory = true;
|
|
|
|
// setState(() {});
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
_getCallLog() async {
|
|
|
|
Iterable<CallLogEntry> result = await CallLog.query();
|
|
|
|
_notebookDetailChangeModel.userHistorys = [];
|
|
|
|
List<Picker.PickerItem<dynamic>> data = [];
|
|
|
|
|
|
|
|
List<CallLogEntry> object = Utils.removeDuplicates(result.toList());
|
|
|
|
|
|
|
|
print(object);
|
|
|
|
|
|
|
|
_notebookDetailChangeModel.userHistorys = [];
|
|
|
|
showPhoneHistory = false;
|
|
|
|
// setState(() {});
|
|
|
|
|
|
|
|
object.forEach((element) {
|
|
|
|
UserHistoryEntity userHistoryEntity =
|
|
|
|
UserHistoryEntity(null, null, '', '', '', '', '', null);
|
|
|
|
userHistoryEntity.rname = element.name ?? '';
|
|
|
|
userHistoryEntity.phone = element.number ?? '';
|
|
|
|
_notebookDetailChangeModel.userHistorys.add(userHistoryEntity);
|
|
|
|
_notebookDetailChangeModel.userHistorys.add(UserHistoryEntity(
|
|
|
|
'', '', element.name ?? '', '1', element.number, '', '', ''));
|
|
|
|
|
|
|
|
String title = '';
|
|
|
|
title += ' ${element.number ?? ''}';
|
|
|
|
if (element.name != null && element.name != '') {
|
|
|
|
title += ' ${element.name}';
|
|
|
|
}
|
|
|
|
|
|
|
|
String stateStr = ''; //状态
|
|
|
|
|
|
|
|
if (element.callType.name == 'incoming' ||
|
|
|
|
element.callType.name == 'wifiIncoming' ||
|
|
|
|
element.callType.name == 'answeredExternally') {
|
|
|
|
stateStr = ' 呼入';
|
|
|
|
} else if (element.callType.name == 'outgoing' ||
|
|
|
|
element.callType.name == 'wifiOutgoing' ||
|
|
|
|
element.callType.name == 'voiceMail') {
|
|
|
|
stateStr = ' 呼出';
|
|
|
|
} else if (element.callType.name == 'missed') {
|
|
|
|
stateStr = ' 未接';
|
|
|
|
} else if (element.callType.name == 'rejected') {
|
|
|
|
stateStr = ' 拒接';
|
|
|
|
} else if (element.callType.name == 'blocked') {
|
|
|
|
stateStr = ' 拦截';
|
|
|
|
}
|
|
|
|
|
|
|
|
String sunString =
|
|
|
|
Utils.formatCallLogFromMill(element.timestamp.toString());
|
|
|
|
|
|
|
|
data.add(Picker.PickerItem(
|
|
|
|
text: Row(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
children: [
|
|
|
|
Expanded(
|
|
|
|
child: Row(
|
|
|
|
children: [
|
|
|
|
HEmptyView(30),
|
|
|
|
Text(title ?? '',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(16), color: MyColours.color_515151)),
|
|
|
|
Expanded(
|
|
|
|
child: Text(stateStr ?? '',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(16),
|
|
|
|
color: MyColours.color_26000000))),
|
|
|
|
],
|
|
|
|
)),
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.only(right: w(15)),
|
|
|
|
child: Text(sunString ?? '',
|
|
|
|
style: TextStyle(
|
|
|
|
fontSize: font(16), color: MyColours.color_515151)))
|
|
|
|
],
|
|
|
|
)));
|
|
|
|
});
|
|
|
|
if (object.length > 0) {
|
|
|
|
//有记录
|
|
|
|
showPhoneHistory = true;
|
|
|
|
setState(() {});
|
|
|
|
if (data.length > 0) {
|
|
|
|
//有记录,底部弹窗展示
|
|
|
|
// showPhoneHistory = true;
|
|
|
|
// setState(() {});
|
|
|
|
DialogUtil.showSelectCusmanWidgetDialog(context, data, (value) {
|
|
|
|
if (value != null) {
|
|
|
|
_byValueToReqeust(value[0]);
|
|
|
|
}
|
|
|
|
}, title: '从通话记录选择客人电话', selecteds: [
|
|
|
|
// _getFirSelected(hourAndMinute, data),
|
|
|
|
// _getSecSelected(hourAndMinute)
|
|
|
|
]).then((value) {
|
|
|
|
print(value);
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
Utils.showToast('暂无通话记录!');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_byValueToReqeust(int index) {
|
|
|
|
setState(() {
|
|
|
|
showPhoneHistory = false;
|
|
|
|
UserHistoryEntity userHistoryEntity =
|
|
|
|
_notebookDetailChangeModel.userHistorys[index];
|
|
|
|
_notebookDetailChangeModel.phoneController.text = userHistoryEntity.phone;
|
|
|
|
// if (userHistoryEntity.sex == null || userHistoryEntity.sex == '') {
|
|
|
|
// userHistoryEntity.sex = '1';
|
|
|
|
// }
|
|
|
|
// _homeEnterModel.nameController.text =
|
|
|
|
// _homeEnterModel
|
|
|
|
// .userHistorys[index].rname +
|
|
|
|
// _nameSuffix();
|
|
|
|
for (var item in _notebookDetailChangeModel.sexList) {
|
|
|
|
item['select'] = false;
|
|
|
|
if (item['title'] == userHistoryEntity.sexStr) {
|
|
|
|
item['select'] = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_addNameSuffix(userHistoryEntity.rname, _nameSuffix());
|
|
|
|
if (userHistoryEntity.rname == null || userHistoryEntity.rname == '') {
|
|
|
|
nameStr = _notebookDetailChangeModel.nameController.text;
|
|
|
|
if (nameStr.endsWith('女士')) {
|
|
|
|
nameStr = nameStr.replaceAll('女士', '');
|
|
|
|
}
|
|
|
|
if (nameStr.endsWith('先生')) {
|
|
|
|
nameStr = nameStr.replaceAll('先生', '');
|
|
|
|
}
|
|
|
|
if (nameStr.endsWith('公司')) {
|
|
|
|
nameStr = nameStr.replaceAll('公司', '');
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
nameStr = userHistoryEntity.rname;
|
|
|
|
}
|
|
|
|
|
|
|
|
_phoneNode.unfocus();
|
|
|
|
_notebookDetailChangeModel.userHistorys.clear();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
_openAddressBook() async {
|
|
|
|
if (!(await checkContactPermission())) {
|
|
|
|
PermissionStatus permissionStatus = await contactPermissionStatus();
|
|
...
|
...
|
@@ -1967,67 +2095,68 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { |
|
|
|
itemBuilder: (context, index) {
|
|
|
|
return GestureDetector(
|
|
|
|
onTap: () {
|
|
|
|
setState(() {
|
|
|
|
showPhoneHistory = false;
|
|
|
|
UserHistoryEntity
|
|
|
|
userHistoryEntity =
|
|
|
|
_notebookDetailChangeModel
|
|
|
|
.userHistorys[index];
|
|
|
|
_notebookDetailChangeModel
|
|
|
|
.phoneController.text =
|
|
|
|
userHistoryEntity.phone;
|
|
|
|
if (userHistoryEntity.sex ==
|
|
|
|
null ||
|
|
|
|
userHistoryEntity.sex ==
|
|
|
|
'') {
|
|
|
|
userHistoryEntity.sex = '1';
|
|
|
|
}
|
|
|
|
// _homeEnterModel.nameController.text =
|
|
|
|
// _homeEnterModel
|
|
|
|
// .userHistorys[index].rname +
|
|
|
|
// _nameSuffix();
|
|
|
|
for (var item
|
|
|
|
in _notebookDetailChangeModel
|
|
|
|
.sexList) {
|
|
|
|
item['select'] = false;
|
|
|
|
if (item['title'] ==
|
|
|
|
userHistoryEntity
|
|
|
|
.sexStr) {
|
|
|
|
item['select'] = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_addNameSuffix(
|
|
|
|
userHistoryEntity.rname,
|
|
|
|
_nameSuffix());
|
|
|
|
if (userHistoryEntity.rname ==
|
|
|
|
null ||
|
|
|
|
userHistoryEntity.rname ==
|
|
|
|
'') {
|
|
|
|
nameStr =
|
|
|
|
_notebookDetailChangeModel
|
|
|
|
.nameController.text;
|
|
|
|
if (nameStr.endsWith('女士')) {
|
|
|
|
nameStr = nameStr
|
|
|
|
.replaceAll('女士', '');
|
|
|
|
}
|
|
|
|
if (nameStr.endsWith('先生')) {
|
|
|
|
nameStr = nameStr
|
|
|
|
.replaceAll('先生', '');
|
|
|
|
}
|
|
|
|
if (nameStr.endsWith('公司')) {
|
|
|
|
nameStr = nameStr
|
|
|
|
.replaceAll('公司', '');
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
nameStr =
|
|
|
|
userHistoryEntity.rname;
|
|
|
|
}
|
|
|
|
|
|
|
|
_phoneNode.unfocus();
|
|
|
|
_notebookDetailChangeModel
|
|
|
|
.userHistorys
|
|
|
|
.clear();
|
|
|
|
});
|
|
|
|
_byValueToReqeust(index);
|
|
|
|
// setState(() {
|
|
|
|
// showPhoneHistory = false;
|
|
|
|
// UserHistoryEntity
|
|
|
|
// userHistoryEntity =
|
|
|
|
// _notebookDetailChangeModel
|
|
|
|
// .userHistorys[index];
|
|
|
|
// _notebookDetailChangeModel
|
|
|
|
// .phoneController.text =
|
|
|
|
// userHistoryEntity.phone;
|
|
|
|
// if (userHistoryEntity.sex ==
|
|
|
|
// null ||
|
|
|
|
// userHistoryEntity.sex ==
|
|
|
|
// '') {
|
|
|
|
// userHistoryEntity.sex = '1';
|
|
|
|
// }
|
|
|
|
// // _homeEnterModel.nameController.text =
|
|
|
|
// // _homeEnterModel
|
|
|
|
// // .userHistorys[index].rname +
|
|
|
|
// // _nameSuffix();
|
|
|
|
// for (var item
|
|
|
|
// in _notebookDetailChangeModel
|
|
|
|
// .sexList) {
|
|
|
|
// item['select'] = false;
|
|
|
|
// if (item['title'] ==
|
|
|
|
// userHistoryEntity
|
|
|
|
// .sexStr) {
|
|
|
|
// item['select'] = true;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// _addNameSuffix(
|
|
|
|
// userHistoryEntity.rname,
|
|
|
|
// _nameSuffix());
|
|
|
|
// if (userHistoryEntity.rname ==
|
|
|
|
// null ||
|
|
|
|
// userHistoryEntity.rname ==
|
|
|
|
// '') {
|
|
|
|
// nameStr =
|
|
|
|
// _notebookDetailChangeModel
|
|
|
|
// .nameController.text;
|
|
|
|
// if (nameStr.endsWith('女士')) {
|
|
|
|
// nameStr = nameStr
|
|
|
|
// .replaceAll('女士', '');
|
|
|
|
// }
|
|
|
|
// if (nameStr.endsWith('先生')) {
|
|
|
|
// nameStr = nameStr
|
|
|
|
// .replaceAll('先生', '');
|
|
|
|
// }
|
|
|
|
// if (nameStr.endsWith('公司')) {
|
|
|
|
// nameStr = nameStr
|
|
|
|
// .replaceAll('公司', '');
|
|
|
|
// }
|
|
|
|
// } else {
|
|
|
|
// nameStr =
|
|
|
|
// userHistoryEntity.rname;
|
|
|
|
// }
|
|
|
|
|
|
|
|
// _phoneNode.unfocus();
|
|
|
|
// _notebookDetailChangeModel
|
|
|
|
// .userHistorys
|
|
|
|
// .clear();
|
|
|
|
// });
|
|
|
|
},
|
|
|
|
child: Container(
|
|
|
|
width: double.infinity,
|
...
|
...
|
|