Skip to content

Commit 8e19b14

Browse files
committed
Merge branch 'master' into androidx
2 parents adc59fb + ed567e1 commit 8e19b14

File tree

19 files changed

+216
-55
lines changed

19 files changed

+216
-55
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
* `20/04/18` [fix] PermissionUtils#callback. Publish v1.28.1.
2+
* `20/04/17` [fix] ImageUtils#view2Bitmap, ImageUtils.getBitmap(InputStream).
3+
* `20/04/16` [add] ConvertUtils#int2HexString, hexString2Int.
4+
* `20/04/15` [add] UiMessageUtils' demo.
15
* `20/04/13` [add] NumberUtils. Publish v1.28.0.
26
* `20/04/12` [opt] TimeUtils#SDF_THREAD_LOCAL.
37
* `20/04/11` [add] SDCardUtils#getXxTotalSize, SDCardUtils#getXxAvailableSize. FileUtils#getFsTotalSize, FileUtils#getFsAvailableSize.

buildSrc/src/main/groovy/Config.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class Config {
1515
static minSdkVersion = 14
1616
static targetSdkVersion = 29
1717
static versionCode = 1_026_001
18-
static versionName = '1.28.0'// E.g. 1.9.72 => 1,009,072
18+
static versionName = '1.28.1'// E.g. 1.9.72 => 1,009,072
1919

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

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/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
}
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>

feature/utilcode/pkg/src/main/res/values/strings.xml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
<string name="demo_spStatic">SPStaticUtils Demo</string>
3838
<string name="demo_span">SpanUtils Demo</string>
3939
<string name="demo_toast">ToastUtils Demo</string>
40+
<string name="demo_uiMessage">UiMessage Demo</string>
4041
<string name="demo_trans_activity">TransActivity Demo</string>
4142
<string name="demo_vibrate">VibrateUtils Demo</string>
4243

@@ -337,7 +338,6 @@
337338
<string name="toast_show_middle">Show Middle</string>
338339
<string name="toast_cancel">Cancel</string>
339340
<string name="toast_show_toast_dialog">Show Toast Dialog</string>
340-
341341
<string name="toast_short">Short</string>
342342
<string name="toast_long">Long</string>
343343
<string name="toast_green_font">Green Font</string>
@@ -346,6 +346,13 @@
346346
<string name="toast_span">Spannable String</string>
347347
<string name="toast_middle">Middle</string>
348348

349+
<!--UiMessage 相关-->
350+
<string name="uiMessage_add_listener_id">Add Listener Id</string>
351+
<string name="uiMessage_remove_all_id">Remove All Id</string>
352+
<string name="uiMessage_add_listener">Add Listener</string>
353+
<string name="uiMessage_remove_listener">Remove Listener</string>
354+
<string name="uiMessage_send">Send</string>
355+
349356
<!--Vibrate 相关-->
350357
<string name="vibrate_1000ms">Vibrate 1000ms</string>
351358
<string name="vibrate_custom">Vibrate Custom</string>

lib/common/src/main/java/com/blankj/common/activity/CommonActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public void showLoading() {
210210

211211
public void showLoading(Runnable listener) {
212212
if (mDialogLoading != null) {
213-
dismissLoading();
213+
return;
214214
}
215215
mDialogLoading = new CommonDialogLoading().init(this, listener);
216216
mDialogLoading.show();

lib/utilcode/README-CN.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
Gradle:
44
```groovy
5-
implementation 'com.blankj:utilcode:1.28.0'
5+
implementation 'com.blankj:utilcode:1.28.1'
66
77
// if u use AndroidX, use the following
8-
implementation 'com.blankj:utilcodex:1.28.0'
8+
implementation 'com.blankj:utilcodex:1.28.1'
99
```
1010

1111

@@ -346,6 +346,7 @@ getRandomColor : 获取随机色
346346

347347
* ### 转换相关 -> [ConvertUtils.java][convert.java] -> [Test][convert.test]
348348
```
349+
int2HexString, hexString2Int : int 与 hexString 互转
349350
bytes2Bits, bits2Bytes : bytes 与 bits 互转
350351
bytes2Chars, chars2Bytes : bytes 与 chars 互转
351352
bytes2HexString, hexString2Bytes : bytes 与 hexString 互转
@@ -1147,7 +1148,7 @@ cancel : 取消吐司显示
11471148
setOnTouchListener: 设置触摸事件
11481149
```
11491150

1150-
* ### UI 消息相关 -> [UiMessageUtils.java][uiMessage.java]
1151+
* ### UI 消息相关 -> [UiMessageUtils.java][uiMessage.java] -> [Demo][uiMessage.demo]
11511152
```
11521153
send : 发送消息
11531154
addListener : 新增消息监听器
@@ -1388,6 +1389,7 @@ getComments : 获取压缩文件中的注释链表
13881389
[touch.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/TouchUtils.java
13891390

13901391
[uiMessage.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/UiMessageUtils.java
1392+
[uiMessage.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/uiMessage/UiMessageActivity.kt
13911393

13921394
[uri.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/UriUtils.java
13931395

lib/utilcode/README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
Gradle:
44
```groovy
5-
implementation 'com.blankj:utilcode:1.28.0'
5+
implementation 'com.blankj:utilcode:1.28.1'
66
77
// if u use AndroidX, use the following
8-
implementation 'com.blankj:utilcodex:1.28.0'
8+
implementation 'com.blankj:utilcodex:1.28.1'
99
```
1010

1111

@@ -346,6 +346,7 @@ getRandomColor
346346

347347
* ### About Convert -> [ConvertUtils.java][convert.java] -> [Test][convert.test]
348348
```
349+
int2HexString, hexString2Int
349350
bytes2Bits, bits2Bytes
350351
bytes2Chars, chars2Bytes
351352
bytes2HexString, hexString2Bytes
@@ -1147,7 +1148,7 @@ cancel
11471148
setOnTouchListener
11481149
```
11491150

1150-
* ### About UiMessage -> [UiMessageUtils.java][uiMessage.java]
1151+
* ### About UiMessage -> [UiMessageUtils.java][uiMessage.java] -> [Demo][uiMessage.demo]
11511152
```
11521153
send
11531154
addListener
@@ -1385,6 +1386,7 @@ getComments
13851386
[touch.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/TouchUtils.java
13861387

13871388
[uiMessage.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/UiMessageUtils.java
1389+
[uiMessage.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/uiMessage/UiMessageActivity.kt
13881390

13891391
[uri.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/UriUtils.java
13901392

lib/utilcode/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
android:name="com.blankj.utilcode.util.UtilsFileProvider"
1515
android:authorities="${applicationId}.utilcode.provider"
1616
android:exported="false"
17-
android:grantUriPermissions="true"
18-
android:multiprocess="true">
17+
android:grantUriPermissions="true">
1918
<meta-data
2019
android:name="android.support.FILE_PROVIDER_PATHS"
2120
android:resource="@xml/util_code_provider_paths" />

lib/utilcode/src/main/java/com/blankj/utilcode/util/ConvertUtils.java

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,36 @@
3838
*/
3939
public final class ConvertUtils {
4040

41-
private static final int BUFFER_SIZE = 8192;
42-
private static final char[] hexDigits =
41+
private static final int BUFFER_SIZE = 8192;
42+
private static final char[] HEX_DIGITS_UPPER =
4343
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
44+
private static final char[] HEX_DIGITS_LOWER =
45+
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
4446

4547
private ConvertUtils() {
4648
throw new UnsupportedOperationException("u can't instantiate me...");
4749
}
4850

51+
/**
52+
* Int to hex string.
53+
*
54+
* @param num The int number.
55+
* @return the hex string
56+
*/
57+
public static String int2HexString(int num) {
58+
return Integer.toHexString(num);
59+
}
60+
61+
/**
62+
* Hex string to int.
63+
*
64+
* @param hexString The hex string.
65+
* @return the int
66+
*/
67+
public static int hexString2Int(String hexString) {
68+
return Integer.parseInt(hexString, 16);
69+
}
70+
4971
/**
5072
* Bytes to bits.
5173
*
@@ -130,7 +152,20 @@ public static byte[] chars2Bytes(final char[] chars) {
130152
* @return hex string
131153
*/
132154
public static String bytes2HexString(final byte[] bytes) {
155+
return bytes2HexString(bytes, true);
156+
}
157+
158+
/**
159+
* Bytes to hex string.
160+
* <p>e.g. bytes2HexString(new byte[] { 0, (byte) 0xa8 }, true) returns "00A8"</p>
161+
*
162+
* @param bytes The bytes.
163+
* @param isUpperCase True to use upper case, false otherwise.
164+
* @return hex string
165+
*/
166+
public static String bytes2HexString(final byte[] bytes, boolean isUpperCase) {
133167
if (bytes == null) return "";
168+
char[] hexDigits = isUpperCase ? HEX_DIGITS_UPPER : HEX_DIGITS_LOWER;
134169
int len = bytes.length;
135170
if (len <= 0) return "";
136171
char[] ret = new char[len << 1];

0 commit comments

Comments
 (0)