From: TrillGates Date: Fri, 16 Jul 2021 02:43:08 +0000 (+0800) Subject: add contact for s123 protocol X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=41cc4777b805be8be4f364d0fb94f7ff922066a9;p=protocol_srv.git add contact for s123 protocol --- diff --git a/app/src/main/java/com/enqualcomm/support/utils/GetContact.java b/app/src/main/java/com/enqualcomm/support/utils/GetContact.java index e7c5984e..d877b1d6 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/GetContact.java +++ b/app/src/main/java/com/enqualcomm/support/utils/GetContact.java @@ -22,7 +22,10 @@ public class GetContact implements Observable.OnSubscribe { Contact contact1 = null; Contact contact2 = null; if (cursor != null) { - for (contact1 = contact2; cursor.moveToNext(); contact1 = new Contact(cursor.getInt(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), cursor.getString(5))); + for (contact1 = contact2; cursor.moveToNext(); + contact1 = new Contact(cursor.getInt(1), cursor.getString(2), + cursor.getString(3), cursor.getString(4), + cursor.getString(5))); cursor.close(); } contact2 = contact1; diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index 43b124a3..3c9cfcfd 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -1462,8 +1462,8 @@ public class protocol_fzd { boolean isPared = listLen % 2 == 0; if (isPared) { ArrayList contactArray = new ArrayList<>(); - ContentValues contentValues = new ContentValues(); ContentResolver resolver = runtime.getContextProxy().getResolver(); + //添加之前先删除白名单的内容 resolver.delete(Uri.parse(ICMembersProvider.MEMBERS), "type=?", new String[]{ ICDatabaseHelper.MemberType.WHITE_LIST + "" }); @@ -1472,18 +1472,19 @@ public class protocol_fzd { String name = Util.decodeUnicode2Utf8(list[i + 1]); ICLogger.i(i / 2 + " 姓名 " + name + ", 电话 " + phoneNum); contactArray.add(new Contact(Contact.CATEGORY_CALL, name, phoneNum)); + ContentValues contentValues = new ContentValues(); contentValues.put(ICDatabaseHelper.fType, ICDatabaseHelper.MemberType.WHITE_LIST); contentValues.put(ICDatabaseHelper.fPhoneNum, phoneNum); contentValues.put(ICDatabaseHelper.fID, phoneNum); contentValues.put(ICDatabaseHelper.fUserName, name); contentValues.put(ICDatabaseHelper.fCreateTime, System.currentTimeMillis()); contentValues.put(ICDatabaseHelper.fUpdateTime, System.currentTimeMillis()); - //保存到新的数据库中,为了防止问题,先兼容原来的库 - //后面所有地方都切换到新库了,才删除上面的代码 - // TODO:需要修改白名单拦截的地方. + //TODO:保存到fzd的联系人列表,类型为白名单 resolver.insert(Uri.parse(ICMembersProvider.MEMBERS), contentValues); } - //TODO:保存到fzd的联系人列表,类型为白名单 + //保存到新的数据库中,为了防止问题,先兼容原来的库 + //后面所有地方都切换到新库了,才删除上面的代码 + // TODO:需要修改白名单拦截的地方. runtime.getDbHelper().saveContacts(contactArray, false, false, true, false, false, false); } else { ICLogger.i("没有电话本!执行清除操作!"); @@ -2620,7 +2621,7 @@ public class protocol_fzd { private void handleCallRequest(Connection mConnection, Runtime mRuntime, String data) { RemoteCallbackList fzdCallback = mRuntime.getFZDCallback(); String[] split = data.split(CMD_SPLIT); - ICLogger.i("split.length = "+split.length); + ICLogger.i("split.length = " + split.length); if (split.length == 3 || split.length == 4) { needResponseCalling = true; //1、准备数据:对方的id,来电类型 @@ -2628,7 +2629,7 @@ public class protocol_fzd { String sessionId = split[1]; String type = split[2]; String token = ""; - if(split.length == 4){ + if (split.length == 4) { token = split[3]; } ICLogger.d("remote id is == > " + remoteId); @@ -2653,7 +2654,7 @@ public class protocol_fzd { while (i > 0) { i--; IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i); - broadcastItem.onCalling(remoteId,sessionId,type,token); + broadcastItem.onCalling(remoteId, sessionId, type, token); } } catch (Exception e) { e.printStackTrace(); @@ -2792,6 +2793,7 @@ public class protocol_fzd { * 声网 当向对方发起通话请求的时候,结果会从此方法回来。 *

* 0 表示可正常通话,-1 表示余额不足,不能通话,1 表示对方不在线或未登陆成功 + * * @param mConnection * @param mRuntime * @param data @@ -2811,8 +2813,8 @@ public class protocol_fzd { String token = str[1]; String roomName = str[2]; ICLogger.i("0 表示可正常通话,-1 表示余额不足,不能通话,1 表示对方不在线或未登陆成功 === > " + data); - ICLogger.i("result = "+result+", token = "+token+", roomName = "+roomName); - fzdCallback.getBroadcastItem(i).onAGCallRequestResult(result,token,roomName); + ICLogger.i("result = " + result + ", token = " + token + ", roomName = " + roomName); + fzdCallback.getBroadcastItem(i).onAGCallRequestResult(result, token, roomName); } } } catch (Exception e) { diff --git a/app/src/main/java/com/ic/protocols/protocol_s123.java b/app/src/main/java/com/ic/protocols/protocol_s123.java index 902a4d2d..60471191 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -26,6 +26,7 @@ import com.enqualcomm.support.bean.voicePacket; import com.enqualcomm.support.provider.ICAlarmProvider; import com.enqualcomm.support.provider.ICDatabaseHelper; import com.enqualcomm.support.provider.ICGlobalSettingsProvider; +import com.enqualcomm.support.provider.ICMembersProvider; import com.enqualcomm.support.service.HeartRateManager; import com.enqualcomm.support.utils.CameraUtil; import com.enqualcomm.support.utils.Connection; @@ -880,19 +881,19 @@ public class protocol_s123 { //设置通讯录,白名单(10个) public void handleBP14(Connection connection, String cmd, Runtime runtime) { // IWBP14,867155030001063,357444,9b44529b|13554820016,,,,,,,,, -/** - * IWBP14,353456789012345,080835, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx, - * D3590D54|135xxxxxxxxxx# - */ + /** + * IWBP14,353456789012345,080835, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx, + * D3590D54|135xxxxxxxxxx# + */ String[] cmdlist = cmd.split(CMDSPLIT); String[] phnums = new String[]{"", "", "", "", "", "", "", "", "", ""}; StringBuffer sb = new StringBuffer().append("recv phone Numbs "); @@ -940,6 +941,11 @@ public class protocol_s123 { ICLogger.i("=====add hotline 96885 "); contactArray.add(new Contact(Contact.CATEGORY_CALL, runtime.getContextProxy().context.getResources().getString(R.string.hotline), "96885")); } + ContentResolver resolver = runtime.getContextProxy().getResolver(); + //添加之前先删除白名单的内容 + resolver.delete(Uri.parse(ICMembersProvider.MEMBERS), "type=?", new String[]{ + ICDatabaseHelper.MemberType.WHITE_LIST + "" + }); for (int i = 0; i < phnums.length; i++) { String[] tmp = phnums[i].split("\\|"); if (tmp.length == 2) { @@ -947,9 +953,17 @@ public class protocol_s123 { String phonem = tmp[1]; ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length + " , name=" + name + ",-" + phonem); contactArray.add(new Contact(Contact.CATEGORY_CALL, name, phonem)); + ContentValues contentValues = new ContentValues(); + contentValues.put(ICDatabaseHelper.fType, ICDatabaseHelper.MemberType.WHITE_LIST); + contentValues.put(ICDatabaseHelper.fPhoneNum, phonem); + contentValues.put(ICDatabaseHelper.fID, phonem); + contentValues.put(ICDatabaseHelper.fUserName, name); + contentValues.put(ICDatabaseHelper.fCreateTime, System.currentTimeMillis()); + contentValues.put(ICDatabaseHelper.fUpdateTime, System.currentTimeMillis()); + //TODO:保存到fzd的联系人列表,类型为白名单 + resolver.insert(Uri.parse(ICMembersProvider.MEMBERS), contentValues); } else { ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length); - } } // contactArray.add(new Contact(Contact.CATEGORY_GROUP,"All","666")); @@ -958,6 +972,7 @@ public class protocol_s123 { // contactArray.add(new Contact(Contact.CATEGORY_VOLTE,"VOLTE","666")); runtime.getDbHelper().saveContacts(contactArray, false, false, true, false, false, false); + //加一份到IC的库中 } else { ICLogger.i(" BP14 format error!");