1+ package com.blankj.utilcode.pkg.feature.uiMessage
2+
3+ import android.content.Context
4+ import android.content.Intent
5+ import com.blankj.common.activity.CommonActivity
6+ import com.blankj.common.item.CommonItem
7+ import com.blankj.common.item.CommonItemClick
8+ import com.blankj.common.item.CommonItemTitle
9+ import com.blankj.utilcode.pkg.R
10+ import com.blankj.utilcode.util.CollectionUtils
11+ import com.blankj.utilcode.util.UiMessageUtils
12+
13+
14+ /* *
15+ * ```
16+ * author: Blankj
17+ * blog : http://blankj.com
18+ * time : 2020/04/14
19+ * desc : demo about UiMessageUtils
20+ * ```
21+ */
22+ class UiMessageActivity : CommonActivity (), UiMessageUtils.UiMessageCallback {
23+
24+ private val titleItem: CommonItemTitle = CommonItemTitle (" " , true );
25+ private var sendContent: String = " "
26+
27+ companion object {
28+ fun start (context : Context ) {
29+ val starter = Intent (context, UiMessageActivity ::class .java)
30+ context.startActivity(starter)
31+ }
32+ }
33+
34+ override fun bindTitleRes (): Int {
35+ return R .string.demo_uiMessage
36+ }
37+
38+ override fun bindItems (): List <CommonItem <* >> {
39+ return CollectionUtils .newArrayList(
40+ titleItem,
41+ CommonItemClick (R .string.uiMessage_add_listener_id) {
42+ UiMessageUtils .getInstance().addListener(R .id.utilCodeUiMessageAddListenerId, this )
43+ },
44+ CommonItemClick (R .string.uiMessage_remove_all_id) {
45+ UiMessageUtils .getInstance().removeListeners(R .id.utilCodeUiMessageAddListenerId)
46+ },
47+ CommonItemClick (R .string.uiMessage_add_listener) {
48+ UiMessageUtils .getInstance().addListener(this )
49+ },
50+ CommonItemClick (R .string.uiMessage_remove_listener) {
51+ UiMessageUtils .getInstance().removeListener(this )
52+ },
53+ CommonItemClick (R .string.uiMessage_send) {
54+ sendContent = " send: UiMessageActivity#${UiMessageActivity .hashCode()} "
55+ titleItem.title = " "
56+ UiMessageUtils .getInstance().send(R .id.utilCodeUiMessageAddListenerId, UiMessageActivity )
57+ }
58+ )
59+ }
60+
61+ override fun handleMessage (localMessage : UiMessageUtils .UiMessage ) {
62+ if (localMessage.id == R .id.utilCodeUiMessageAddListenerId) {
63+ var content: String = sendContent
64+ content + = " \n receive: UiMessageActivity#${localMessage.getObject().hashCode()} "
65+ titleItem.title = if (titleItem.title.toString().isEmpty()) {
66+ content
67+ } else {
68+ titleItem.title.toString() + " \n " + content
69+ }
70+ }
71+ }
72+
73+ override fun onDestroy () {
74+ super .onDestroy()
75+ UiMessageUtils .getInstance().removeListeners(R .id.utilCodeUiMessageAddListenerId)
76+ UiMessageUtils .getInstance().removeListener(this )
77+ }
78+ }
0 commit comments