mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
: 修正频道proto文件错误
Signed-off-by: 白池 <whitechi73@outlook.com>
This commit is contained in:
parent
13a49dd70b
commit
c3934778c7
@ -18,12 +18,17 @@ internal object InitHandler: ModuleHandler() {
|
|||||||
|
|
||||||
val maps = hashMapOf<String, Any?>()
|
val maps = hashMapOf<String, Any?>()
|
||||||
|
|
||||||
RPCPort.update(context, maps)
|
|
||||||
RPCAddress.update(context, maps)
|
|
||||||
ForceTablet.update(context, maps)
|
|
||||||
ActiveRPC.update(context, maps)
|
ActiveRPC.update(context, maps)
|
||||||
|
AliveReply.update(context, maps)
|
||||||
|
AntiJvmTrace.update(context, maps)
|
||||||
|
DebugMode.update(context, maps)
|
||||||
|
EnableOldBDH.update(context, maps)
|
||||||
|
EnableSelfMessage.update(context, maps)
|
||||||
|
ForceTablet.update(context, maps)
|
||||||
PassiveRPC.update(context, maps)
|
PassiveRPC.update(context, maps)
|
||||||
ResourceGroup.update(context, maps)
|
ResourceGroup.update(context, maps)
|
||||||
|
RPCAddress.update(context, maps)
|
||||||
|
RPCPort.update(context, maps)
|
||||||
|
|
||||||
callback(context, 1, maps)
|
callback(context, 1, maps)
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ plugins {
|
|||||||
id("org.jetbrains.kotlin.android")
|
id("org.jetbrains.kotlin.android")
|
||||||
id("kotlin-kapt")
|
id("kotlin-kapt")
|
||||||
id("com.google.devtools.ksp") version "1.9.22-1.0.17"
|
id("com.google.devtools.ksp") version "1.9.22-1.0.17"
|
||||||
|
id("com.google.protobuf") version "0.9.4"
|
||||||
kotlin("plugin.serialization") version "1.9.22"
|
kotlin("plugin.serialization") version "1.9.22"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,6 +64,8 @@ dependencies {
|
|||||||
compileOnly ("de.robv.android.xposed:api:82")
|
compileOnly ("de.robv.android.xposed:api:82")
|
||||||
compileOnly (project(":qqinterface"))
|
compileOnly (project(":qqinterface"))
|
||||||
|
|
||||||
|
protobuf(project(":kritor"))
|
||||||
|
|
||||||
implementation(project(":protobuf"))
|
implementation(project(":protobuf"))
|
||||||
implementation(project(":annotations"))
|
implementation(project(":annotations"))
|
||||||
ksp(project(":processor"))
|
ksp(project(":processor"))
|
||||||
@ -84,7 +87,13 @@ dependencies {
|
|||||||
implementation(ktor("client", "core"))
|
implementation(ktor("client", "core"))
|
||||||
implementation(ktor("client", "okhttp"))
|
implementation(ktor("client", "okhttp"))
|
||||||
implementation(ktor("serialization", "kotlinx-json"))
|
implementation(ktor("serialization", "kotlinx-json"))
|
||||||
implementation(ktor("network", "tls-certificates"))
|
|
||||||
|
implementation("io.grpc:grpc-stub:1.62.2")
|
||||||
|
implementation("io.grpc:grpc-protobuf:1.62.2")
|
||||||
|
implementation("com.google.protobuf:protobuf-java-util:3.25.1")
|
||||||
|
implementation("com.google.protobuf:protobuf-kotlin:3.25.3")
|
||||||
|
implementation("io.grpc:grpc-kotlin-stub:1.4.1")
|
||||||
|
implementation("io.grpc:grpc-okhttp:1.62.2")
|
||||||
|
|
||||||
testImplementation("junit:junit:4.13.2")
|
testImplementation("junit:junit:4.13.2")
|
||||||
androidTestImplementation("androidx.test.ext:junit:1.1.5")
|
androidTestImplementation("androidx.test.ext:junit:1.1.5")
|
||||||
@ -92,3 +101,28 @@ dependencies {
|
|||||||
androidTestImplementation(platform("androidx.compose:compose-bom:2023.06.01"))
|
androidTestImplementation(platform("androidx.compose:compose-bom:2023.06.01"))
|
||||||
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
|
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protobuf {
|
||||||
|
protoc {
|
||||||
|
artifact = "com.google.protobuf:protoc:3.25.3"
|
||||||
|
}
|
||||||
|
plugins {
|
||||||
|
create("grpc") {
|
||||||
|
artifact = "io.grpc:protoc-gen-grpc-java:1.62.2"
|
||||||
|
}
|
||||||
|
create("grpckt") {
|
||||||
|
artifact = "io.grpc:protoc-gen-grpc-kotlin:1.4.1:jdk8@jar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
generateProtoTasks {
|
||||||
|
all().forEach {
|
||||||
|
it.plugins {
|
||||||
|
create("grpc")
|
||||||
|
create("grpckt")
|
||||||
|
}
|
||||||
|
it.builtins {
|
||||||
|
create("kotlin")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
20
xposed/src/main/java/kritor/server/KritorServer.kt
Normal file
20
xposed/src/main/java/kritor/server/KritorServer.kt
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package kritor.server
|
||||||
|
|
||||||
|
import io.grpc.ServerBuilder
|
||||||
|
import moe.fuqiuluo.shamrock.helper.LogCenter
|
||||||
|
|
||||||
|
class KritorServer(
|
||||||
|
private val port: Int
|
||||||
|
) {
|
||||||
|
private val server = ServerBuilder
|
||||||
|
.forPort(port)
|
||||||
|
.build()!!
|
||||||
|
|
||||||
|
fun start(block: Boolean = false) {
|
||||||
|
LogCenter.log("KritorServer started at port $port.")
|
||||||
|
server.start()
|
||||||
|
if (block) {
|
||||||
|
server.awaitTermination()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -10,3 +10,6 @@ abstract class ConfigKey<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal inline fun <reified Type, reified T: ConfigKey<Type>> T.get(): Type {
|
||||||
|
return ShamrockConfig[this]
|
||||||
|
}
|
||||||
|
@ -16,7 +16,8 @@ private val configKeys = setOf(
|
|||||||
PassiveRPC,
|
PassiveRPC,
|
||||||
ResourceGroup,
|
ResourceGroup,
|
||||||
RPCAddress,
|
RPCAddress,
|
||||||
RPCPort
|
RPCPort,
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
internal object ShamrockConfig: Properties() {
|
internal object ShamrockConfig: Properties() {
|
||||||
|
@ -10,6 +10,7 @@ import moe.fuqiuluo.shamrock.helper.Level
|
|||||||
import moe.fuqiuluo.shamrock.helper.LogCenter
|
import moe.fuqiuluo.shamrock.helper.LogCenter
|
||||||
import moe.fuqiuluo.shamrock.tools.hookMethod
|
import moe.fuqiuluo.shamrock.tools.hookMethod
|
||||||
import moe.fuqiuluo.shamrock.utils.PlatformUtils
|
import moe.fuqiuluo.shamrock.utils.PlatformUtils
|
||||||
|
import qq.service.internals.AioListener
|
||||||
import qq.service.internals.msgService
|
import qq.service.internals.msgService
|
||||||
|
|
||||||
internal object NTServiceFetcher {
|
internal object NTServiceFetcher {
|
||||||
@ -58,7 +59,7 @@ internal object NTServiceFetcher {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
LogCenter.log("Register MSG listener successfully.")
|
LogCenter.log("Register MSG listener successfully.")
|
||||||
//msgService.addMsgListener(AioListener)
|
msgService.addMsgListener(AioListener)
|
||||||
|
|
||||||
// 接口缺失 暂不使用
|
// 接口缺失 暂不使用
|
||||||
//groupService.addKernelGroupListener(GroupEventListener)
|
//groupService.addKernelGroupListener(GroupEventListener)
|
||||||
|
@ -4,12 +4,23 @@ package moe.fuqiuluo.shamrock.xposed.actions
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import kotlinx.coroutines.DelicateCoroutinesApi
|
import kotlinx.coroutines.DelicateCoroutinesApi
|
||||||
|
import kritor.server.KritorServer
|
||||||
|
import moe.fuqiuluo.shamrock.config.ActiveRPC
|
||||||
|
import moe.fuqiuluo.shamrock.config.RPCPort
|
||||||
|
import moe.fuqiuluo.shamrock.config.ShamrockConfig
|
||||||
|
import moe.fuqiuluo.shamrock.config.get
|
||||||
import moe.fuqiuluo.symbols.Process
|
import moe.fuqiuluo.symbols.Process
|
||||||
import moe.fuqiuluo.symbols.XposedHook
|
import moe.fuqiuluo.symbols.XposedHook
|
||||||
|
|
||||||
|
private lateinit var server: KritorServer
|
||||||
|
|
||||||
@XposedHook(Process.MAIN, priority = 10)
|
@XposedHook(Process.MAIN, priority = 10)
|
||||||
internal class InitRemoteService : IAction {
|
internal class InitRemoteService : IAction {
|
||||||
override fun invoke(ctx: Context) {
|
override fun invoke(ctx: Context) {
|
||||||
|
if (ActiveRPC.get() && !::server.isInitialized) {
|
||||||
|
server = KritorServer(RPCPort.get())
|
||||||
|
server.start()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
314
xposed/src/main/java/qq/service/internals/AioListener.kt
Normal file
314
xposed/src/main/java/qq/service/internals/AioListener.kt
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
package qq.service.internals
|
||||||
|
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.BroadcastHelperTransNotifyInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.Contact
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.ContactMsgBoxInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.CustomWithdrawConfig
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.DevInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.DownloadRelateEmojiResultInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.EmojiNotifyInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.EmojiResourceInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.FileTransNotifyInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.FirstViewDirectMsgNotifyInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.FirstViewGroupGuildInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.FreqLimitInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.GroupFileListResult
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.GroupGuildNotifyInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.GroupItem
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.GuildInteractiveNotificationItem
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.GuildMsgAbFlag
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.GuildNotificationAbstractInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.HitRelatedEmojiWordsResult
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.IKernelMsgListener
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.ImportOldDbMsgNotifyInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.InputStatusInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.KickedInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.MsgAbstract
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.MsgElement
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.MsgRecord
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.MsgSetting
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.RecvdOrder
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.RelatedWordEmojiInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.SearchGroupFileResult
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.TabStatusInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.TempChatInfo
|
||||||
|
import com.tencent.qqnt.kernel.nativeinterface.UnreadCntInfo
|
||||||
|
import moe.fuqiuluo.shamrock.helper.Level
|
||||||
|
import moe.fuqiuluo.shamrock.helper.LogCenter
|
||||||
|
|
||||||
|
object AioListener: IKernelMsgListener {
|
||||||
|
override fun onRecvMsg(arrayList: ArrayList<MsgRecord>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgRecall(chatType: Int, peerId: String, msgId: Long) {
|
||||||
|
LogCenter.log("onMsgRecall($chatType, $peerId, $msgId)")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onAddSendMsg(record: MsgRecord) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgInfoListUpdate(msgList: ArrayList<MsgRecord>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onTempChatInfoUpdate(tempChatInfo: TempChatInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgAbstractUpdate(arrayList: ArrayList<MsgAbstract>?) {
|
||||||
|
//arrayList?.forEach {
|
||||||
|
// LogCenter.log("onMsgAbstractUpdate($it)", Level.WARN)
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRecvMsgSvrRspTransInfo(
|
||||||
|
j2: Long,
|
||||||
|
contact: Contact?,
|
||||||
|
i2: Int,
|
||||||
|
i3: Int,
|
||||||
|
str: String?,
|
||||||
|
bArr: ByteArray?
|
||||||
|
) {
|
||||||
|
LogCenter.log("onRecvMsgSvrRspTransInfo($j2, $contact, $i2, $i3, $str)", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRecvS2CMsg(arrayList: ArrayList<Byte>?) {
|
||||||
|
LogCenter.log("onRecvS2CMsg(${arrayList.toString()})", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRecvSysMsg(arrayList: ArrayList<Byte>?) {
|
||||||
|
LogCenter.log("onRecvSysMsg(${arrayList.toString()})", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onBroadcastHelperDownloadComplete(broadcastHelperTransNotifyInfo: BroadcastHelperTransNotifyInfo?) {}
|
||||||
|
|
||||||
|
override fun onBroadcastHelperProgerssUpdate(broadcastHelperTransNotifyInfo: BroadcastHelperTransNotifyInfo?) {}
|
||||||
|
|
||||||
|
override fun onChannelFreqLimitInfoUpdate(
|
||||||
|
contact: Contact?,
|
||||||
|
z: Boolean,
|
||||||
|
freqLimitInfo: FreqLimitInfo?
|
||||||
|
) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onContactUnreadCntUpdate(unreadMap: HashMap<Int, HashMap<String, UnreadCntInfo>>) {
|
||||||
|
// 推送未读消息数量
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCustomWithdrawConfigUpdate(customWithdrawConfig: CustomWithdrawConfig?) {
|
||||||
|
LogCenter.log("onCustomWithdrawConfigUpdate: " + customWithdrawConfig.toString(), Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDraftUpdate(contact: Contact?, arrayList: ArrayList<MsgElement>?, j2: Long) {
|
||||||
|
LogCenter.log("onDraftUpdate: " + contact.toString() + "|" + arrayList + "|" + j2.toString(), Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onEmojiDownloadComplete(emojiNotifyInfo: EmojiNotifyInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onEmojiResourceUpdate(emojiResourceInfo: EmojiResourceInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFeedEventUpdate(firstViewDirectMsgNotifyInfo: FirstViewDirectMsgNotifyInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFileMsgCome(arrayList: ArrayList<MsgRecord>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFirstViewDirectMsgUpdate(firstViewDirectMsgNotifyInfo: FirstViewDirectMsgNotifyInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFirstViewGroupGuildMapping(arrayList: ArrayList<FirstViewGroupGuildInfo>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGrabPasswordRedBag(
|
||||||
|
i2: Int,
|
||||||
|
str: String?,
|
||||||
|
i3: Int,
|
||||||
|
recvdOrder: RecvdOrder?,
|
||||||
|
msgRecord: MsgRecord?
|
||||||
|
) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onKickedOffLine(kickedInfo: KickedInfo?) {
|
||||||
|
LogCenter.log("onKickedOffLine($kickedInfo)")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRichMediaUploadComplete(notifyInfo: FileTransNotifyInfo) {
|
||||||
|
LogCenter.log({ "[BDH] 资源上传完成(${notifyInfo.trasferStatus}, ${notifyInfo.fileId}, ${notifyInfo.msgId}, ${notifyInfo.commonFileInfo})" }, Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRecvOnlineFileMsg(arrayList: ArrayList<MsgRecord>?) {
|
||||||
|
LogCenter.log(("onRecvOnlineFileMsg" + arrayList?.joinToString { ", " }), Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRichMediaDownloadComplete(fileTransNotifyInfo: FileTransNotifyInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRichMediaProgerssUpdate(fileTransNotifyInfo: FileTransNotifyInfo) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSearchGroupFileInfoUpdate(searchGroupFileResult: SearchGroupFileResult?) {
|
||||||
|
LogCenter.log("onSearchGroupFileInfoUpdate($searchGroupFileResult)", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGroupFileInfoAdd(groupItem: GroupItem?) {
|
||||||
|
LogCenter.log("onGroupFileInfoAdd: " + groupItem.toString(), Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGroupFileInfoUpdate(groupFileListResult: GroupFileListResult?) {
|
||||||
|
LogCenter.log("onGroupFileInfoUpdate: " + groupFileListResult.toString(), Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGroupGuildUpdate(groupGuildNotifyInfo: GroupGuildNotifyInfo?) {
|
||||||
|
LogCenter.log("onGroupGuildUpdate: " + groupGuildNotifyInfo.toString(), Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGroupTransferInfoAdd(groupItem: GroupItem?) {
|
||||||
|
LogCenter.log("onGroupTransferInfoAdd: " + groupItem.toString(), Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGroupTransferInfoUpdate(groupFileListResult: GroupFileListResult?) {
|
||||||
|
LogCenter.log("onGroupTransferInfoUpdate: " + groupFileListResult.toString(), Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGuildInteractiveUpdate(guildInteractiveNotificationItem: GuildInteractiveNotificationItem?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGuildMsgAbFlagChanged(guildMsgAbFlag: GuildMsgAbFlag?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onGuildNotificationAbstractUpdate(guildNotificationAbstractInfo: GuildNotificationAbstractInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onHitCsRelatedEmojiResult(downloadRelateEmojiResultInfo: DownloadRelateEmojiResultInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onHitEmojiKeywordResult(hitRelatedEmojiWordsResult: HitRelatedEmojiWordsResult?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onHitRelatedEmojiResult(relatedWordEmojiInfo: RelatedWordEmojiInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onImportOldDbProgressUpdate(importOldDbMsgNotifyInfo: ImportOldDbMsgNotifyInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onInputStatusPush(inputStatusInfo: InputStatusInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onLineDev(devList: ArrayList<DevInfo>?) {
|
||||||
|
//LogCenter.log("onLineDev($arrayList)")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onLogLevelChanged(newLevel: Long) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgBoxChanged(arrayList: ArrayList<ContactMsgBoxInfo>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgDelete(contact: Contact?, arrayList: ArrayList<Long>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgEventListUpdate(hashMap: HashMap<String, ArrayList<Long>>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgInfoListAdd(arrayList: ArrayList<MsgRecord>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgQRCodeStatusChanged(i2: Int) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgSecurityNotify(msgRecord: MsgRecord?) {
|
||||||
|
LogCenter.log("onMsgSecurityNotify($msgRecord)")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMsgSettingUpdate(msgSetting: MsgSetting?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onNtFirstViewMsgSyncEnd() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onNtMsgSyncEnd() {
|
||||||
|
LogCenter.log("NTKernel同步消息完成", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onNtMsgSyncStart() {
|
||||||
|
LogCenter.log("NTKernel同步消息开始", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onReadFeedEventUpdate(firstViewDirectMsgNotifyInfo: FirstViewDirectMsgNotifyInfo?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRecvGroupGuildFlag(i2: Int) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRecvUDCFlag(i2: Int) {
|
||||||
|
LogCenter.log("onRecvUDCFlag($i2)", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSendMsgError(j2: Long, contact: Contact?, i2: Int, str: String?) {
|
||||||
|
LogCenter.log("onSendMsgError($j2, $contact, $j2, $str)", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onSysMsgNotification(i2: Int, j2: Long, j3: Long, arrayList: ArrayList<Byte>?) {
|
||||||
|
LogCenter.log("onSysMsgNotification($i2, $j2, $j3, $arrayList)", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUnreadCntAfterFirstView(hashMap: HashMap<Int, ArrayList<UnreadCntInfo>>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUnreadCntUpdate(hashMap: HashMap<Int, ArrayList<UnreadCntInfo>>?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUserChannelTabStatusChanged(z: Boolean) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUserOnlineStatusChanged(z: Boolean) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onUserTabStatusChanged(arrayList: ArrayList<TabStatusInfo>?) {
|
||||||
|
LogCenter.log("onUserTabStatusChanged($arrayList)", Level.DEBUG)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onlineStatusBigIconDownloadPush(i2: Int, j2: Long, str: String?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onlineStatusSmallIconDownloadPush(i2: Int, j2: Long, str: String?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user