Skip to content

Commit a546274

Browse files
authored
Merge branch 'master' into develop
2 parents 14fcb20 + 1fb4080 commit a546274

35 files changed

+574
-150
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
* `20/04/26` [fix] Utils#init fit tinker. Publish 1.28.3.
2+
* `20/04/25` [fix] UriUtils#uri2File Unknown URI. Publish 1.28.2.
3+
* `20/04/24` [add] SnackbarUtils support show on the top; UriUtils#uri2InputStream.
4+
* `20/04/23` [fix] UriUtils#uri2File not support HW; TransActivity crash below 21.
5+
* `20/04/23` [fix] PhoneUtils#getSerial, PhoneUtils#getSerial crash on Android 10.
6+
* `20/04/20` [fix] ImageUtils#isImage.
7+
* `20/04/18` [fix] PermissionUtils#callback. Publish v1.28.1.
8+
* `20/04/17` [fix] ImageUtils#view2Bitmap, ImageUtils.getBitmap(InputStream).
9+
* `20/04/16` [add] ConvertUtils#int2HexString, hexString2Int.
10+
* `20/04/15` [add] UiMessageUtils' demo.
111
* `20/04/13` [add] NumberUtils. Publish v1.28.0.
212
* `20/04/12` [opt] TimeUtils#SDF_THREAD_LOCAL.
313
* `20/04/11` [add] SDCardUtils#getXxTotalSize, SDCardUtils#getXxAvailableSize. FileUtils#getFsTotalSize, FileUtils#getFsAvailableSize.

buildSrc/src/main/groovy/Config.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ class Config {
1414
static compileSdkVersion = 29
1515
static minSdkVersion = 14
1616
static targetSdkVersion = 29
17-
static versionCode = 1_026_001
18-
static versionName = '1.28.0'// E.g. 1.9.72 => 1,009,072
17+
static versionCode = 1_028_002
18+
static versionName = '1.28.3'// E.g. 1.9.72 => 1,009,072
1919

2020
// lib version
2121
static gradlePluginVersion = '3.5.0'

feature/utilcode/pkg/src/main/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,10 @@
255255
android:name=".feature.toast.ToastActivity"
256256
android:configChanges="orientation|keyboardHidden|screenSize"
257257
android:launchMode="singleTop" />
258+
<activity
259+
android:name=".feature.uiMessage.UiMessageActivity"
260+
android:configChanges="orientation|keyboardHidden|screenSize"
261+
android:launchMode="singleTop" />
258262
<activity
259263
android:name=".feature.vibrate.VibrateActivity"
260264
android:configChanges="orientation|keyboardHidden|screenSize"

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/CoreUtilActivity.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import com.blankj.utilcode.pkg.feature.snackbar.SnackbarActivity
4444
import com.blankj.utilcode.pkg.feature.spStatic.SPStaticActivity
4545
import com.blankj.utilcode.pkg.feature.span.SpanActivity
4646
import com.blankj.utilcode.pkg.feature.toast.ToastActivity
47+
import com.blankj.utilcode.pkg.feature.uiMessage.UiMessageActivity
4748
import com.blankj.utilcode.pkg.feature.vibrate.VibrateActivity
4849
import com.blankj.utilcode.util.CollectionUtils
4950
import com.blankj.utilcode.util.UtilsTransActivity
@@ -191,6 +192,9 @@ class CoreUtilActivity : CommonActivity() {
191192
}
192193
})
193194
},
195+
CommonItemClick(R.string.demo_uiMessage, true) {
196+
UiMessageActivity.start(this)
197+
},
194198
CommonItemClick(R.string.demo_vibrate, true) {
195199
VibrateActivity.start(this)
196200
}

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.blankj.utilcode.pkg.feature.bus
22

33
import android.content.Context
44
import android.content.Intent
5+
import android.os.Bundle
56
import android.support.annotation.Keep
67
import com.blankj.common.activity.CommonActivity
78
import com.blankj.common.item.CommonItem

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusCompareActivity.kt

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -157,39 +157,47 @@ class BusCompareActivity : CommonActivity() {
157157
* 注销 10000 个订阅者,共执行 10 次取平均值
158158
*/
159159
private fun compareUnregister10000Times() {
160-
val tests = ArrayList<BusEvent>()
161-
for (i in 0..9999) {
162-
val test = BusEvent()
163-
EventBus.getDefault().register(test)
164-
BusUtils.register(test)
165-
tests.add(test)
166-
}
167-
168-
compareWithEventBus("Unregister 10000 times.", 10, 1, object : CompareCallback {
169-
override fun runEventBus() {
170-
for (test in tests) {
171-
EventBus.getDefault().unregister(test)
172-
}
173-
}
174-
175-
override fun runBusUtils() {
176-
for (test in tests) {
177-
BusUtils.unregister(test)
178-
}
179-
}
180-
181-
override fun restState() {
182-
for (test in tests) {
160+
showLoading()
161+
ThreadUtils.executeBySingle(object : ThreadUtils.SimpleTask<List<BusEvent>>() {
162+
override fun doInBackground(): List<BusEvent> {
163+
val tests = ArrayList<BusEvent>()
164+
for (i in 0..9999) {
165+
val test = BusEvent()
183166
EventBus.getDefault().register(test)
184167
BusUtils.register(test)
168+
tests.add(test)
185169
}
170+
return tests
186171
}
187-
}, object : OnFinishCallback {
188-
override fun onFinish() {
189-
for (test in tests) {
190-
EventBus.getDefault().unregister(test)
191-
BusUtils.unregister(test)
192-
}
172+
173+
override fun onSuccess(tests: List<BusEvent>) {
174+
compareWithEventBus("Unregister 10000 times.", 10, 1, object : CompareCallback {
175+
override fun runEventBus() {
176+
for (test in tests) {
177+
EventBus.getDefault().unregister(test)
178+
}
179+
}
180+
181+
override fun runBusUtils() {
182+
for (test in tests) {
183+
BusUtils.unregister(test)
184+
}
185+
}
186+
187+
override fun restState() {
188+
for (test in tests) {
189+
EventBus.getDefault().register(test)
190+
BusUtils.register(test)
191+
}
192+
}
193+
}, object : OnFinishCallback {
194+
override fun onFinish() {
195+
for (test in tests) {
196+
EventBus.getDefault().unregister(test)
197+
BusUtils.unregister(test)
198+
}
199+
}
200+
})
193201
}
194202
})
195203
}

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.blankj.common.activity.CommonActivity
1111
import com.blankj.common.item.CommonItem
1212
import com.blankj.common.item.CommonItemClick
1313
import com.blankj.common.item.CommonItemImage
14+
import com.blankj.common.item.CommonItemTitle
1415
import com.blankj.utilcode.pkg.Config
1516
import com.blankj.utilcode.pkg.R
1617
import com.blankj.utilcode.util.*
@@ -26,6 +27,9 @@ import java.util.*
2627
*/
2728
class ImageActivity : CommonActivity() {
2829

30+
private val savePath = Config.CACHE_PATH + "lena.jpg"
31+
private val titleItem: CommonItemTitle = CommonItemTitle("isImage: $savePath", "");
32+
2933
companion object {
3034
fun start(context: Context) {
3135
val starter = Intent(context, ImageActivity::class.java)
@@ -57,23 +61,27 @@ class ImageActivity : CommonActivity() {
5761
val width = src.width
5862
val height = src.height
5963

64+
titleItem.setContent(ImageUtils.isImage(savePath).toString())
65+
6066
return CollectionUtils.newArrayList<CommonItem<*>>().apply {
61-
add(CommonItemClick(R.string.image_save) {
62-
val savePath = Config.CACHE_PATH + "lena.jpg"
67+
add(titleItem)
68+
add(CommonItemClick("Save to $savePath") {
6369
ThreadUtils.executeBySingle(object : ThreadUtils.SimpleTask<Boolean>() {
6470
override fun doInBackground(): Boolean {
6571
return ImageUtils.save(src, savePath, Bitmap.CompressFormat.JPEG)
6672
}
6773

6874
override fun onSuccess(result: Boolean) {
75+
titleItem.setContent(ImageUtils.isImage(savePath).toString())
76+
titleItem.update()
6977
SnackbarUtils.with(mContentView)
7078
.setDuration(SnackbarUtils.LENGTH_LONG)
7179
.apply {
7280
if (result) {
73-
setMessage("save to \"$savePath\" successful.")
81+
setMessage("save successful.")
7482
.showSuccess()
7583
} else {
76-
setMessage("save to \"$savePath\" failed.")
84+
setMessage("save failed.")
7785
.showError()
7886
}
7987
}

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,49 +39,64 @@ class SnackbarActivity : CommonActivity() {
3939

4040
override fun bindItems(): MutableList<CommonItem<*>> {
4141
return CollectionUtils.newArrayList(
42-
CommonItemClick(R.string.snackbar_show_short) {
42+
CommonItemClick(R.string.snackbar_short) {
4343
SnackbarUtils.with(mContentView)
4444
.setMessage(getMsg(R.string.snackbar_short))
4545
.setMessageColor(Color.WHITE)
4646
.setBgResource(R.drawable.snackbar_custom_bg)
4747
.show()
4848
},
49-
CommonItemClick(R.string.snackbar_show_short_with_action) {
49+
CommonItemClick(R.string.snackbar_short_top) {
5050
SnackbarUtils.with(mContentView)
51-
.setMessage(getMsg(R.string.snackbar_short))
51+
.setMessage(getMsg(R.string.snackbar_short_top))
52+
.setMessageColor(Color.WHITE)
53+
.setBgResource(R.drawable.snackbar_custom_bg)
54+
.show(true)
55+
},
56+
CommonItemClick(R.string.snackbar_short_with_action) {
57+
SnackbarUtils.with(mContentView)
58+
.setMessage(getMsg(R.string.snackbar_short_with_action))
5259
.setMessageColor(Color.WHITE)
5360
.setBgResource(R.drawable.snackbar_custom_bg)
5461
.setAction(getString(R.string.snackbar_click), Color.YELLOW) { ToastUtils.showShort(getString(R.string.snackbar_click)) }
5562
.show()
5663
},
57-
CommonItemClick(R.string.snackbar_show_long) {
64+
CommonItemClick(R.string.snackbar_short_with_action_top) {
65+
SnackbarUtils.with(mContentView)
66+
.setMessage(getMsg(R.string.snackbar_short_with_action_top))
67+
.setMessageColor(Color.WHITE)
68+
.setBgResource(R.drawable.snackbar_custom_bg)
69+
.setAction(getString(R.string.snackbar_click), Color.YELLOW) { ToastUtils.showShort(getString(R.string.snackbar_click)) }
70+
.show(true)
71+
},
72+
CommonItemClick(R.string.snackbar_long) {
5873
SnackbarUtils.with(mContentView)
5974
.setMessage(getMsg(R.string.snackbar_long))
6075
.setMessageColor(Color.WHITE)
6176
.setDuration(SnackbarUtils.LENGTH_LONG)
6277
.setBgResource(R.drawable.snackbar_custom_bg)
6378
.show()
6479
},
65-
CommonItemClick(R.string.snackbar_show_long_with_action) {
80+
CommonItemClick(R.string.snackbar_long_with_action) {
6681
SnackbarUtils.with(mContentView)
67-
.setMessage(getMsg(R.string.snackbar_long))
82+
.setMessage(getMsg(R.string.snackbar_long_with_action))
6883
.setMessageColor(Color.WHITE)
6984
.setBgResource(R.drawable.snackbar_custom_bg)
7085
.setDuration(SnackbarUtils.LENGTH_LONG)
7186
.setAction(getString(R.string.snackbar_click), Color.YELLOW) { ToastUtils.showShort(getString(R.string.snackbar_click)) }
7287
.show()
7388
},
74-
CommonItemClick(R.string.snackbar_show_indefinite) {
89+
CommonItemClick(R.string.snackbar_indefinite) {
7590
SnackbarUtils.with(mContentView)
7691
.setMessage(getMsg(R.string.snackbar_indefinite))
7792
.setMessageColor(Color.WHITE)
7893
.setDuration(SnackbarUtils.LENGTH_INDEFINITE)
7994
.setBgResource(R.drawable.snackbar_custom_bg)
8095
.show()
8196
},
82-
CommonItemClick(R.string.snackbar_show_indefinite_with_action) {
97+
CommonItemClick(R.string.snackbar_indefinite_with_action) {
8398
SnackbarUtils.with(mContentView)
84-
.setMessage(getMsg(R.string.snackbar_indefinite))
99+
.setMessage(getMsg(R.string.snackbar_indefinite_with_action))
85100
.setMessageColor(Color.WHITE)
86101
.setDuration(SnackbarUtils.LENGTH_INDEFINITE)
87102
.setBgResource(R.drawable.snackbar_custom_bg)
@@ -113,17 +128,17 @@ class SnackbarActivity : CommonActivity() {
113128
snackbarView.setOnClickListener { SnackbarUtils.dismiss() }
114129
}
115130
},
116-
CommonItemClick(R.string.snackbar_show_success) {
131+
CommonItemClick(R.string.snackbar_success) {
117132
SnackbarUtils.with(mContentView)
118133
.setMessage(getMsg(R.string.snackbar_success))
119134
.showSuccess()
120135
},
121-
CommonItemClick(R.string.snackbar_show_warning) {
136+
CommonItemClick(R.string.snackbar_warning) {
122137
SnackbarUtils.with(mContentView)
123138
.setMessage(getMsg(R.string.snackbar_warning))
124139
.showWarning()
125140
},
126-
CommonItemClick(R.string.snackbar_show_error) {
141+
CommonItemClick(R.string.snackbar_error) {
127142
SnackbarUtils.with(mContentView)
128143
.setMessage(getMsg(R.string.snackbar_error))
129144
.showError()
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
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 += "\nreceive: 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+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<item name="utilCodeUiMessageAddListenerId" type="id" />
4+
</resources>

0 commit comments

Comments
 (0)