Skip to content

Commit fbd4d5d

Browse files
authored
Merge pull request Blankj#849 from Blankj/1.23.6
1.23.6
2 parents 5cada7e + af793b1 commit fbd4d5d

File tree

10 files changed

+41
-28
lines changed

10 files changed

+41
-28
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
* `19/02/28` [fix] ImageUtils#calculateInSampleSize. Publish v1.23.6.
2+
* `19/02/26` [fix] UriUtils#uri2File. Publish v1.23.5.
13
* `19/01/31` [add] HttpUtils.
24
* `19/01/30` [add] RomUtils. Publish v1.23.4.
35
* `19/01/29` [fix] LogUtils format json when json not start with '{'. Publish v1.23.3.

README-CN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
[logo]: https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/logo.png
4343

44-
[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.23.5-brightgreen.svg
44+
[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.23.6-brightgreen.svg
4545
[auc]: https://github.com/Blankj/AndroidUtilCode
4646

4747
[apiSvg]: https://img.shields.io/badge/API-14+-brightgreen.svg

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ If this project helps you a lot and you want to support the project's developmen
4141

4242
[logo]: https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/logo.png
4343

44-
[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.23.5-brightgreen.svg
44+
[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.23.6-brightgreen.svg
4545
[auc]: https://github.com/Blankj/AndroidUtilCode
4646

4747
[apiSvg]: https://img.shields.io/badge/API-14+-brightgreen.svg

config.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ ext {
55
compileSdkVersion = 27
66
minSdkVersion = 14
77
targetSdkVersion = 27
8-
versionCode = 1_023_005
9-
versionName = '1.23.5'// E.g. 1.9.72 => 1,009,072
8+
versionCode = 1_023_006
9+
versionName = '1.23.6'// E.g. 1.9.72 => 1,009,072
1010

1111
bus = [
1212
isDebug: false,

lib/base/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ dependencies {
1515
api dep.free_proguard
1616
api 'com.r0adkll:slidableactivity:2.0.5'
1717
compileOnly dep.leakcanary.android_no_op
18-
// api 'com.blankj:utilcode:1.23.5'
18+
// api 'com.blankj:utilcode:1.23.6'
1919
}

utilcode/README-CN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Gradle:
44
```groovy
5-
implementation 'com.blankj:utilcode:1.23.5'
5+
implementation 'com.blankj:utilcode:1.23.6'
66
```
77

88

utilcode/README-STATIC-BUS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ apply plugin: "com.blankj.bus"
2727
给 base 模块添加 [AndroidUtilCode](https://github.com/Blankj/AndroidUtilCode) 依赖:
2828

2929
```groovy
30-
api "com.blankj:utilcode:1.23.5"
30+
api "com.blankj:utilcode:1.23.6"
3131
```
3232

3333
比如 module0 中存在的 `Module0Activity.java`,我们通常都是在它内部写一个 `start` 函数来启动它,现在我们给它添加 `@BusUtils.Subscribe` 注解,并给注解的 `name` 赋唯一值,要注意,函数务必要 `public static` 哦:

utilcode/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Gradle:
44
```groovy
5-
implementation 'com.blankj:utilcode:1.23.5'
5+
implementation 'com.blankj:utilcode:1.23.6'
66
```
77

88

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1919,7 +1919,9 @@ private static int calculateInSampleSize(final BitmapFactory.Options options,
19191919
int height = options.outHeight;
19201920
int width = options.outWidth;
19211921
int inSampleSize = 1;
1922-
while ((width >>= 1) >= maxWidth && (height >>= 1) >= maxHeight) {
1922+
while (height > maxHeight || width > maxWidth) {
1923+
height >>= 1;
1924+
width >>= 1;
19231925
inSampleSize <<= 1;
19241926
}
19251927
return inSampleSize;

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

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.content.ContentResolver;
44
import android.content.ContentUris;
5-
import android.content.CursorLoader;
65
import android.database.Cursor;
76
import android.net.Uri;
87
import android.os.Build;
@@ -59,8 +58,6 @@ public static File uri2File(@NonNull final Uri uri) {
5958
if (path != null) return new File(path);
6059
Log.d("UriUtils", uri.toString() + " parse failed. -> 0");
6160
return null;
62-
} else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {
63-
return getFileFromUri(uri, 1);
6461
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT
6562
&& DocumentsContract.isDocumentUri(Utils.getApp(), uri)) {
6663
if ("com.android.externalstorage.documents".equals(authority)) {
@@ -70,15 +67,15 @@ public static File uri2File(@NonNull final Uri uri) {
7067
if ("primary".equalsIgnoreCase(type)) {
7168
return new File(Environment.getExternalStorageDirectory() + "/" + split[1]);
7269
}
73-
Log.d("UriUtils", uri.toString() + " parse failed. -> 2");
70+
Log.d("UriUtils", uri.toString() + " parse failed. -> 1");
7471
return null;
7572
} else if ("com.android.providers.downloads.documents".equals(authority)) {
7673
final String id = DocumentsContract.getDocumentId(uri);
7774
final Uri contentUri = ContentUris.withAppendedId(
7875
Uri.parse("content://downloads/public_downloads"),
7976
Long.valueOf(id)
8077
);
81-
return getFileFromUri(contentUri, 3);
78+
return getFileFromUri(contentUri, 2);
8279
} else if ("com.android.providers.media.documents".equals(authority)) {
8380
final String docId = DocumentsContract.getDocumentId(uri);
8481
final String[] split = docId.split(":");
@@ -91,18 +88,22 @@ public static File uri2File(@NonNull final Uri uri) {
9188
} else if ("audio".equals(type)) {
9289
contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
9390
} else {
94-
Log.d("UriUtils", uri.toString() + " parse failed. -> 4");
91+
Log.d("UriUtils", uri.toString() + " parse failed. -> 3");
9592
return null;
9693
}
9794
final String selection = "_id=?";
9895
final String[] selectionArgs = new String[]{split[1]};
99-
return getFileFromUri(contentUri, selection, selectionArgs, 5);
96+
return getFileFromUri(contentUri, selection, selectionArgs, 4);
97+
} else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {
98+
return getFileFromUri(uri, 5);
10099
} else {
101100
Log.d("UriUtils", uri.toString() + " parse failed. -> 6");
102101
return null;
103102
}
103+
} else if (ContentResolver.SCHEME_CONTENT.equals(scheme)) {
104+
return getFileFromUri(uri, 7);
104105
} else {
105-
Log.d("UriUtils", uri.toString() + " parse failed. -> 7");
106+
Log.d("UriUtils", uri.toString() + " parse failed. -> 8");
106107
return null;
107108
}
108109
}
@@ -115,22 +116,30 @@ private static File getFileFromUri(final Uri uri,
115116
final String selection,
116117
final String[] selectionArgs,
117118
final int code) {
118-
CursorLoader cl = new CursorLoader(Utils.getApp());
119-
cl.setUri(uri);
120-
cl.setProjection(new String[]{"_data"});
121-
Cursor cursor = null;
119+
final Cursor cursor = Utils.getApp().getContentResolver().query(
120+
uri, new String[]{"_data"}, selection, selectionArgs, null);
121+
if (cursor == null) {
122+
Log.d("UriUtils", uri.toString() + " parse failed(cursor is null). -> " + code);
123+
return null;
124+
}
122125
try {
123-
cursor = cl.loadInBackground();
124-
int columnIndex = cursor.getColumnIndexOrThrow("_data");
125-
cursor.moveToFirst();
126-
return new File(cursor.getString(columnIndex));
126+
if (cursor.moveToFirst()) {
127+
final int columnIndex = cursor.getColumnIndex("_data");
128+
if (columnIndex > -1) {
129+
return new File(cursor.getString(columnIndex));
130+
} else {
131+
Log.d("UriUtils", uri.toString() + " parse failed(columnIndex: " + columnIndex + " is wrong). -> " + code);
132+
return null;
133+
}
134+
} else {
135+
Log.d("UriUtils", uri.toString() + " parse failed(moveToFirst return false). -> " + code);
136+
return null;
137+
}
127138
} catch (Exception e) {
128139
Log.d("UriUtils", uri.toString() + " parse failed. -> " + code);
129140
return null;
130141
} finally {
131-
if (cursor != null) {
132-
cursor.close();
133-
}
142+
cursor.close();
134143
}
135144
}
136145
}

0 commit comments

Comments
 (0)