Skip to content

Commit 4605277

Browse files
committed
see 04/08 log
1 parent 35de0c4 commit 4605277

File tree

19 files changed

+159
-76
lines changed

19 files changed

+159
-76
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
* `20/04/08` [fix] CrashUtils DefaultUncaughtExceptionHandler is wrong; LogUtils write file failed. Publish v1.27.3.
2+
* `20/04/07` [mdf] GsonUtils#getGson() method public.
13
* `20/04/04` [fix] ShadowUtils bug running on lower version devices. Publish v1.27.2.
24
* `20/04/03` [fix] UtilsActivityLifecycleImpl#HashMap#remove IllegalStateException bug.
35
* `20/04/02` [fix] PathUtils sdcard enable state is wrong; ActivityUtils finish activity wrong; Publish v1.27.1.

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

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

buildSrc/src/main/java/com/blankj/plugin/readme/ReadmeCorePlugin.groovy

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,12 @@ class ReadmeCorePlugin implements Plugin<Project> {
3030
def sb = new StringBuilder()
3131
readmeCN.eachLine { line ->
3232
if (line.contains("* ###")) {
33-
String utilsName = line.substring(line.indexOf("[") + 1, line.indexOf("Utils"))
34-
sb.append("* ### About ").append(utilsName).append(line.substring(line.indexOf(" -> ")))
33+
if (line.contains("UtilsTransActivity")) {
34+
sb.append(line)
35+
} else {
36+
String utilsName = line.substring(line.indexOf("[") + 1, line.indexOf("Utils"))
37+
sb.append("* ### About ").append(utilsName).append(line.substring(line.indexOf(" -> ")))
38+
}
3539
} else if (line.contains(": ") && !line.contains("[")) {
3640
sb.append(line.substring(0, line.indexOf(':')).trim())
3741
} else if (line.contains("打个小广告") || line.contains("知识星球") || line.contains("我的二维码")) {

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package com.blankj.utilcode.pkg.feature
22

33
import android.content.Context
44
import android.content.Intent
5+
import android.os.Bundle
6+
import android.widget.TextView
57
import com.blankj.common.activity.CommonActivity
68
import com.blankj.common.item.CommonItem
79
import com.blankj.common.item.CommonItemClick
@@ -43,6 +45,7 @@ import com.blankj.utilcode.pkg.feature.span.SpanActivity
4345
import com.blankj.utilcode.pkg.feature.toast.ToastActivity
4446
import com.blankj.utilcode.pkg.feature.vibrate.VibrateActivity
4547
import com.blankj.utilcode.util.CollectionUtils
48+
import com.blankj.utilcode.util.UtilsTransActivity
4649

4750
/**
4851
* ```
@@ -175,6 +178,15 @@ class CoreUtilActivity : CommonActivity() {
175178
CommonItemClick(R.string.demo_toast, true) {
176179
ToastActivity.start(this)
177180
},
181+
CommonItemClick(R.string.demo_trans_activity, true) {
182+
UtilsTransActivity.start(this, object : UtilsTransActivity.TransActivityDelegate() {
183+
override fun onCreated(activity: UtilsTransActivity, savedInstanceState: Bundle?) {
184+
super.onCreated(activity, savedInstanceState)
185+
activity.setContentView(R.layout.common_dialog_loading)
186+
activity.findViewById<TextView>(R.id.utilActionLoadingMsgTv).text = "Trans Activity is showing..."
187+
}
188+
})
189+
},
178190
CommonItemClick(R.string.demo_vibrate, true) {
179191
VibrateActivity.start(this)
180192
}

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/mvp/MvpModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void requestUpdateMsg(final Utils.Consumer<String> consumer) {
3131
ThreadUtils.executeByCached(addAutoDestroyTask(new ThreadUtils.SimpleTask<String>() {
3232
@Override
3333
public String doInBackground() throws Throwable {
34-
Thread.sleep(1000);
34+
Thread.sleep(2000);
3535
return "msg: " + index++;
3636
}
3737

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

Lines changed: 1 addition & 0 deletions
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_trans_activity">TransActivity Demo</string>
4041
<string name="demo_vibrate">VibrateUtils Demo</string>
4142

4243
<!--Activity 相关-->

lib/base/src/main/java/com/blankj/base/BaseApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ private void initCrash() {
8383
@Override
8484
public void onCrash(String crashInfo, Throwable e) {
8585
LogUtils.e(crashInfo);
86-
AppUtils.relaunchApp(true);
86+
AppUtils.relaunchApp();
8787
}
8888
});
8989
}

lib/base/src/main/java/com/blankj/base/mvp/BasePresenter.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.blankj.base.mvp;
22

3+
import android.app.Activity;
34
import android.arch.lifecycle.Lifecycle;
4-
import android.arch.lifecycle.LifecycleObserver;
5-
import android.arch.lifecycle.LifecycleOwner;
6-
import android.arch.lifecycle.OnLifecycleEvent;
7-
import android.support.annotation.CallSuper;
5+
import android.support.annotation.NonNull;
86

7+
import com.blankj.utilcode.util.ActivityUtils;
98
import com.blankj.utilcode.util.LogUtils;
9+
import com.blankj.utilcode.util.Utils;
1010

1111
import java.util.HashMap;
1212
import java.util.Map;
@@ -19,7 +19,7 @@
1919
* desc :
2020
* </pre>
2121
*/
22-
public abstract class BasePresenter<V extends BaseView> implements LifecycleObserver {
22+
public abstract class BasePresenter<V extends BaseView> extends Utils.ActivityLifecycleCallbacks {
2323

2424
private V mView;
2525
private Map<Class, BaseModel> mModelMap = new HashMap<>();
@@ -29,6 +29,7 @@ public abstract class BasePresenter<V extends BaseView> implements LifecycleObse
2929
void bindView(V view) {
3030
this.mView = view;
3131
onAttachView();
32+
ActivityUtils.addActivityLifecycleCallbacks(mView.getActivity(), this);
3233
}
3334

3435
public V getView() {
@@ -54,9 +55,16 @@ public <M extends BaseModel> M getModel(Class<M> modelClass) {
5455
return null;
5556
}
5657

57-
@CallSuper
58-
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
59-
public void onDestroyPresenter() {
58+
@Override
59+
public void onLifecycleChanged(@NonNull Activity activity, Lifecycle.Event event) {
60+
super.onLifecycleChanged(activity, event);
61+
if (event == Lifecycle.Event.ON_DESTROY) {
62+
destroyPresenter();
63+
}
64+
LogUtils.i("onLifecycleChanged: " + event);
65+
}
66+
67+
private void destroyPresenter() {
6068
if (mView != null) {
6169
mView.mPresenterMap.remove(this.getClass());
6270
mView.onDestroyView();
@@ -67,11 +75,5 @@ public void onDestroyPresenter() {
6775
}
6876
}
6977
mModelMap.clear();
70-
LogUtils.i("onDestroyPresenter");
71-
}
72-
73-
@OnLifecycleEvent(Lifecycle.Event.ON_ANY)
74-
public void onLifecycleChanged(LifecycleOwner owner, Lifecycle.Event event) {
75-
LogUtils.i(event.toString());
7678
}
7779
}

lib/base/src/main/java/com/blankj/base/mvp/BaseView.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package com.blankj.base.mvp;
22

3+
import android.app.Activity;
34
import android.arch.lifecycle.Lifecycle;
5+
import android.support.annotation.NonNull;
46
import android.support.v4.app.Fragment;
57
import android.support.v4.app.FragmentActivity;
68

9+
import com.blankj.utilcode.util.ActivityUtils;
10+
import com.blankj.utilcode.util.Utils;
11+
712
import java.util.HashMap;
813
import java.util.Map;
914

@@ -19,20 +24,17 @@ public abstract class BaseView<V extends BaseView> {
1924

2025
private FragmentActivity mActivity;
2126
private Fragment mFragment;
22-
private Lifecycle mLifecycle;
2327
Map<Class, BasePresenter<V>> mPresenterMap = new HashMap<>();
2428

2529
public abstract void onDestroyView();
2630

2731
public BaseView(FragmentActivity activity) {
2832
mActivity = activity;
29-
mLifecycle = activity.getLifecycle();
3033
}
3134

3235
public BaseView(Fragment fragment) {
3336
mFragment = fragment;
3437
mActivity = fragment.getActivity();
35-
mLifecycle = fragment.getLifecycle();
3638
}
3739

3840
public <T extends FragmentActivity> T getActivity() {
@@ -49,9 +51,6 @@ public void addPresenter(BasePresenter<V> presenter) {
4951
mPresenterMap.put(presenter.getClass(), presenter);
5052
//noinspection unchecked
5153
presenter.bindView((V) this);
52-
if (mLifecycle != null) {
53-
mLifecycle.addObserver(presenter);
54-
}
5554
}
5655

5756
public <P extends BasePresenter<V>> P getPresenter(Class<P> presenterClass) {

lib/utilcode/README-CN.md

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

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

1111

@@ -1143,6 +1143,11 @@ file2Uri: file 转 uri
11431143
uri2File: uri 转 file
11441144
```
11451145

1146+
* ### UtilsTransActivity -> [UtilsTransActivity.java][trans.java]
1147+
```
1148+
start: 启动透明 Activity
1149+
```
1150+
11461151
* ### 震动相关 -> [VibrateUtils.java][vibrate.java] -> [Demo][vibrate.demo]
11471152
```
11481153
vibrate: 震动
@@ -1365,6 +1370,8 @@ getComments : 获取压缩文件中的注释链表
13651370

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

1373+
[trans.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/UtilsTransActivity.java
1374+
13681375
[vibrate.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/VibrateUtils.java
13691376
[vibrate.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/vibrate/VibrateActivity.kt
13701377

lib/utilcode/README.md

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

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

1111

@@ -1143,6 +1143,11 @@ file2Uri
11431143
uri2File
11441144
```
11451145

1146+
* ### UtilsTransActivity -> [UtilsTransActivity.java][trans.java]
1147+
```
1148+
start
1149+
```
1150+
11461151
* ### About Vibrate -> [VibrateUtils.java][vibrate.java] -> [Demo][vibrate.demo]
11471152
```
11481153
vibrate
@@ -1362,6 +1367,8 @@ getComments
13621367

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

1370+
[trans.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/UtilsTransActivity.java
1371+
13651372
[vibrate.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/lib/utilcode/src/main/java/com/blankj/utilcode/util/VibrateUtils.java
13661373
[vibrate.demo]: https://github.com/Blankj/AndroidUtilCode/blob/master/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/vibrate/VibrateActivity.kt
13671374

lib/utilcode/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@ dependencies {
4040
testImplementation Config.depConfig.eventbus_lib.dep
4141
}
4242

43+
afterEvaluate {
44+
verifyReleaseResources.enabled(false)
45+
}
46+
4347
apply from: "${rootDir.path}/gradle/publish.gradle"
4448
publish {
4549
name = "UtilCode"
4650
groupId = Config.depConfig.lib_utilcode.groupId
4751
artifactId = Config.depConfig.lib_utilcode.artifactId
4852
version = Config.depConfig.lib_utilcode.version
4953
website = "https://github.com/Blankj/AndroidUtilCode"
50-
}
51-
52-
afterEvaluate {
53-
verifyReleaseResources.enabled(false)
5454
}

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ public final class CrashUtils {
2121

2222
private static final String FILE_SEP = System.getProperty("file.separator");
2323

24+
private static final UncaughtExceptionHandler DEFAULT_UNCAUGHT_EXCEPTION_HANDLER = Thread.getDefaultUncaughtExceptionHandler();
25+
2426
private CrashUtils() {
2527
throw new UnsupportedOperationException("u can't instantiate me...");
2628
}
@@ -79,7 +81,12 @@ public static void init(@NonNull final File crashDir, final OnCrashListener onCr
7981
public static void init(final String crashDirPath, final OnCrashListener onCrashListener) {
8082
String dirPath;
8183
if (UtilsBridge.isSpace(crashDirPath)) {
82-
dirPath = Utils.getApp().getFilesDir() + FILE_SEP + "crash" + FILE_SEP;
84+
if (UtilsBridge.isSDCardEnableByEnvironment()
85+
&& Utils.getApp().getExternalFilesDir(null) != null)
86+
dirPath = Utils.getApp().getExternalFilesDir(null) + FILE_SEP + "crash" + FILE_SEP;
87+
else {
88+
dirPath = Utils.getApp().getFilesDir() + FILE_SEP + "crash" + FILE_SEP;
89+
}
8390
} else {
8491
dirPath = crashDirPath.endsWith(FILE_SEP) ? crashDirPath : crashDirPath + FILE_SEP;
8592
}
@@ -91,7 +98,7 @@ private static UncaughtExceptionHandler getUncaughtExceptionHandler(final String
9198
return new UncaughtExceptionHandler() {
9299
@Override
93100
public void uncaughtException(@NonNull final Thread t, @NonNull final Throwable e) {
94-
final String time = new SimpleDateFormat("MM-dd_HH-mm-ss").format(new Date());
101+
final String time = new SimpleDateFormat("yyyy_MM_dd-HH_mm_ss").format(new Date());
95102
final StringBuilder sb = new StringBuilder();
96103
final String head = "************* Log Head ****************" +
97104
"\nTime Of Crash : " + time +
@@ -105,15 +112,14 @@ public void uncaughtException(@NonNull final Thread t, @NonNull final Throwable
105112
sb.append(head).append(UtilsBridge.getFullStackTrace(e));
106113
final String crashInfo = sb.toString();
107114
final String crashFile = dirPath + time + ".txt";
108-
UtilsBridge.writeFileFromString(crashFile, crashInfo);
115+
UtilsBridge.writeFileFromString(crashFile, crashInfo, true);
109116

110117
if (onCrashListener != null) {
111118
onCrashListener.onCrash(crashInfo, e);
112119
}
113120

114-
UncaughtExceptionHandler handler = Thread.getDefaultUncaughtExceptionHandler();
115-
if (handler != null) {
116-
handler.uncaughtException(t, e);
121+
if (DEFAULT_UNCAUGHT_EXCEPTION_HANDLER != null) {
122+
DEFAULT_UNCAUGHT_EXCEPTION_HANDLER.uncaughtException(t, e);
117123
}
118124
}
119125
};

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ private static void printDeviceInfo(final String filePath, final String date) {
593593

594594
private static void input2File(final String filePath, final String input) {
595595
if (CONFIG.mFileWriter == null) {
596-
UtilsBridge.writeFileFromString(filePath, input);
596+
UtilsBridge.writeFileFromString(filePath, input, true);
597597
} else {
598598
CONFIG.mFileWriter.write(filePath, input);
599599
}
@@ -621,13 +621,12 @@ public static final class Config {
621621
private IFileWriter mFileWriter;
622622

623623
private Config() {
624-
mDefaultDir = Utils.getApp().getFilesDir() + FILE_SEP + "log" + FILE_SEP;
625-
mFileWriter = new IFileWriter() {
626-
@Override
627-
public void write(String file, String content) {
628-
629-
}
630-
};
624+
if (UtilsBridge.isSDCardEnableByEnvironment()
625+
&& Utils.getApp().getExternalFilesDir(null) != null)
626+
mDefaultDir = Utils.getApp().getExternalFilesDir(null) + FILE_SEP + "log" + FILE_SEP;
627+
else {
628+
mDefaultDir = Utils.getApp().getFilesDir() + FILE_SEP + "log" + FILE_SEP;
629+
}
631630
}
632631

633632
public final Config setLogSwitch(final boolean logSwitch) {
@@ -863,7 +862,8 @@ static String object2String(Object object) {
863862

864863
static String object2String(Object object, int type) {
865864
if (object.getClass().isArray()) return array2String(object);
866-
if (object instanceof Throwable) return UtilsBridge.getFullStackTrace((Throwable) object);
865+
if (object instanceof Throwable)
866+
return UtilsBridge.getFullStackTrace((Throwable) object);
867867
if (object instanceof Bundle) return bundle2String((Bundle) object);
868868
if (object instanceof Intent) return intent2String((Intent) object);
869869
if (type == JSON) {

0 commit comments

Comments
 (0)