From 537dce4e5898318672287a12d759120bf7fcf8c3 Mon Sep 17 00:00:00 2001 From: xuqm Date: Mon, 13 Mar 2023 11:41:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 7 +- .../main/java/cn/org/bjca/trust/Myapplication.kt | 38 ++++++++ .../cn/org/bjca/trust/pushdemo/LoginActivity.kt | 35 +++++++ .../cn/org/bjca/trust/pushdemo/MainActivity.kt | 26 ++++- app/src/main/res/layout/activity_login.xml | 43 ++++++++ app/src/main/res/layout/activity_main.xml | 9 ++ .../cn/org/bjca/trust/push/common/CommonHelper.kt | 2 + .../cn/org/bjca/trust/push/common/FileHelper.kt | 17 ++++ .../cn/org/bjca/trust/push/common/GraphicHelper.kt | 108 +++++++++++++++++++++ .../cn/org/bjca/trust/push/common/MessageHelper.kt | 9 ++ .../bjca/trust/push/common/SendMessageHelper.kt | 46 ++++++++- .../org/bjca/trust/push/db/message/MessageDao.kt | 3 + .../java/cn/org/bjca/trust/push/enums/MsgType.kt | 4 +- .../cn/org/bjca/trust/push/extensions/PushExt.kt | 3 +- .../org/bjca/trust/push/manager/PushSdkManager.kt | 7 +- .../bjca/trust/push/message/bean/PictureMessage.kt | 10 +- .../org/bjca/trust/push/message/client/ImClient.kt | 70 +++++++------ 18 files changed, 389 insertions(+), 50 deletions(-) create mode 100644 app/src/main/java/cn/org/bjca/trust/pushdemo/LoginActivity.kt create mode 100644 app/src/main/res/layout/activity_login.xml create mode 100644 push/src/main/java/cn/org/bjca/trust/push/common/GraphicHelper.kt diff --git a/app/build.gradle b/app/build.gradle index fa37ab5..d9c15c0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -65,7 +65,7 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' - implementation 'com.xuqm.android:base:0.0.2' + implementation 'com.xuqm.android:base:0.0.5' // implementation 'cn.org.bjca.trus:push:0.0.1.011' implementation project(path: ':push') } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a7a8aec..1dd5584 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,13 +9,13 @@ android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" - android:usesCleartextTraffic="true" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.PushDemo" + android:usesCleartextTraffic="true" tools:targetApi="31"> @@ -27,6 +27,9 @@ android:name="android.app.lib_name" android:value="" /> + \ No newline at end of file diff --git a/app/src/main/java/cn/org/bjca/trust/Myapplication.kt b/app/src/main/java/cn/org/bjca/trust/Myapplication.kt index a907991..49daea0 100644 --- a/app/src/main/java/cn/org/bjca/trust/Myapplication.kt +++ b/app/src/main/java/cn/org/bjca/trust/Myapplication.kt @@ -1,6 +1,10 @@ package cn.org.bjca.trust +import cn.org.bjca.trust.push.PushSdk import cn.org.bjca.trust.push.common.LogHelper +import cn.org.bjca.trust.push.enums.OsType +import cn.org.bjca.trust.push.message.callback.CallbackListener +import cn.org.bjca.trust.push.message.msg.Message import com.xuqm.base.App import com.xuqm.base.di.manager.HttpManager @@ -9,5 +13,39 @@ class Myapplication : App() { super.onCreate() LogHelper.e("+++++++++++++++Application") appComponent = HttpManager.getAppComponent(""); + + PushSdk.instance.setMsgCallback(object : CallbackListener { + override fun sendComplete(msg: Message) { + LogHelper.d("------发送消息完成------") + } + + override fun sendError(code: String, msg: Message) { + LogHelper.d("消息发送失败::${code}") + } + + override fun messageArrived(msg: Message) { + } + + override fun connected() { + LogHelper.d("------im连接成功------") + } + + override fun connectionKicked(var1: OsType) { + LogHelper.d("------其它设备登录::${var1}------") + } + + override fun connectError(code: String) { + LogHelper.d("im连接失败") + } + + override fun connectionLost() { + LogHelper.d("------im连接丢失,正在重连...------") + } + + override fun exceptionCause(var1: Throwable) { + LogHelper.e("------im出现错误------", var1) + } + }) + } } \ No newline at end of file diff --git a/app/src/main/java/cn/org/bjca/trust/pushdemo/LoginActivity.kt b/app/src/main/java/cn/org/bjca/trust/pushdemo/LoginActivity.kt new file mode 100644 index 0000000..e03d12a --- /dev/null +++ b/app/src/main/java/cn/org/bjca/trust/pushdemo/LoginActivity.kt @@ -0,0 +1,35 @@ +package cn.org.bjca.trust.pushdemo + +import android.content.Intent +import android.os.Bundle +import cn.org.bjca.trust.push.PushSdk +import cn.org.bjca.trust.pushdemo.databinding.ActivityLoginBinding +import com.xuqm.base.dialog.loading.LoadingDialog +import com.xuqm.base.extensions.showMessage +import com.xuqm.base.ui.BaseActivity +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch + +class LoginActivity : BaseActivity() { + override fun showStatus(): Int = R.color.purple_700 + override fun getLayoutId(): Int = R.layout.activity_login + override fun initView(savedInstanceState: Bundle?) { + super.initView(savedInstanceState) + binding.button.setOnClickListener { + + if (binding.username.text.isNotEmpty()) { + LoadingDialog.showDialog("正在登录,请稍候···") + CoroutineScope(Dispatchers.IO).launch { + delay(2000L) + LoadingDialog.dismissDialog() + PushSdk.instance.register(binding.username.text.toString()) + startActivity(Intent(mContext, MainActivity::class.java)) + } + } + else "请输入用户名".showMessage() + + } + } +} \ No newline at end of file diff --git a/app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt b/app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt index f695435..80585d4 100644 --- a/app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt +++ b/app/src/main/java/cn/org/bjca/trust/pushdemo/MainActivity.kt @@ -1,9 +1,17 @@ package cn.org.bjca.trust.pushdemo import android.os.Bundle +import android.provider.MediaStore +import androidx.activity.result.contract.ActivityResultContracts import cn.org.bjca.trust.push.PushSdk +import cn.org.bjca.trust.push.common.GraphicHelper +import cn.org.bjca.trust.push.common.LogHelper +import cn.org.bjca.trust.push.common.MessageHelper import cn.org.bjca.trust.push.common.SendMessageHelper +import cn.org.bjca.trust.push.enums.MsgType +import cn.org.bjca.trust.push.message.bean.PictureMessage import cn.org.bjca.trust.pushdemo.databinding.ActivityMainBinding +import com.xuqm.base.extensions.loge import com.xuqm.base.ui.BaseActivity class MainActivity : BaseActivity() { @@ -15,10 +23,26 @@ class MainActivity : BaseActivity() { super.initView(savedInstanceState) PushSdk.instance.register("xuqinmin") + + val r = registerForActivityResult(ActivityResultContracts.GetContent()) { + it.loge() + SendMessageHelper.sendImageMessage( + "xuqinmin", MediaStore.Images.Media.getBitmap( + contentResolver, it + ) + ) + } + binding.register.setOnClickListener { + val m = MessageHelper.getMessageForPage(1, 10) + LogHelper.e(m[0]) + if (m[0].msgType == MsgType.Image) { + binding.iv.setImageBitmap(GraphicHelper.base64ToBitmap((m[0] as PictureMessage).thumbnail)) + } } binding.send.setOnClickListener { - SendMessageHelper.sendTextMessage("xuqinmin", "你好啊${System.currentTimeMillis()}") +// SendMessageHelper.sendTextMessage("xuqinmin", "hello${System.currentTimeMillis()}") + r.launch("image/*") } } diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml new file mode 100644 index 0000000..ea97f41 --- /dev/null +++ b/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,43 @@ + + + + + + + + + +