MessageModule.kt 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package com.adealink.weparty.module.message
  2. import android.app.Application
  3. import androidx.lifecycle.ViewModelStoreOwner
  4. import com.adealink.frame.aab.BaseDynamicModule
  5. import com.adealink.frame.aab.constant.AABModuleNotInitError
  6. import com.adealink.frame.base.Rlt
  7. import com.adealink.frame.imkit.manager.UnReadMessageManager
  8. import com.adealink.weparty.R
  9. import com.adealink.weparty.commonui.widget.floatview.data.IBaseFloatData
  10. import com.adealink.weparty.commonui.widget.floatview.view.BaseFloatView
  11. import com.adealink.weparty.module.message.data.CustomerInfo
  12. import com.adealink.weparty.module.message.viewmodel.IMessageViewModel
  13. import io.rong.imlib.IRongCoreCallback
  14. import io.rong.imlib.model.Conversation
  15. object MessageModule : BaseDynamicModule<IMessageService>(IMessageService::class), IMessageService {
  16. override val featureName: String
  17. get() = "message"
  18. override val moduleNameResId: Int
  19. get() = R.string.module_message
  20. override fun init(application: Application) {
  21. getService().init(application)
  22. }
  23. override fun getMessageViewModel(owner: ViewModelStoreOwner): IMessageViewModel? {
  24. return getService().getMessageViewModel(owner)
  25. }
  26. override suspend fun batchQuerySayHiState(uidSet: Set<Long>): Rlt<Map<Long, Boolean>> {
  27. return getService().batchQuerySayHiState(uidSet)
  28. }
  29. override fun getSayHiState(uid: Long): Boolean {
  30. return getService().getSayHiState(uid)
  31. }
  32. override fun getNotificationMessageFloatView(data: IBaseFloatData): BaseFloatView? {
  33. return getService().getNotificationMessageFloatView(data)
  34. }
  35. override fun addUnReadMessageCountChangedObserver(
  36. observer: UnReadMessageManager.IUnReadMessageObserver,
  37. conversationTypes: Array<Conversation.ConversationType>
  38. ) {
  39. getService().addUnReadMessageCountChangedObserver(observer, conversationTypes)
  40. }
  41. override fun addUnReadMessageCountChangedObserver(
  42. observer: UnReadMessageManager.IUnReadMessageObserver,
  43. conversationType: Conversation.ConversationType,
  44. targetId: String
  45. ) {
  46. getService().addUnReadMessageCountChangedObserver(observer, conversationType, targetId)
  47. }
  48. override fun logout() {
  49. getService().logout()
  50. }
  51. override fun getUnreadConversationList(callback: IRongCoreCallback.ResultCallback<List<Conversation>?>, vararg conversationTypes: Conversation.ConversationType) {
  52. getService().getUnreadConversationList(callback, *conversationTypes)
  53. }
  54. override suspend fun getCustomerList(cache: Boolean): List<CustomerInfo>? {
  55. return getService().getCustomerList(cache)
  56. }
  57. override suspend fun checkIsCustomerService(targetId: Long, cache: Boolean): Boolean {
  58. return getService().checkIsCustomerService(targetId, cache)
  59. }
  60. override fun emptyService(): IMessageService {
  61. return object : IMessageService {
  62. override fun init(application: Application) {
  63. }
  64. override fun getMessageViewModel(owner: ViewModelStoreOwner): IMessageViewModel? {
  65. return null
  66. }
  67. override suspend fun batchQuerySayHiState(uidSet: Set<Long>): Rlt<Map<Long, Boolean>> {
  68. return Rlt.Failed(AABModuleNotInitError())
  69. }
  70. override fun getSayHiState(uid: Long): Boolean {
  71. return false
  72. }
  73. override fun getNotificationMessageFloatView(data: IBaseFloatData): BaseFloatView? {
  74. return null
  75. }
  76. override fun addUnReadMessageCountChangedObserver(
  77. observer: UnReadMessageManager.IUnReadMessageObserver,
  78. conversationTypes: Array<Conversation.ConversationType>
  79. ) {
  80. }
  81. override fun addUnReadMessageCountChangedObserver(
  82. observer: UnReadMessageManager.IUnReadMessageObserver,
  83. conversationType: Conversation.ConversationType,
  84. targetId: String
  85. ) {
  86. }
  87. override fun logout() {
  88. }
  89. override fun getUnreadConversationList(callback: IRongCoreCallback.ResultCallback<List<Conversation>?>, vararg conversationTypes: Conversation.ConversationType) {
  90. }
  91. override suspend fun getCustomerList(cache: Boolean): List<CustomerInfo>? {
  92. return null
  93. }
  94. override suspend fun checkIsCustomerService(targetId: Long, cache: Boolean): Boolean {
  95. return false
  96. }
  97. override fun getService(): IMessageService? {
  98. return null
  99. }
  100. }
  101. }
  102. }