diff --git a/qqinterface/src/main/java/com/tencent/qphone/base/util/CodecWarpper.java b/qqinterface/src/main/java/com/tencent/qphone/base/util/CodecWarpper.java index 8eb2da4f..2efe075a 100644 --- a/qqinterface/src/main/java/com/tencent/qphone/base/util/CodecWarpper.java +++ b/qqinterface/src/main/java/com/tencent/qphone/base/util/CodecWarpper.java @@ -1,7 +1,9 @@ package com.tencent.qphone.base.util; public abstract class CodecWarpper { - public abstract void onResponse(int i2, Object obj, int i3); +// public abstract void onResponse(int i2, Object obj, int i3); + + public abstract void onInvalidData(int i2, int i3, String str); public abstract void onResponse(int i2, Object obj, int i3, byte[] bArr); diff --git a/qqinterface/src/main/java/com/tencent/qqnt/aio/api/IAIOFileTransfer.java b/qqinterface/src/main/java/com/tencent/qqnt/aio/api/IAIOFileTransfer.java index 53b0d3ff..347bd924 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/aio/api/IAIOFileTransfer.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/aio/api/IAIOFileTransfer.java @@ -1,7 +1,7 @@ package com.tencent.qqnt.aio.api; import com.tencent.mobileqq.qroute.QRouteApi; -import com.tencent.qqnt.kernel.nativeinterface.Contact; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; import com.tencent.qqnt.kernel.nativeinterface.IOperateCallback; public interface IAIOFileTransfer extends QRouteApi { diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/api/impl/GroupService.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/api/impl/GroupService.java new file mode 100644 index 00000000..e555f274 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/api/impl/GroupService.java @@ -0,0 +1,4 @@ +package com.tencent.qqnt.kernel.api.impl; + +public class GroupService { +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/ContactMsgBoxInfo.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/ContactMsgBoxInfo.java index e2e43c0a..40a4720f 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/ContactMsgBoxInfo.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/ContactMsgBoxInfo.java @@ -1,5 +1,7 @@ package com.tencent.qqnt.kernel.nativeinterface; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; + import java.util.ArrayList; diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupGuildNotifyInfo.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupGuildNotifyInfo.java index 2a56d502..61c6fc78 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupGuildNotifyInfo.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupGuildNotifyInfo.java @@ -1,5 +1,7 @@ package com.tencent.qqnt.kernel.nativeinterface; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; + import java.util.ArrayList; diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberCommonListResult.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberCommonListResult.java new file mode 100644 index 00000000..64294363 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberCommonListResult.java @@ -0,0 +1,36 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +import java.util.ArrayList; + +public class GroupMemberCommonListResult { + public long groupCode; + public int identifyFlag; + public long startUin; + public ArrayList memberList = new ArrayList<>(); + public String strErrorInfo = ""; + + public long getGroupCode() { + return this.groupCode; + } + + public int getIdentifyFlag() { + return this.identifyFlag; + } + + public ArrayList getMemberList() { + return this.memberList; + } + + public long getStartUin() { + return this.startUin; + } + + public String getStrErrorInfo() { + return this.strErrorInfo; + } + + public String toString() { + return "GroupMemberCommonListResult{groupCode=" + this.groupCode + ",startUin=" + this.startUin + ",identifyFlag=" + this.identifyFlag + ",memberList=" + this.memberList + ",strErrorInfo=" + this.strErrorInfo + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberCommonReq.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberCommonReq.java new file mode 100644 index 00000000..4e8f194f --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberCommonReq.java @@ -0,0 +1,101 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +import java.util.ArrayList; + +public class GroupMemberCommonReq { + public long groupCode; + public int sourceType; + public String startUin = ""; + public String identifyFlag = ""; + public ArrayList uinList = new ArrayList<>(); + public MemberCommonInfoFilter memberCommonFilter = new MemberCommonInfoFilter(); + public String memberNum = ""; + public String filterMethod = ""; + public String onlineFlag = ""; + public String realSpecialTitleFlag = ""; + + public String getFilterMethod() { + return this.filterMethod; + } + + public long getGroupCode() { + return this.groupCode; + } + + public String getIdentifyFlag() { + return this.identifyFlag; + } + + public MemberCommonInfoFilter getMemberCommonFilter() { + return this.memberCommonFilter; + } + + public String getMemberNum() { + return this.memberNum; + } + + public String getOnlineFlag() { + return this.onlineFlag; + } + + public String getRealSpecialTitleFlag() { + return this.realSpecialTitleFlag; + } + + public int getSourceType() { + return this.sourceType; + } + + public String getStartUin() { + return this.startUin; + } + + public ArrayList getUinList() { + return this.uinList; + } + + public void setFilterMethod(String str) { + this.filterMethod = str; + } + + public void setGroupCode(long j2) { + this.groupCode = j2; + } + + public void setIdentifyFlag(String str) { + this.identifyFlag = str; + } + + public void setMemberCommonFilter(MemberCommonInfoFilter memberCommonInfoFilter) { + this.memberCommonFilter = memberCommonInfoFilter; + } + + public void setMemberNum(String str) { + this.memberNum = str; + } + + public void setOnlineFlag(String str) { + this.onlineFlag = str; + } + + public void setRealSpecialTitleFlag(String str) { + this.realSpecialTitleFlag = str; + } + + public void setSourceType(int i2) { + this.sourceType = i2; + } + + public void setStartUin(String str) { + this.startUin = str; + } + + public void setUinList(ArrayList arrayList) { + this.uinList = arrayList; + } + + public String toString() { + return "GroupMemberCommonReq{groupCode=" + this.groupCode + ",startUin=" + this.startUin + ",identifyFlag=" + this.identifyFlag + ",uinList=" + this.uinList + ",memberCommonFilter=" + this.memberCommonFilter + ",memberNum=" + this.memberNum + ",filterMethod=" + this.filterMethod + ",onlineFlag=" + this.onlineFlag + ",realSpecialTitleFlag=" + this.realSpecialTitleFlag + ",sourceType=" + this.sourceType + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberExtListResult.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberExtListResult.java new file mode 100644 index 00000000..57343fd3 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberExtListResult.java @@ -0,0 +1,81 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +import java.util.ArrayList; + +public class GroupMemberExtListResult { + public long dataTime; + public long endUin; + public long groupCode; + public int levelNameSeq; + public int memberInfoSeq; + public int sysShowFlag; + public int timeToUpdate; + public int userShowFlag; + public int userShowFlagNew; + public ArrayList memberLevelInfo = new ArrayList<>(); + public ArrayList msgLevelName = new ArrayList<>(); + public String strOwnerName = ""; + public String strAdminName = ""; + public ArrayList msgLevelNameNew = new ArrayList<>(); + + public long getDataTime() { + return this.dataTime; + } + + public long getEndUin() { + return this.endUin; + } + + public long getGroupCode() { + return this.groupCode; + } + + public int getLevelNameSeq() { + return this.levelNameSeq; + } + + public int getMemberInfoSeq() { + return this.memberInfoSeq; + } + + public ArrayList getMemberLevelInfo() { + return this.memberLevelInfo; + } + + public ArrayList getMsgLevelName() { + return this.msgLevelName; + } + + public ArrayList getMsgLevelNameNew() { + return this.msgLevelNameNew; + } + + public String getStrAdminName() { + return this.strAdminName; + } + + public String getStrOwnerName() { + return this.strOwnerName; + } + + public int getSysShowFlag() { + return this.sysShowFlag; + } + + public int getTimeToUpdate() { + return this.timeToUpdate; + } + + public int getUserShowFlag() { + return this.userShowFlag; + } + + public int getUserShowFlagNew() { + return this.userShowFlagNew; + } + + public String toString() { + return "GroupMemberExtListResult{groupCode=" + this.groupCode + ",memberLevelInfo=" + this.memberLevelInfo + ",msgLevelName=" + this.msgLevelName + ",endUin=" + this.endUin + ",dataTime=" + this.dataTime + ",userShowFlag=" + this.userShowFlag + ",sysShowFlag=" + this.sysShowFlag + ",timeToUpdate=" + this.timeToUpdate + ",strOwnerName=" + this.strOwnerName + ",strAdminName=" + this.strAdminName + ",levelNameSeq=" + this.levelNameSeq + ",userShowFlagNew=" + this.userShowFlagNew + ",msgLevelNameNew=" + this.msgLevelNameNew + ",memberInfoSeq=" + this.memberInfoSeq + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberExtReq.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberExtReq.java new file mode 100644 index 00000000..58a4c664 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberExtReq.java @@ -0,0 +1,101 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +import java.util.ArrayList; + +public class GroupMemberExtReq { + public long groupCode; + public int sourceType; + public String beginUin = ""; + public String dataTime = ""; + public ArrayList uinList = new ArrayList<>(); + public MemberExtInfoFilter memberExtFilter = new MemberExtInfoFilter(); + public String seq = ""; + public String uinNum = ""; + public String groupType = ""; + public String richCardNameVer = ""; + + public String getBeginUin() { + return this.beginUin; + } + + public String getDataTime() { + return this.dataTime; + } + + public long getGroupCode() { + return this.groupCode; + } + + public String getGroupType() { + return this.groupType; + } + + public MemberExtInfoFilter getMemberExtFilter() { + return this.memberExtFilter; + } + + public String getRichCardNameVer() { + return this.richCardNameVer; + } + + public String getSeq() { + return this.seq; + } + + public int getSourceType() { + return this.sourceType; + } + + public ArrayList getUinList() { + return this.uinList; + } + + public String getUinNum() { + return this.uinNum; + } + + public void setBeginUin(String str) { + this.beginUin = str; + } + + public void setDataTime(String str) { + this.dataTime = str; + } + + public void setGroupCode(long j2) { + this.groupCode = j2; + } + + public void setGroupType(String str) { + this.groupType = str; + } + + public void setMemberExtFilter(MemberExtInfoFilter memberExtInfoFilter) { + this.memberExtFilter = memberExtInfoFilter; + } + + public void setRichCardNameVer(String str) { + this.richCardNameVer = str; + } + + public void setSeq(String str) { + this.seq = str; + } + + public void setSourceType(int i2) { + this.sourceType = i2; + } + + public void setUinList(ArrayList arrayList) { + this.uinList = arrayList; + } + + public void setUinNum(String str) { + this.uinNum = str; + } + + public String toString() { + return "GroupMemberExtReq{groupCode=" + this.groupCode + ",beginUin=" + this.beginUin + ",dataTime=" + this.dataTime + ",uinList=" + this.uinList + ",memberExtFilter=" + this.memberExtFilter + ",seq=" + this.seq + ",uinNum=" + this.uinNum + ",groupType=" + this.groupType + ",richCardNameVer=" + this.richCardNameVer + ",sourceType=" + this.sourceType + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberListResult.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberListResult.java new file mode 100644 index 00000000..827b9181 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/GroupMemberListResult.java @@ -0,0 +1,32 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +import java.util.ArrayList; +import java.util.HashMap; + +public class GroupMemberListResult { + public boolean finish; + public boolean hasRobot; + public ArrayList ids = new ArrayList<>(); + public HashMap infos = new HashMap<>(); + + public boolean getFinish() { + return this.finish; + } + + public boolean getHasRobot() { + return this.hasRobot; + } + + public ArrayList getIds() { + return this.ids; + } + + public HashMap getInfos() { + return this.infos; + } + + public String toString() { + return "GroupMemberListResult{ids=" + this.ids + ",infos=" + this.infos + ",finish=" + this.finish + ",hasRobot=" + this.hasRobot + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberCommonCallback.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberCommonCallback.java new file mode 100644 index 00000000..04f171fb --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberCommonCallback.java @@ -0,0 +1,6 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +public interface IGroupMemberCommonCallback { + void onResult(int i2, String str, GroupMemberCommonListResult groupMemberCommonListResult); + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberExtCallback.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberExtCallback.java new file mode 100644 index 00000000..3db7b325 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberExtCallback.java @@ -0,0 +1,5 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +public interface IGroupMemberExtCallback { + void onResult(int i2, String str, GroupMemberExtListResult groupMemberExtListResult); +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberListCallback.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberListCallback.java new file mode 100644 index 00000000..9d3db687 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IGroupMemberListCallback.java @@ -0,0 +1,6 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +public interface IGroupMemberListCallback { + void onResult(int result, String str, GroupMemberListResult groupMemberListResult); + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelGroupService.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelGroupService.java index 3be776d9..c13e36c8 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelGroupService.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelGroupService.java @@ -1,7 +1,25 @@ package com.tencent.qqnt.kernel.nativeinterface; +import java.util.ArrayList; + public interface IKernelGroupService { void getTransferableMemberInfo(long uin, IGetTransferableMemberCallback cb); long addKernelGroupListener(IKernelGroupListener ln); + + void getAllMemberList(long groupCode, boolean refresh, IGroupMemberListCallback iGroupMemberListCallback); + + void getMemberCommonInfo(GroupMemberCommonReq groupMemberCommonReq, IGroupMemberCommonCallback iGroupMemberCommonCallback); + + void getMemberExtInfo(GroupMemberExtReq groupMemberExtReq, IGroupMemberExtCallback iGroupMemberExtCallback); + + void getMemberInfo(long j2, ArrayList arrayList, boolean z, IOperateCallback iOperateCallback); + + void getMemberInfoForMqq(long groupCode, ArrayList uids, boolean z, IGroupMemberListCallback iGroupMemberListCallback); + + void getNextMemberList(String sceneId, GroupMemberInfoListId groupMemberInfoListId, int i2, IGroupMemberListCallback iGroupMemberListCallback); + + void getPrevMemberList(String sceneId, GroupMemberInfoListId groupMemberInfoListId, int i2, IGroupMemberListCallback iGroupMemberListCallback); + + } diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelMsgListener.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelMsgListener.java index ce24afbf..22aa847f 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelMsgListener.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelMsgListener.java @@ -1,5 +1,7 @@ package com.tencent.qqnt.kernel.nativeinterface; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; + import java.util.ArrayList; import java.util.HashMap; @@ -116,7 +118,7 @@ public interface IKernelMsgListener { void onSendMsgError(long j2, Contact contact, int i2, String str); - void onSysMsgNotification(int i2, long j2, long j3, ArrayList arrayList); + void onSysMsgNotification(int i2, long j2, long j3, boolean z, ArrayList arrayList); void onTempChatInfoUpdate(TempChatInfo tempChatInfo); diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelMsgService.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelMsgService.java index 60d46389..8a0a5248 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelMsgService.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelMsgService.java @@ -1,5 +1,7 @@ package com.tencent.qqnt.kernel.nativeinterface; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; + import org.jetbrains.annotations.NotNull; import java.util.ArrayList; diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelRichMediaService.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelRichMediaService.java index 7201af51..9d0393cf 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelRichMediaService.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/IKernelRichMediaService.java @@ -1,5 +1,7 @@ package com.tencent.qqnt.kernel.nativeinterface; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; + import java.util.ArrayList; public interface IKernelRichMediaService { diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberCommonInfo.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberCommonInfo.java new file mode 100644 index 00000000..c18d65d2 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberCommonInfo.java @@ -0,0 +1,63 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +public class MemberCommonInfo { + public long memberUin; + public int privilege; + public int shutUpTime; + public int uinFlag; + public int uinFlagExt; + public int uinMobileFlag; + + public long getMemberUin() { + return this.memberUin; + } + + public int getPrivilege() { + return this.privilege; + } + + public int getShutUpTime() { + return this.shutUpTime; + } + + public int getUinFlag() { + return this.uinFlag; + } + + public int getUinFlagExt() { + return this.uinFlagExt; + } + + public int getUinMobileFlag() { + return this.uinMobileFlag; + } + + public void setMemberUin(long j2) { + this.memberUin = j2; + } + + public void setPrivilege(int i2) { + this.privilege = i2; + } + + public void setShutUpTime(int i2) { + this.shutUpTime = i2; + } + + public void setUinFlag(int i2) { + this.uinFlag = i2; + } + + public void setUinFlagExt(int i2) { + this.uinFlagExt = i2; + } + + public void setUinMobileFlag(int i2) { + this.uinMobileFlag = i2; + } + + public String toString() { + return "MemberCommonInfo{memberUin=" + this.memberUin + ",uinFlag=" + this.uinFlag + ",uinFlagExt=" + this.uinFlagExt + ",uinMobileFlag=" + this.uinMobileFlag + ",shutUpTime=" + this.shutUpTime + ",privilege=" + this.privilege + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberCommonInfoFilter.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberCommonInfoFilter.java new file mode 100644 index 00000000..0ee9fa6c --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberCommonInfoFilter.java @@ -0,0 +1,63 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +public class MemberCommonInfoFilter { + public int memberUin; + public int privilege; + public int shutUpTime; + public int uinFlag; + public int uinFlagExt; + public int uinMobileFlag; + + public int getMemberUin() { + return this.memberUin; + } + + public int getPrivilege() { + return this.privilege; + } + + public int getShutUpTime() { + return this.shutUpTime; + } + + public int getUinFlag() { + return this.uinFlag; + } + + public int getUinFlagExt() { + return this.uinFlagExt; + } + + public int getUinMobileFlag() { + return this.uinMobileFlag; + } + + public void setMemberUin(int i2) { + this.memberUin = i2; + } + + public void setPrivilege(int i2) { + this.privilege = i2; + } + + public void setShutUpTime(int i2) { + this.shutUpTime = i2; + } + + public void setUinFlag(int i2) { + this.uinFlag = i2; + } + + public void setUinFlagExt(int i2) { + this.uinFlagExt = i2; + } + + public void setUinMobileFlag(int i2) { + this.uinMobileFlag = i2; + } + + public String toString() { + return "MemberCommonInfoFilter{memberUin=" + this.memberUin + ",uinFlag=" + this.uinFlag + ",uinFlagExt=" + this.uinFlagExt + ",uinMobileFlag=" + this.uinMobileFlag + ",shutUpTime=" + this.shutUpTime + ",privilege=" + this.privilege + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberExtInfo.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberExtInfo.java new file mode 100644 index 00000000..fce72e88 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberExtInfo.java @@ -0,0 +1,110 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +import java.util.ArrayList; + +public class MemberExtInfo { + public int activeDay; + public int cmdUinFlagExt3Grocery; + public int level; + public int point; + public long specialTitleExpireTime; + public long uin; + public String strName = ""; + public String nickName = ""; + public String specialTitle = ""; + public byte[] msgNeedField = new byte[0]; + public ArrayList memberIconList = new ArrayList<>(); + + public int getActiveDay() { + return this.activeDay; + } + + public int getCmdUinFlagExt3Grocery() { + return this.cmdUinFlagExt3Grocery; + } + + public int getLevel() { + return this.level; + } + + public ArrayList getMemberIconList() { + return this.memberIconList; + } + + public byte[] getMsgNeedField() { + return this.msgNeedField; + } + + public String getNickName() { + return this.nickName; + } + + public int getPoint() { + return this.point; + } + + public String getSpecialTitle() { + return this.specialTitle; + } + + public long getSpecialTitleExpireTime() { + return this.specialTitleExpireTime; + } + + public String getStrName() { + return this.strName; + } + + public long getUin() { + return this.uin; + } + + public void setActiveDay(int i2) { + this.activeDay = i2; + } + + public void setCmdUinFlagExt3Grocery(int i2) { + this.cmdUinFlagExt3Grocery = i2; + } + + public void setLevel(int i2) { + this.level = i2; + } + + public void setMemberIconList(ArrayList arrayList) { + this.memberIconList = arrayList; + } + + public void setMsgNeedField(byte[] bArr) { + this.msgNeedField = bArr; + } + + public void setNickName(String str) { + this.nickName = str; + } + + public void setPoint(int i2) { + this.point = i2; + } + + public void setSpecialTitle(String str) { + this.specialTitle = str; + } + + public void setSpecialTitleExpireTime(long j2) { + this.specialTitleExpireTime = j2; + } + + public void setStrName(String str) { + this.strName = str; + } + + public void setUin(long j2) { + this.uin = j2; + } + + public String toString() { + return "MemberExtInfo{uin=" + this.uin + ",point=" + this.point + ",activeDay=" + this.activeDay + ",level=" + this.level + ",strName=" + this.strName + ",nickName=" + this.nickName + ",specialTitle=" + this.specialTitle + ",specialTitleExpireTime=" + this.specialTitleExpireTime + ",msgNeedField=" + this.msgNeedField + ",cmdUinFlagExt3Grocery=" + this.cmdUinFlagExt3Grocery + ",memberIconList=" + this.memberIconList + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberExtInfoFilter.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberExtInfoFilter.java new file mode 100644 index 00000000..b527e1cf --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberExtInfoFilter.java @@ -0,0 +1,171 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +public class MemberExtInfoFilter { + public int cmdUinFlagExt3Grocery; + public int dataTime; + public int levelName; + public int levelNameNew; + public int memberIcon; + public int memberInfoSeq; + public int memberLevelInfoActiveDay; + public int memberLevelInfoLevel; + public int memberLevelInfoName; + public int memberLevelInfoPoint; + public int memberLevelInfoUin; + public int msgNeedField; + public int nickName; + public int specialTitle; + public int sysShowFlag; + public int timeToUpdate; + public int userShowFlag; + public int userShowFlagNew; + + public int getCmdUinFlagExt3Grocery() { + return this.cmdUinFlagExt3Grocery; + } + + public int getDataTime() { + return this.dataTime; + } + + public int getLevelName() { + return this.levelName; + } + + public int getLevelNameNew() { + return this.levelNameNew; + } + + public int getMemberIcon() { + return this.memberIcon; + } + + public int getMemberInfoSeq() { + return this.memberInfoSeq; + } + + public int getMemberLevelInfoActiveDay() { + return this.memberLevelInfoActiveDay; + } + + public int getMemberLevelInfoLevel() { + return this.memberLevelInfoLevel; + } + + public int getMemberLevelInfoName() { + return this.memberLevelInfoName; + } + + public int getMemberLevelInfoPoint() { + return this.memberLevelInfoPoint; + } + + public int getMemberLevelInfoUin() { + return this.memberLevelInfoUin; + } + + public int getMsgNeedField() { + return this.msgNeedField; + } + + public int getNickName() { + return this.nickName; + } + + public int getSpecialTitle() { + return this.specialTitle; + } + + public int getSysShowFlag() { + return this.sysShowFlag; + } + + public int getTimeToUpdate() { + return this.timeToUpdate; + } + + public int getUserShowFlag() { + return this.userShowFlag; + } + + public int getUserShowFlagNew() { + return this.userShowFlagNew; + } + + public void setCmdUinFlagExt3Grocery(int i2) { + this.cmdUinFlagExt3Grocery = i2; + } + + public void setDataTime(int i2) { + this.dataTime = i2; + } + + public void setLevelName(int i2) { + this.levelName = i2; + } + + public void setLevelNameNew(int i2) { + this.levelNameNew = i2; + } + + public void setMemberIcon(int i2) { + this.memberIcon = i2; + } + + public void setMemberInfoSeq(int i2) { + this.memberInfoSeq = i2; + } + + public void setMemberLevelInfoActiveDay(int i2) { + this.memberLevelInfoActiveDay = i2; + } + + public void setMemberLevelInfoLevel(int i2) { + this.memberLevelInfoLevel = i2; + } + + public void setMemberLevelInfoName(int i2) { + this.memberLevelInfoName = i2; + } + + public void setMemberLevelInfoPoint(int i2) { + this.memberLevelInfoPoint = i2; + } + + public void setMemberLevelInfoUin(int i2) { + this.memberLevelInfoUin = i2; + } + + public void setMsgNeedField(int i2) { + this.msgNeedField = i2; + } + + public void setNickName(int i2) { + this.nickName = i2; + } + + public void setSpecialTitle(int i2) { + this.specialTitle = i2; + } + + public void setSysShowFlag(int i2) { + this.sysShowFlag = i2; + } + + public void setTimeToUpdate(int i2) { + this.timeToUpdate = i2; + } + + public void setUserShowFlag(int i2) { + this.userShowFlag = i2; + } + + public void setUserShowFlagNew(int i2) { + this.userShowFlagNew = i2; + } + + public String toString() { + return "MemberExtInfoFilter{memberLevelInfoUin=" + this.memberLevelInfoUin + ",memberLevelInfoPoint=" + this.memberLevelInfoPoint + ",memberLevelInfoActiveDay=" + this.memberLevelInfoActiveDay + ",memberLevelInfoLevel=" + this.memberLevelInfoLevel + ",memberLevelInfoName=" + this.memberLevelInfoName + ",levelName=" + this.levelName + ",dataTime=" + this.dataTime + ",userShowFlag=" + this.userShowFlag + ",sysShowFlag=" + this.sysShowFlag + ",timeToUpdate=" + this.timeToUpdate + ",nickName=" + this.nickName + ",specialTitle=" + this.specialTitle + ",levelNameNew=" + this.levelNameNew + ",userShowFlagNew=" + this.userShowFlagNew + ",msgNeedField=" + this.msgNeedField + ",cmdUinFlagExt3Grocery=" + this.cmdUinFlagExt3Grocery + ",memberIcon=" + this.memberIcon + ",memberInfoSeq=" + this.memberInfoSeq + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberIcon.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberIcon.java new file mode 100644 index 00000000..ffcf8e4a --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberIcon.java @@ -0,0 +1,29 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +public class MemberIcon { + public int bizId; + public byte[] exInfo = new byte[0]; + public long expireTime; + public int resId; + + public int getBizId() { + return this.bizId; + } + + public byte[] getExInfo() { + return this.exInfo; + } + + public long getExpireTime() { + return this.expireTime; + } + + public int getResId() { + return this.resId; + } + + public String toString() { + return "MemberIcon{resId=" + this.resId + ",expireTime=" + this.expireTime + ",bizId=" + this.bizId + ",exInfo=" + this.exInfo + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberInfo.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberInfo.java index e22aef1c..a16c94d4 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberInfo.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberInfo.java @@ -1,51 +1,146 @@ package com.tencent.qqnt.kernel.nativeinterface; +import com.tencent.qqnt.kernelpublic.nativeinterface.MemberRole; + public final class MemberInfo implements IKernelModel { - String avatarPath; - String cardName; - int cardType; - boolean isDelete; - boolean isSpecialConcerned; - String nick; - String qid; - String remark; - MemberRole role; - long serialVersionUID; - int shutUpTime; - String uid; - long uin; - - public MemberInfo() { - this.serialVersionUID = 1L; - this.uid = ""; - this.qid = ""; - this.nick = ""; - this.remark = ""; - this.cardName = ""; - this.role = MemberRole.values()[0]; - this.avatarPath = ""; + public int bigClubFlag; + public int bigClubLevel; + public int cardNameId; + public int cardType; + public int creditLevel; + public int globalGroupLevel; + public int globalGroupPoint; + public boolean isDelete; + public boolean isRobot; + public boolean isSpecialConcerned; + public boolean isSpecialShielded; + public int joinTime; + public int lastSpeakTime; + public int memberFlag; + public int memberFlagExt; + public int memberFlagExt2; + public int memberLevel; + public int memberMobileFlag; + public int memberTitleId; + public int mssVipType; + public int richFlag; + public int shutUpTime; + public long specialTitleExpireTime; + public long uin; + public int userShowFlag; + public int userShowFlagNew; + long serialVersionUID = 1; + public String uid = ""; + public String qid = ""; + public String nick = ""; + public String remark = ""; + public String cardName = ""; + public MemberRole role = MemberRole.values()[0]; + public String avatarPath = ""; + public byte[] groupHonor = new byte[0]; + public String memberSpecialTitle = ""; + public String autoRemark = ""; + + public String getAutoRemark() { + return this.autoRemark; } public String getAvatarPath() { return this.avatarPath; } + public int getBigClubFlag() { + return this.bigClubFlag; + } + + public int getBigClubLevel() { + return this.bigClubLevel; + } + public String getCardName() { return this.cardName; } + public int getCardNameId() { + return this.cardNameId; + } + public int getCardType() { return this.cardType; } + public int getCreditLevel() { + return this.creditLevel; + } + + public int getGlobalGroupLevel() { + return this.globalGroupLevel; + } + + public int getGlobalGroupPoint() { + return this.globalGroupPoint; + } + + public byte[] getGroupHonor() { + return this.groupHonor; + } + public boolean getIsDelete() { return this.isDelete; } + public boolean getIsRobot() { + return this.isRobot; + } + public boolean getIsSpecialConcerned() { return this.isSpecialConcerned; } + public boolean getIsSpecialShielded() { + return this.isSpecialShielded; + } + + public int getJoinTime() { + return this.joinTime; + } + + public int getLastSpeakTime() { + return this.lastSpeakTime; + } + + public int getMemberFlag() { + return this.memberFlag; + } + + public int getMemberFlagExt() { + return this.memberFlagExt; + } + + public int getMemberFlagExt2() { + return this.memberFlagExt2; + } + + public int getMemberLevel() { + return this.memberLevel; + } + + public int getMemberMobileFlag() { + return this.memberMobileFlag; + } + + public String getMemberSpecialTitle() { + return this.memberSpecialTitle; + } + + public int getMemberTitleId() { + return this.memberTitleId; + } + + public int getMssVipType() { + return this.mssVipType; + } + public String getNick() { return this.nick; } @@ -58,6 +153,10 @@ public String getRemark() { return this.remark; } + public int getRichFlag() { + return this.richFlag; + } + public MemberRole getRole() { return this.role; } @@ -66,6 +165,10 @@ public int getShutUpTime() { return this.shutUpTime; } + public long getSpecialTitleExpireTime() { + return this.specialTitleExpireTime; + } + public String getUid() { return this.uid; } @@ -74,26 +177,114 @@ public long getUin() { return this.uin; } + public int getUserShowFlag() { + return this.userShowFlag; + } + + public int getUserShowFlagNew() { + return this.userShowFlagNew; + } + + public void setAutoRemark(String str) { + this.autoRemark = str; + } + public void setAvatarPath(String str) { this.avatarPath = str; } + public void setBigClubFlag(int i2) { + this.bigClubFlag = i2; + } + + public void setBigClubLevel(int i2) { + this.bigClubLevel = i2; + } + public void setCardName(String str) { this.cardName = str; } + public void setCardNameId(int i2) { + this.cardNameId = i2; + } + public void setCardType(int i2) { this.cardType = i2; } + public void setCreditLevel(int i2) { + this.creditLevel = i2; + } + + public void setGlobalGroupLevel(int i2) { + this.globalGroupLevel = i2; + } + + public void setGlobalGroupPoint(int i2) { + this.globalGroupPoint = i2; + } + + public void setGroupHonor(byte[] bArr) { + this.groupHonor = bArr; + } + public void setIsDelete(boolean z) { this.isDelete = z; } + public void setIsRobot(boolean z) { + this.isRobot = z; + } + public void setIsSpecialConcerned(boolean z) { this.isSpecialConcerned = z; } + public void setIsSpecialShielded(boolean z) { + this.isSpecialShielded = z; + } + + public void setJoinTime(int i2) { + this.joinTime = i2; + } + + public void setLastSpeakTime(int i2) { + this.lastSpeakTime = i2; + } + + public void setMemberFlag(int i2) { + this.memberFlag = i2; + } + + public void setMemberFlagExt(int i2) { + this.memberFlagExt = i2; + } + + public void setMemberFlagExt2(int i2) { + this.memberFlagExt2 = i2; + } + + public void setMemberLevel(int i2) { + this.memberLevel = i2; + } + + public void setMemberMobileFlag(int i2) { + this.memberMobileFlag = i2; + } + + public void setMemberSpecialTitle(String str) { + this.memberSpecialTitle = str; + } + + public void setMemberTitleId(int i2) { + this.memberTitleId = i2; + } + + public void setMssVipType(int i2) { + this.mssVipType = i2; + } + public void setNick(String str) { this.nick = str; } @@ -106,6 +297,10 @@ public void setRemark(String str) { this.remark = str; } + public void setRichFlag(int i2) { + this.richFlag = i2; + } + public void setRole(MemberRole memberRole) { this.role = memberRole; } @@ -114,6 +309,10 @@ public void setShutUpTime(int i2) { this.shutUpTime = i2; } + public void setSpecialTitleExpireTime(long j2) { + this.specialTitleExpireTime = j2; + } + public void setUid(String str) { this.uid = str; } @@ -122,30 +321,16 @@ public void setUin(long j2) { this.uin = j2; } + public void setUserShowFlag(int i2) { + this.userShowFlag = i2; + } + + public void setUserShowFlagNew(int i2) { + this.userShowFlagNew = i2; + } + public String toString() { - return "MemberInfo{uid=" + this.uid + ",qid=" + this.qid + ",uin=" + this.uin + ",nick=" + this.nick + ",remark=" + this.remark + ",cardType=" + this.cardType + ",cardName=" + this.cardName + ",role=" + this.role + ",avatarPath=" + this.avatarPath + ",shutUpTime=" + this.shutUpTime + ",isDelete=" + this.isDelete + ",isSpecialConcerned=" + this.isSpecialConcerned + ",}"; - } - - public MemberInfo(String str, String str2, long j2, String str3, String str4, int i2, String str5, MemberRole memberRole, String str6, int i3, boolean z, boolean z2) { - this.serialVersionUID = 1L; - this.uid = ""; - this.qid = ""; - this.nick = ""; - this.remark = ""; - this.cardName = ""; - this.role = MemberRole.values()[0]; - this.avatarPath = ""; - this.uid = str; - this.qid = str2; - this.uin = j2; - this.nick = str3; - this.remark = str4; - this.cardType = i2; - this.cardName = str5; - this.role = memberRole; - this.avatarPath = str6; - this.shutUpTime = i3; - this.isDelete = z; - this.isSpecialConcerned = z2; + return "MemberInfo{uid=" + this.uid + ",qid=" + this.qid + ",uin=" + this.uin + ",nick=" + this.nick + ",remark=" + this.remark + ",cardType=" + this.cardType + ",cardName=" + this.cardName + ",role=" + this.role + ",avatarPath=" + this.avatarPath + ",shutUpTime=" + this.shutUpTime + ",isDelete=" + this.isDelete + ",isSpecialConcerned=" + this.isSpecialConcerned + ",isRobot=" + this.isRobot + ",groupHonor=" + this.groupHonor + ",memberLevel=" + this.memberLevel + ",globalGroupLevel=" + this.globalGroupLevel + ",globalGroupPoint=" + this.globalGroupPoint + ",memberTitleId=" + this.memberTitleId + ",memberSpecialTitle=" + this.memberSpecialTitle + ",specialTitleExpireTime=" + this.specialTitleExpireTime + ",userShowFlag=" + this.userShowFlag + ",userShowFlagNew=" + this.userShowFlagNew + ",richFlag=" + this.richFlag + ",mssVipType=" + this.mssVipType + ",bigClubLevel=" + this.bigClubLevel + ",bigClubFlag=" + this.bigClubFlag + ",autoRemark=" + this.autoRemark + ",creditLevel=" + this.creditLevel + ",joinTime=" + this.joinTime + ",lastSpeakTime=" + this.lastSpeakTime + ",memberFlag=" + this.memberFlag + ",memberFlagExt=" + this.memberFlagExt + ",memberMobileFlag=" + this.memberMobileFlag + ",memberFlagExt2=" + this.memberFlagExt2 + ",isSpecialShielded=" + this.isSpecialShielded + ",cardNameId=" + this.cardNameId + ",}"; } + } \ No newline at end of file diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberLevelName.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberLevelName.java new file mode 100644 index 00000000..e5c7f2e6 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MemberLevelName.java @@ -0,0 +1,19 @@ +package com.tencent.qqnt.kernel.nativeinterface; + +public class MemberLevelName { + public int level; + public String strName = ""; + + public int getLevel() { + return this.level; + } + + public String getStrName() { + return this.strName; + } + + public String toString() { + return "MemberLevelName{level=" + this.level + ",strName=" + this.strName + ",}"; + } + +} diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MsgAbstract.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MsgAbstract.java index adcb042f..d3ebe6d1 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MsgAbstract.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/MsgAbstract.java @@ -1,5 +1,7 @@ package com.tencent.qqnt.kernel.nativeinterface; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; + import java.io.Serializable; import java.util.ArrayList; diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/UnreadCntInfo.java b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/UnreadCntInfo.java index 010695ee..969dfeaa 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/UnreadCntInfo.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/UnreadCntInfo.java @@ -1,6 +1,7 @@ package com.tencent.qqnt.kernel.nativeinterface; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; public final class UnreadCntInfo { UnreadCnt allUnreadCnt; diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/Contact.java b/qqinterface/src/main/java/com/tencent/qqnt/kernelpublic/nativeinterface/Contact.java similarity index 90% rename from qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/Contact.java rename to qqinterface/src/main/java/com/tencent/qqnt/kernelpublic/nativeinterface/Contact.java index 9497f664..aa7965d7 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/kernel/nativeinterface/Contact.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernelpublic/nativeinterface/Contact.java @@ -1,4 +1,6 @@ -package com.tencent.qqnt.kernel.nativeinterface; +package com.tencent.qqnt.kernelpublic.nativeinterface; + +import com.tencent.qqnt.kernel.nativeinterface.IKernelModel; import java.io.Serializable; diff --git a/qqinterface/src/main/java/com/tencent/qqnt/kernelpublic/nativeinterface/MemberRole.java b/qqinterface/src/main/java/com/tencent/qqnt/kernelpublic/nativeinterface/MemberRole.java new file mode 100644 index 00000000..62056b20 --- /dev/null +++ b/qqinterface/src/main/java/com/tencent/qqnt/kernelpublic/nativeinterface/MemberRole.java @@ -0,0 +1,9 @@ +package com.tencent.qqnt.kernelpublic.nativeinterface; + +public enum MemberRole { + UNSPECIFIED, + STRANGER, + MEMBER, + ADMIN, + OWNER +} \ No newline at end of file diff --git a/qqinterface/src/main/java/com/tencent/qqnt/msg/api/IMsgService.java b/qqinterface/src/main/java/com/tencent/qqnt/msg/api/IMsgService.java index 0dcea3d2..acdec252 100644 --- a/qqinterface/src/main/java/com/tencent/qqnt/msg/api/IMsgService.java +++ b/qqinterface/src/main/java/com/tencent/qqnt/msg/api/IMsgService.java @@ -2,6 +2,7 @@ import com.tencent.mobileqq.qroute.QRouteApi; import com.tencent.qqnt.kernel.nativeinterface.*; +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -9,7 +10,6 @@ import java.util.ArrayList; import java.util.HashMap; -import kotlin.Pair; import kotlinx.coroutines.flow.Flow; public interface IMsgService extends QRouteApi { diff --git a/xposed/src/main/java/kritor/service/GroupService.kt b/xposed/src/main/java/kritor/service/GroupService.kt index 69e8e755..7f12461c 100644 --- a/xposed/src/main/java/kritor/service/GroupService.kt +++ b/xposed/src/main/java/kritor/service/GroupService.kt @@ -8,6 +8,7 @@ import moe.fuqiuluo.shamrock.helper.TroopHonorHelper.decodeHonor import moe.fuqiuluo.shamrock.tools.ifNullOrEmpty import qq.service.contact.ContactHelper import qq.service.group.GroupHelper +import tencent.im.troop.honor.troop_honor internal object GroupService : GroupServiceGrpcKt.GroupServiceCoroutineImplBase() { @Grpc("GroupService", "BanMember") @@ -279,7 +280,7 @@ internal object GroupService : GroupServiceGrpcKt.GroupServiceCoroutineImplBase( @Grpc("GroupService", "GetGroupMemberList") override suspend fun getGroupMemberList(request: GetGroupMemberListRequest): GetGroupMemberListResponse { val memberList = GroupHelper.getGroupMemberList( - request.groupId.toString(), + request.groupId, if (request.hasRefresh()) request.refresh else false ).onFailure { throw StatusRuntimeException( @@ -287,30 +288,28 @@ internal object GroupService : GroupServiceGrpcKt.GroupServiceCoroutineImplBase( ) }.getOrThrow() return GetGroupMemberListResponse.newBuilder().apply { - memberList.forEach { memberInfo -> + memberList.values.forEach { memberInfo -> this.addGroupMembersInfo(GroupMemberInfo.newBuilder().apply { - uid = ContactHelper.getUidByUinAsync(memberInfo.memberuin?.toLong() ?: 0) - uin = memberInfo.memberuin?.toLong() ?: 0 - nick = memberInfo.troopnick - .ifNullOrEmpty { memberInfo.hwName } - .ifNullOrEmpty { memberInfo.troopColorNick } - .ifNullOrEmpty { memberInfo.friendnick } ?: "" - age = memberInfo.age.toInt() - uniqueTitle = memberInfo.mUniqueTitle ?: "" - uniqueTitleExpireTime = memberInfo.mUniqueTitleExpire - card = memberInfo.troopnick.ifNullOrEmpty { memberInfo.friendnick } ?: "" - joinTime = memberInfo.join_time - lastActiveTime = memberInfo.last_active_time - level = memberInfo.level - shutUpTimestamp = memberInfo.gagTimeStamp - - distance = memberInfo.distance - addAllHonors((memberInfo.honorList ?: "") - .split("|") - .filter { it.isNotBlank() } - .map { it.toInt() }) + uid = memberInfo.uid + uin = memberInfo.uin + nick = memberInfo.nick ?: "" + age = 0 + uniqueTitle = memberInfo.memberSpecialTitle ?: "" + uniqueTitleExpireTime = memberInfo.specialTitleExpireTime.toInt() + card = memberInfo.cardName.ifNullOrEmpty { memberInfo.nick } ?: "" + joinTime = memberInfo.joinTime.toLong() + lastActiveTime = memberInfo.lastSpeakTime.toLong() + level = memberInfo.memberLevel + shutUpTimestamp = memberInfo.shutUpTime.toLong() + + distance = 0 + addAllHonors(memberInfo.groupHonor.let { bytes -> + val honor = troop_honor.GroupUserCardHonor() + honor.mergeFrom(bytes) + honor.id.get() + }) unfriendly = false - cardChangeable = GroupHelper.isAdmin(request.groupId.toString()) + cardChangeable = memberInfo.role == com.tencent.qqnt.kernelpublic.nativeinterface.MemberRole.ADMIN }) } }.build() @@ -371,24 +370,25 @@ internal object GroupService : GroupServiceGrpcKt.GroupServiceCoroutineImplBase( @Grpc("GroupService", "GetGroupHonor") override suspend fun getGroupHonor(request: GetGroupHonorRequest): GetGroupHonorResponse { return GetGroupHonorResponse.newBuilder().apply { - GroupHelper.getGroupMemberList(request.groupId.toString(), true).onFailure { + GroupHelper.getGroupMemberList(request.groupId, true).onFailure { throw StatusRuntimeException( Status.INTERNAL.withDescription("unable to get group member list").withCause(it) ) }.onSuccess { memberList -> - memberList.forEach { member -> - (member.honorList ?: "").split("|") - .filter { it.isNotBlank() } - .map { it.toInt() }.forEach { - val honor = decodeHonor(member.memberuin.toLong(), it, member.mHonorRichFlag) + memberList.values.forEach { member -> + member.groupHonor.let { bytes -> + val honor = troop_honor.GroupUserCardHonor() + honor.mergeFrom(bytes) + honor.id.get() + }.forEach { + val honor = decodeHonor(member.uin, it, 0) if (honor != null) { addGroupHonorsInfo(GroupHonorInfo.newBuilder().apply { - uid = ContactHelper.getUidByUinAsync(member.memberuin.toLong()) - uin = member.memberuin.toLong() - nick = member.troopnick - .ifNullOrEmpty { member.hwName } - .ifNullOrEmpty { member.troopColorNick } - .ifNullOrEmpty { member.friendnick } ?: "" + uid = member.uid + uin = member.uin + nick = member.nick.ifEmpty { + member.cardName + } ?: "" honorName = honor.honorName avatar = honor.honorIconUrl id = honor.honorId diff --git a/xposed/src/main/java/kritor/service/MessageService.kt b/xposed/src/main/java/kritor/service/MessageService.kt index e7c1b9fe..3fde2481 100644 --- a/xposed/src/main/java/kritor/service/MessageService.kt +++ b/xposed/src/main/java/kritor/service/MessageService.kt @@ -1,7 +1,7 @@ package kritor.service import com.tencent.mobileqq.qroute.QRoute -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import com.tencent.qqnt.kernel.nativeinterface.MsgRecord import com.tencent.qqnt.msg.api.IMsgService @@ -103,7 +103,12 @@ internal object MessageService : MessageServiceGrpcKt.MessageServiceCoroutineImp Scene.STRANGER -> MsgConstant.KCHATTYPETEMPC2CFROMUNKNOWN Scene.UNRECOGNIZED -> throw StatusRuntimeException(Status.INVALID_ARGUMENT.withDescription("Unrecognized scene")) } - service.clearMsgRecords(Contact(chatType, contact.peer, contact.subPeer), null) + service.clearMsgRecords( + Contact( + chatType, + contact.peer, + contact.subPeer + ), null) return SetMessageReadResponse.newBuilder().build() } @@ -330,7 +335,7 @@ internal object MessageService : MessageServiceGrpcKt.MessageServiceCoroutineImp this.uid = detail.sender.uid }.build() detail.message?.elements?.toKritorResponseMessages( - com.tencent.qqnt.kernel.nativeinterface.Contact( + Contact( detail.msgType, detail.peerId.toString(), null diff --git a/xposed/src/main/java/qq/service/bdh/NtV2RichMediaSvc.kt b/xposed/src/main/java/qq/service/bdh/NtV2RichMediaSvc.kt index e5d2d95e..e80ef8e6 100644 --- a/xposed/src/main/java/qq/service/bdh/NtV2RichMediaSvc.kt +++ b/xposed/src/main/java/qq/service/bdh/NtV2RichMediaSvc.kt @@ -5,7 +5,7 @@ import androidx.exifinterface.media.ExifInterface import com.tencent.mobileqq.qroute.QRoute import com.tencent.qqnt.aio.adapter.api.IAIOPttApi import com.tencent.qqnt.kernel.nativeinterface.CommonFileInfo -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.FileTransNotifyInfo import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import com.tencent.qqnt.kernel.nativeinterface.MsgElement @@ -20,9 +20,11 @@ import kotlinx.coroutines.suspendCancellableCoroutine import kotlinx.coroutines.withTimeoutOrNull import moe.fuqiuluo.shamrock.config.ResourceGroup import moe.fuqiuluo.shamrock.config.ShamrockConfig +import moe.fuqiuluo.shamrock.helper.LogCenter import moe.fuqiuluo.shamrock.tools.hex2ByteArray import moe.fuqiuluo.shamrock.tools.ifNullOrEmpty import moe.fuqiuluo.shamrock.tools.slice +import moe.fuqiuluo.shamrock.tools.toHexString import moe.fuqiuluo.shamrock.utils.AudioUtils import moe.fuqiuluo.shamrock.utils.FileUtils import moe.fuqiuluo.shamrock.utils.MediaType @@ -353,7 +355,8 @@ internal object NtV2RichMediaSvc: QQInterfaces() { if (fromServiceMsg == null || fromServiceMsg.wupBuffer == null) { return Result.failure(Exception("unable to get multimedia pic info: ${fromServiceMsg?.wupBuffer}")) } - fromServiceMsg.wupBuffer.slice(4).decodeProtobuf().buffer.decodeProtobuf().download?.rkeyParam?.let { + LogCenter.log(fromServiceMsg.wupBuffer.toHexString()) + fromServiceMsg.wupBuffer.decodeProtobuf().buffer.decodeProtobuf().download?.rkeyParam?.let { return Result.success(it) } }.onFailure { @@ -446,7 +449,7 @@ internal object NtV2RichMediaSvc: QQInterfaces() { if (fromServiceMsg == null || fromServiceMsg.wupBuffer == null) { return Result.failure(Exception("unable to request upload nt pic")) } - val rspBuffer = fromServiceMsg.wupBuffer.slice(4).decodeProtobuf().buffer + val rspBuffer = fromServiceMsg.wupBuffer.decodeProtobuf().buffer val rsp = rspBuffer.decodeProtobuf() if (rsp.upload == null) { return Result.failure(Exception("unable to request upload nt pic: ${rsp.head}")) diff --git a/xposed/src/main/java/qq/service/contact/ContactExt.kt b/xposed/src/main/java/qq/service/contact/ContactExt.kt index c84740ac..5aa9a101 100644 --- a/xposed/src/main/java/qq/service/contact/ContactExt.kt +++ b/xposed/src/main/java/qq/service/contact/ContactExt.kt @@ -1,6 +1,6 @@ package qq.service.contact -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import io.kritor.common.Scene diff --git a/xposed/src/main/java/qq/service/group/GroupHelper.kt b/xposed/src/main/java/qq/service/group/GroupHelper.kt index 95436fa4..27a837c3 100644 --- a/xposed/src/main/java/qq/service/group/GroupHelper.kt +++ b/xposed/src/main/java/qq/service/group/GroupHelper.kt @@ -398,22 +398,46 @@ internal object GroupHelper: QQInterfaces() { sendOidb("OidbSvc.0x89a_0", 2202, 0, reqBody.toByteArray()) } - suspend fun getGroupMemberList(groupId: String, refresh: Boolean): Result> { - val service = app.getRuntimeService(ITroopMemberInfoService::class.java, "all") - var memberList = service.getAllTroopMembers(groupId) - if (refresh || memberList == null) { - memberList = requestTroopMemberInfo(service, groupId).onFailure { - return Result.failure(Exception("获取群成员列表失败")) - }.getOrThrow() + suspend fun getGroupMemberList(groupId: Long, refresh: Boolean): Result> { + val kernelService = NTServiceFetcher.kernelService + val sessionService = kernelService.wrapperSession + val service = sessionService.groupService + val uids = suspendCancellableCoroutine { continuation -> + service.getAllMemberList(groupId, refresh) { _, _, groupMemberListResult -> + continuation.resume(groupMemberListResult?.ids?.map { + it.uid + }) + } } - - getGroupInfo(groupId, true).onSuccess { - if(it.wMemberNum > memberList.size) { - return getGroupMemberList(groupId, true) + val memberMap = suspendCancellableCoroutine { continuation -> + service.getMemberInfoForMqq(groupId, ArrayList(uids ?: emptyList()), refresh) { _, _, groupMemberListResult -> + continuation.resume(groupMemberListResult.infos) } } +// val extInfo = suspendCancellableCoroutine { continuation -> +// service.getMemberExtInfo(GroupMemberExtReq().apply { +// this.groupCode = groupId +// this.beginUin = 0.toString() +// this.groupType = "" +// this.memberExtFilter = MemberExtInfoFilter().apply { +// this.memberLevelInfoName = 1 +// this.memberLevelInfoUin = 1 +// this.nickName = 1 +// this.specialTitle = 1 +// this.memberLevelInfoActiveDay = 1 +// } +// this.richCardNameVer = "1" +// this.sourceType = 1 +// this.uinList = ArrayList(memberMap.values.toList().map { +// it.uin +// }) +// }) { _, _, groupMemberExtListResult -> +// continuation.resume(groupMemberExtListResult) +// } +// } + + return Result.success(memberMap) - return Result.success(memberList) } suspend fun getProhibitedMemberList(groupId: Long): Result> { diff --git a/xposed/src/main/java/qq/service/internals/PrimitiveListener.kt b/xposed/src/main/java/qq/service/internals/PrimitiveListener.kt index 88f39fe2..429f6e4a 100644 --- a/xposed/src/main/java/qq/service/internals/PrimitiveListener.kt +++ b/xposed/src/main/java/qq/service/internals/PrimitiveListener.kt @@ -218,6 +218,8 @@ internal object PrimitiveListener { val groupId = event.groupCode.toLong() val detail = event.uniqueTitleChangeDetail!!.first() + // todo 贴表情也走的 732 16 这里 + //detail = if (detail[5] is ProtoList) { // (detail[5] as ProtoList).value[0] //} else { @@ -396,7 +398,7 @@ internal object PrimitiveListener { val targetUid = event.memberUid val type = event.type - GroupHelper.getGroupMemberList(groupCode.toString(), true).onFailure { + GroupHelper.getGroupMemberList(groupCode, true).onFailure { LogCenter.log("新成员加入刷新群成员列表失败: $groupCode", Level.WARN) }.onSuccess { LogCenter.log("新成员加入刷新群成员列表成功,群成员数量: ${it.size}", Level.INFO) @@ -433,7 +435,7 @@ internal object PrimitiveListener { val type = event.type val operatorUid = event.operatorUid - GroupHelper.getGroupMemberList(groupCode.toString(), true).onFailure { + GroupHelper.getGroupMemberList(groupCode, true).onFailure { LogCenter.log("新成员加入刷新群成员列表失败: $groupCode", Level.WARN) }.onSuccess { LogCenter.log("新成员加入刷新群成员列表成功,群成员数量: ${it.size}", Level.INFO) diff --git a/xposed/src/main/java/qq/service/kernel/SimpleKernelMsgListener.kt b/xposed/src/main/java/qq/service/kernel/SimpleKernelMsgListener.kt index d15ed47f..b9f98fc1 100644 --- a/xposed/src/main/java/qq/service/kernel/SimpleKernelMsgListener.kt +++ b/xposed/src/main/java/qq/service/kernel/SimpleKernelMsgListener.kt @@ -1,7 +1,7 @@ package qq.service.kernel import com.tencent.qqnt.kernel.nativeinterface.BroadcastHelperTransNotifyInfo -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.ContactMsgBoxInfo import com.tencent.qqnt.kernel.nativeinterface.CustomWithdrawConfig import com.tencent.qqnt.kernel.nativeinterface.DevInfo @@ -278,7 +278,13 @@ abstract class SimpleKernelMsgListener: IKernelMsgListener { } - override fun onSysMsgNotification(i2: Int, j2: Long, j3: Long, arrayList: ArrayList?) { + override fun onSysMsgNotification( + i2: Int, + j2: Long, + j3: Long, + z: Boolean, + arrayList: ArrayList? + ) { } diff --git a/xposed/src/main/java/qq/service/lightapp/ArkMsgHelper.kt b/xposed/src/main/java/qq/service/lightapp/ArkMsgHelper.kt index 1d185f10..b5c32165 100644 --- a/xposed/src/main/java/qq/service/lightapp/ArkMsgHelper.kt +++ b/xposed/src/main/java/qq/service/lightapp/ArkMsgHelper.kt @@ -1,6 +1,6 @@ package qq.service.lightapp -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import qq.service.QQInterfaces import qq.service.contact.longPeer diff --git a/xposed/src/main/java/qq/service/lightapp/LbsHelper.kt b/xposed/src/main/java/qq/service/lightapp/LbsHelper.kt index 2ac7abc2..02d15b7c 100644 --- a/xposed/src/main/java/qq/service/lightapp/LbsHelper.kt +++ b/xposed/src/main/java/qq/service/lightapp/LbsHelper.kt @@ -2,7 +2,7 @@ package qq.service.lightapp import com.tencent.biz.map.trpcprotocol.LbsSendInfo import com.tencent.proto.lbsshare.LBSShare -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import moe.fuqiuluo.shamrock.helper.IllegalParamsException import moe.fuqiuluo.shamrock.tools.slice diff --git a/xposed/src/main/java/qq/service/lightapp/MusicHelper.kt b/xposed/src/main/java/qq/service/lightapp/MusicHelper.kt index 349915e1..918f7b1b 100644 --- a/xposed/src/main/java/qq/service/lightapp/MusicHelper.kt +++ b/xposed/src/main/java/qq/service/lightapp/MusicHelper.kt @@ -1,6 +1,6 @@ package qq.service.lightapp -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import io.ktor.client.request.get import io.ktor.client.statement.bodyAsText import kotlinx.serialization.json.Json diff --git a/xposed/src/main/java/qq/service/msg/ForwardMessageHelper.kt b/xposed/src/main/java/qq/service/msg/ForwardMessageHelper.kt index 336e9cbb..dd145aa8 100644 --- a/xposed/src/main/java/qq/service/msg/ForwardMessageHelper.kt +++ b/xposed/src/main/java/qq/service/msg/ForwardMessageHelper.kt @@ -1,15 +1,12 @@ package qq.service.msg import com.tencent.mobileqq.qroute.QRoute -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import com.tencent.qqnt.kernel.nativeinterface.MsgRecord import com.tencent.qqnt.msg.api.IMsgService -import io.grpc.Status -import io.grpc.StatusRuntimeException import io.kritor.common.ForwardElement import io.kritor.common.ForwardMessageBody -import io.kritor.common.Scene import kotlinx.coroutines.suspendCancellableCoroutine import kotlinx.coroutines.withTimeoutOrNull import moe.fuqiuluo.shamrock.helper.Level @@ -21,7 +18,6 @@ import protobuf.auto.toByteArray import protobuf.message.* import protobuf.message.longmsg.* import qq.service.QQInterfaces -import qq.service.contact.ContactHelper import qq.service.msg.MessageHelper.getMultiMsg import qq.service.ticket.TicketHelper import java.util.* diff --git a/xposed/src/main/java/qq/service/msg/MessageHelper.kt b/xposed/src/main/java/qq/service/msg/MessageHelper.kt index a70edb3b..dd776b1a 100644 --- a/xposed/src/main/java/qq/service/msg/MessageHelper.kt +++ b/xposed/src/main/java/qq/service/msg/MessageHelper.kt @@ -3,7 +3,7 @@ package qq.service.msg import com.tencent.mobileqq.qroute.QRoute import com.tencent.mobileqq.troop.api.ITroopMemberNameService import com.tencent.qqnt.kernel.api.IKernelService -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import com.tencent.qqnt.kernel.nativeinterface.MsgElement import com.tencent.qqnt.kernel.nativeinterface.MsgRecord diff --git a/xposed/src/main/java/qq/service/msg/MultiConvertor.kt b/xposed/src/main/java/qq/service/msg/MultiConvertor.kt index cc647ce4..aa50eb27 100644 --- a/xposed/src/main/java/qq/service/msg/MultiConvertor.kt +++ b/xposed/src/main/java/qq/service/msg/MultiConvertor.kt @@ -2,7 +2,7 @@ package qq.service.msg -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import io.kritor.common.* import io.kritor.common.Element.ElementType diff --git a/xposed/src/main/java/qq/service/msg/NtMsgConvertor.kt b/xposed/src/main/java/qq/service/msg/NtMsgConvertor.kt index 3422a878..df243914 100644 --- a/xposed/src/main/java/qq/service/msg/NtMsgConvertor.kt +++ b/xposed/src/main/java/qq/service/msg/NtMsgConvertor.kt @@ -8,7 +8,7 @@ import com.tencent.mobileqq.qroute.QRoute import com.tencent.qphone.base.remote.ToServiceMsg import com.tencent.qqnt.aio.adapter.api.IAIOPttApi import com.tencent.qqnt.kernel.nativeinterface.* -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.FaceElement import com.tencent.qqnt.kernel.nativeinterface.MarkdownElement import com.tencent.qqnt.kernel.nativeinterface.MarketFaceElement diff --git a/xposed/src/main/java/qq/service/msg/ReqMessageConvertor.kt b/xposed/src/main/java/qq/service/msg/ReqMessageConvertor.kt index 40db4993..8754e44b 100644 --- a/xposed/src/main/java/qq/service/msg/ReqMessageConvertor.kt +++ b/xposed/src/main/java/qq/service/msg/ReqMessageConvertor.kt @@ -1,7 +1,7 @@ package qq.service.msg import com.tencent.mobileqq.qroute.QRoute -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import com.tencent.qqnt.kernel.nativeinterface.MsgElement import com.tencent.qqnt.msg.api.IMsgService diff --git a/xposed/src/main/java/qq/service/msg/ReqMultiConvertor.kt b/xposed/src/main/java/qq/service/msg/ReqMultiConvertor.kt index f6e6f810..8bad4f7a 100644 --- a/xposed/src/main/java/qq/service/msg/ReqMultiConvertor.kt +++ b/xposed/src/main/java/qq/service/msg/ReqMultiConvertor.kt @@ -1,10 +1,9 @@ package qq.service.msg import android.graphics.BitmapFactory -import android.util.Base64 import androidx.exifinterface.media.ExifInterface import com.tencent.mobileqq.qroute.QRoute -import com.tencent.qqnt.kernel.nativeinterface.Contact +import com.tencent.qqnt.kernelpublic.nativeinterface.Contact import com.tencent.qqnt.kernel.nativeinterface.MsgConstant import com.tencent.qqnt.msg.api.IMsgService import io.kritor.common.Element