Skip to content

Commit 11dff44

Browse files
committed
see 04/10 log
1 parent 7f5f292 commit 11dff44

File tree

17 files changed

+258
-33
lines changed

17 files changed

+258
-33
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
* `20/04/10` [fix] FileUtils#isFileExists; FragmentUtils#getTop bug. Publish v1.27.6.
2+
* `20/04/09` [add] UriUtils#res2Uri; ThreadUtils#getMainHandler; PathUtils#getxxPathExternalFirst.
13
* `20/04/08` [fix] ActivityUtils#finish bug. Publish v1.27.5.
24
* `20/04/08` [fix] CleanUtils clean dir not work. FileUtils#isFileExists. Publish v1.27.4.
35
* `20/04/08` [fix] CrashUtils DefaultUncaughtExceptionHandler is wrong; LogUtils write file failed; Utils#getApp failed run on remote process. Publish v1.27.3.

buildSrc/src/main/groovy/Config.groovy

+1-1
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.27.5'// E.g. 1.9.72 => 1,009,072
18+
static versionName = '1.27.6'// 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

+4
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@
143143
android:name=".feature.device.DeviceActivity"
144144
android:configChanges="orientation|keyboardHidden|screenSize"
145145
android:launchMode="singleTop" />
146+
<activity
147+
android:name=".feature.file.FileActivity"
148+
android:configChanges="orientation|keyboardHidden|screenSize"
149+
android:launchMode="singleTop" />
146150
<activity
147151
android:name=".feature.flashlight.FlashlightActivity"
148152
android:configChanges="orientation|keyboardHidden|screenSize"

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

+4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.blankj.utilcode.pkg.feature.bus.BusActivity
1818
import com.blankj.utilcode.pkg.feature.clean.CleanActivity
1919
import com.blankj.utilcode.pkg.feature.click.ClickActivity
2020
import com.blankj.utilcode.pkg.feature.device.DeviceActivity
21+
import com.blankj.utilcode.pkg.feature.file.FileActivity
2122
import com.blankj.utilcode.pkg.feature.flashlight.FlashlightActivity
2223
import com.blankj.utilcode.pkg.feature.fragment.FragmentActivity
2324
import com.blankj.utilcode.pkg.feature.image.ImageActivity
@@ -103,6 +104,9 @@ class CoreUtilActivity : CommonActivity() {
103104
CommonItemClick(R.string.demo_device, true) {
104105
DeviceActivity.start(this)
105106
},
107+
CommonItemClick(R.string.demo_file, true) {
108+
FileActivity.start(this)
109+
},
106110
CommonItemClick(R.string.demo_flashlight, true) {
107111
FlashlightActivity.start(this)
108112
},
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.blankj.utilcode.pkg.feature.file
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.CommonItemTitle
8+
import com.blankj.utilcode.pkg.Config.CACHE_PATH
9+
import com.blankj.utilcode.pkg.R
10+
import com.blankj.utilcode.util.CollectionUtils
11+
import com.blankj.utilcode.util.FileUtils
12+
import com.blankj.utilcode.util.PathUtils
13+
import com.blankj.utilcode.util.SnackbarUtils
14+
import java.io.File
15+
16+
/**
17+
* ```
18+
* author: Blankj
19+
* blog : http://blankj.com
20+
* time : 2016/09/29
21+
* desc : demo about ClickUtils
22+
* ```
23+
*/
24+
class FileActivity : CommonActivity() {
25+
26+
companion object {
27+
fun start(context: Context) {
28+
val starter = Intent(context, FileActivity::class.java)
29+
context.startActivity(starter)
30+
}
31+
32+
val TEST_FILE_PATH: String = CACHE_PATH + "test_file.txt"
33+
}
34+
35+
override fun bindTitleRes(): Int {
36+
return R.string.demo_file
37+
}
38+
39+
override fun bindItems(): MutableList<CommonItem<*>> {
40+
return CollectionUtils.newArrayList(
41+
CommonItemTitle("isFileExists: " + PathUtils.getInternalAppFilesPath(), "" + FileUtils.isFileExists(PathUtils.getInternalAppFilesPath())),
42+
CommonItemTitle("isFileExists: " + PathUtils.getExternalAppFilesPath(), "" + FileUtils.isFileExists(PathUtils.getExternalAppFilesPath())),
43+
CommonItemTitle("isFileExists: " + PathUtils.getExternalStoragePath(), "" + FileUtils.isFileExists(PathUtils.getExternalStoragePath())),
44+
CommonItemTitle("isFileExists: " + PathUtils.getDownloadCachePath(), "" + FileUtils.isFileExists(PathUtils.getDownloadCachePath())),
45+
CommonItemTitle("isFileExists: " + PathUtils.getExternalDownloadsPath(), "" + FileUtils.isFileExists(PathUtils.getExternalDownloadsPath() + "/" + "app-release.apk1")),
46+
47+
CommonItemTitle("isFileExists: " + PathUtils.getInternalAppFilesPath(), "" + FileUtils.isFileExists(File(PathUtils.getInternalAppFilesPath()))),
48+
CommonItemTitle("isFileExists: " + PathUtils.getExternalAppFilesPath(), "" + FileUtils.isFileExists(File(PathUtils.getExternalAppFilesPath()))),
49+
CommonItemTitle("isFileExists: " + PathUtils.getExternalStoragePath(), "" + FileUtils.isFileExists(File(PathUtils.getExternalStoragePath()))),
50+
CommonItemTitle("isFileExists: " + PathUtils.getDownloadCachePath(), "" + FileUtils.isFileExists(File(PathUtils.getDownloadCachePath()))),
51+
CommonItemTitle("isFileExists: " + PathUtils.getExternalDownloadsPath(), "" + FileUtils.isFileExists(File(PathUtils.getExternalDownloadsPath() + "/" + "app-release.apk1")))
52+
)
53+
}
54+
55+
override fun onDestroy() {
56+
super.onDestroy()
57+
SnackbarUtils.dismiss()
58+
}
59+
}

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/log/LogActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ class LogActivity : CommonActivity() {
130130
mConfig.setConsoleSwitch(it)
131131
}
132132
),
133-
CommonItemClick("Global Tag", if (mConfig.globalTag == "") "\"\"" else mConfig.globalTag).setOnClickUpdateContentListener {
133+
CommonItemClick("Global Tag", if (mConfig.globalTag == "") "null" else mConfig.globalTag).setOnClickUpdateContentListener {
134134
if (StringUtils.isSpace(mConfig.globalTag)) {
135135
mConfig.globalTag = TAG
136136
} else {

feature/utilcode/pkg/src/main/res/layout/fragment_dialog.xml

+1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
style="@style/CommonTextStyle"
55
android:layout_width="match_parent"
66
android:layout_height="wrap_content"
7+
android:background="@drawable/common_content_dialog_bg"
78
android:padding="@dimen/spacing_16"
89
android:scrollbars="vertical" />

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
<string name="demo_app">AppUtils Demo</string>
77
<string name="demo_bar">BarUtils Demo</string>
88
<string name="demo_brightness">BrightnessUtils Demo</string>
9-
<string name="demo_blur">BlurUtils Demo</string>
9+
<string name="demo_bus">BusUtils Demo</string>
1010
<string name="demo_clean">CleanUtils Demo</string>
1111
<string name="demo_click">ClickUtils Demo</string>
12-
<string name="demo_bus">BusUtils Demo</string>
1312
<string name="demo_crash">CrashUtils Demo</string>
1413
<string name="demo_device">DeviceUtils Demo</string>
14+
<string name="demo_file">FileUtils Demo</string>
1515
<string name="demo_flashlight">FlashlightUtils Demo</string>
1616
<string name="demo_fragment">FragmentUtils Demo</string>
1717
<string name="demo_image">ImageUtils Demo</string>

lib/common/src/main/res/layout/common_dialog_loading.xml

+5-6
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,20 @@
1515
android:minWidth="100dp"
1616
android:minHeight="40dp"
1717
android:paddingLeft="20dp"
18-
android:paddingTop="8dp"
18+
android:paddingTop="10dp"
1919
android:paddingRight="20dp"
20-
android:paddingBottom="8dp">
20+
android:paddingBottom="10dp">
2121

2222
<com.blankj.common.view.RotateView
23-
android:layout_width="16dp"
24-
android:layout_height="16dp"
25-
android:layout_marginTop="1dp"
23+
android:layout_width="22dp"
24+
android:layout_height="22dp"
2625
android:background="@drawable/common_loading" />
2726

2827
<TextView
2928
android:id="@+id/utilActionLoadingMsgTv"
3029
android:layout_width="wrap_content"
3130
android:layout_height="wrap_content"
32-
android:layout_marginLeft="8dp"
31+
android:layout_marginLeft="4dp"
3332
android:lineSpacingExtra="2dp"
3433
android:text="Loading..."
3534
android:textColor="@color/white"

lib/utilcode/README-CN.md

+9-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

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

1111

@@ -709,6 +709,7 @@ hashCode(s) : 获取对象哈希值
709709

710710
* ### 路径相关 -> [PathUtils.java][path.java] -> [Demo][path.demo]
711711
```
712+
join : 连接路径
712713
getRootPath : 获取根路径
713714
getDataPath : 获取数据路径
714715
getDownloadCachePath : 获取下载缓存路径
@@ -745,6 +746,10 @@ getExternalAppDownloadPath : 获取外存应用下载路径
745746
getExternalAppDcimPath : 获取外存应用数码相机图片路径
746747
getExternalAppDocumentsPath : 获取外存应用文档路径
747748
getExternalAppObbPath : 获取外存应用 OBB 路径
749+
getRootPathExternalFirst : 优先获取外部根路径
750+
getAppDataPathExternalFirst : 优先获取外部数据路径
751+
getFilesPathExternalFirst : 优先获取外部文件路径
752+
getCachePathExternalFirst : 优先获取外部缓存路径
748753
```
749754

750755
* ### 权限相关 -> [PermissionUtils.java][permission.java] -> [Demo][permission.demo]
@@ -1049,6 +1054,7 @@ getStringArray : 获取字符数组资源
10491054
* ### 线程相关 -> [ThreadUtils.java][thread.java] -> [Test][thread.test]
10501055
```
10511056
isMainThread : 判断当前是否主线程
1057+
getMainHandler : 获取主线程 Handler
10521058
runOnUiThread : 运行在主线程
10531059
runOnUiThreadDelayed : 延时运行在主线程
10541060
getFixedPool : 获取固定线程池
@@ -1139,6 +1145,7 @@ removeListener: 移除消息监听器
11391145

11401146
* ### URI 相关 -> [UriUtils.java][uri.java]
11411147
```
1148+
res2Uri : res 转 uri
11421149
file2Uri: file 转 uri
11431150
uri2File: uri 转 file
11441151
```

lib/utilcode/README.md

+9-2
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

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

1111

@@ -709,6 +709,7 @@ hashCode(s)
709709

710710
* ### About Path -> [PathUtils.java][path.java] -> [Demo][path.demo]
711711
```
712+
join
712713
getRootPath
713714
getDataPath
714715
getDownloadCachePath
@@ -745,6 +746,10 @@ getExternalAppDownloadPath
745746
getExternalAppDcimPath
746747
getExternalAppDocumentsPath
747748
getExternalAppObbPath
749+
getRootPathExternalFirst
750+
getAppDataPathExternalFirst
751+
getFilesPathExternalFirst
752+
getCachePathExternalFirst
748753
```
749754

750755
* ### About Permission -> [PermissionUtils.java][permission.java] -> [Demo][permission.demo]
@@ -1049,6 +1054,7 @@ getStringArray
10491054
* ### About Thread -> [ThreadUtils.java][thread.java] -> [Test][thread.test]
10501055
```
10511056
isMainThread
1057+
getMainHandler
10521058
runOnUiThread
10531059
runOnUiThreadDelayed
10541060
getFixedPool
@@ -1139,6 +1145,7 @@ removeListener
11391145

11401146
* ### About Uri -> [UriUtils.java][uri.java]
11411147
```
1148+
res2Uri
11421149
file2Uri
11431150
uri2File
11441151
```

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

+22-14
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ public static File getFileByPath(final String filePath) {
5757
* @return {@code true}: yes<br>{@code false}: no
5858
*/
5959
public static boolean isFileExists(final File file) {
60-
return file != null && isFileExists(file.getAbsolutePath());
60+
if (file == null) return false;
61+
if (file.exists()) {
62+
return true;
63+
}
64+
return isFileExists(file.getAbsolutePath());
6165
}
6266

6367
/**
@@ -67,27 +71,31 @@ public static boolean isFileExists(final File file) {
6771
* @return {@code true}: yes<br>{@code false}: no
6872
*/
6973
public static boolean isFileExists(final String filePath) {
70-
if (Build.VERSION.SDK_INT < 29) {
71-
File file = getFileByPath(filePath);
72-
return file != null && file.exists();
74+
File file = getFileByPath(filePath);
75+
if (file == null) return false;
76+
if (file.exists()) {
77+
return true;
7378
}
7479
return isFileExists29(filePath);
7580
}
7681

7782
private static boolean isFileExists29(String filePath) {
78-
try {
79-
Uri uri = Uri.parse(filePath);
80-
ContentResolver cr = Utils.getApp().getContentResolver();
81-
AssetFileDescriptor afd = cr.openAssetFileDescriptor(uri, "r");
82-
if (afd == null) return false;
83+
if (Build.VERSION.SDK_INT >= 29) {
8384
try {
84-
afd.close();
85-
} catch (IOException ignore) {
85+
Uri uri = Uri.parse(filePath);
86+
ContentResolver cr = Utils.getApp().getContentResolver();
87+
AssetFileDescriptor afd = cr.openAssetFileDescriptor(uri, "r");
88+
if (afd == null) return false;
89+
try {
90+
afd.close();
91+
} catch (IOException ignore) {
92+
}
93+
} catch (FileNotFoundException e) {
94+
return false;
8695
}
87-
} catch (FileNotFoundException e) {
88-
return false;
96+
return true;
8997
}
90-
return true;
98+
return false;
9199
}
92100

93101
/**

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -1542,10 +1542,10 @@ private static Fragment getTopIsInStack(@NonNull final FragmentManager fm,
15421542
if (isInStack) {
15431543
Bundle args = fragment.getArguments();
15441544
if (args != null && args.getBoolean(ARGS_IS_ADD_STACK)) {
1545-
return getTopIsInStack(fragment.getChildFragmentManager(), parentFragment, true);
1545+
return getTopIsInStack(fragment.getChildFragmentManager(), fragment, true);
15461546
}
15471547
} else {
1548-
return getTopIsInStack(fragment.getChildFragmentManager(), parentFragment, false);
1548+
return getTopIsInStack(fragment.getChildFragmentManager(), fragment, false);
15491549
}
15501550
}
15511551
}

0 commit comments

Comments
 (0)