diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ef8322de50ead03db583f5378c7d3c6e4e048ca..10fef262a1c34f3a83b5f1ba61bc3449cb983395 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +* `18/12/17` [fix] ToastUtils leak. Publish v1.22.2. * `18/12/09` [add] Component for the project. * `18/12/04` [add] BusUtils. Publish v1.22.1. * `18/11/18` [fix] ToastUtils don't show in the devices grater than API 24 when close the permission of notification. Publish v1.22.0. diff --git a/README-CN.md b/README-CN.md index b8644232340dc4fc398deec24e62418e1eea554f..9d9af8dead09ae6256d8f288b0ca062ec8828ef9 100644 --- a/README-CN.md +++ b/README-CN.md @@ -41,7 +41,7 @@ [logo]: https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/logo.png -[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.22.1-brightgreen.svg +[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.22.2-brightgreen.svg [auc]: https://github.com/Blankj/AndroidUtilCode [apiSvg]: https://img.shields.io/badge/API-14+-brightgreen.svg diff --git a/README.md b/README.md index 93a846b61e8175d4b44831912758d3214c3a2cee..b1ef32f97810e19da34762413541b9a2ce70be00 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ If this project helps you a lot and you want to support the project's developmen [logo]: https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/logo.png -[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.22.1-brightgreen.svg +[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.22.2-brightgreen.svg [auc]: https://github.com/Blankj/AndroidUtilCode [apiSvg]: https://img.shields.io/badge/API-14+-brightgreen.svg diff --git a/launcher/app/__bus__.json b/launcher/app/__bus__.json index a142264eae80c3f27546df040f2362cce7ee094f..fe76b2d76d6825da7201ed01565c73ee1fe52038 100644 --- a/launcher/app/__bus__.json +++ b/launcher/app/__bus__.json @@ -1,3 +1,4 @@ { + "SubUtilActivity#start": "void com.blankj.subutil.pkg.feature.SubUtilActivity.start(android.content.Context)", "CoreUtilActivity#start": "void com.blankj.utilcode.pkg.feature.CoreUtilActivity.start(android.content.Context)" } \ No newline at end of file diff --git a/lib/base/build.gradle b/lib/base/build.gradle index 74bb722b15da0570796fff44f06b1679a99c0756..b32b54d4b2f542bb30f12520a195b1405dd0e610 100644 --- a/lib/base/build.gradle +++ b/lib/base/build.gradle @@ -4,7 +4,7 @@ apply { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - api project(':utilcode-lib') +// api project(':utilcode-lib') api project(':subutil-lib') api dep.support.appcompat_v7 @@ -15,5 +15,5 @@ dependencies { api dep.free_proguard api 'com.r0adkll:slidableactivity:2.0.5' compileOnly dep.leakcanary.android_no_op -// api 'com.blankj:utilcode:1.22.1' + api 'com.blankj:utilcode:1.22.2' } \ No newline at end of file diff --git a/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.java b/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.java index 809b1c5a27cbad6e5e662dfbac6a9c7dfe77c8fc..e755a55cd323bd2e83f3798ab6c7ec18fbe54eb1 100644 --- a/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.java +++ b/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.java @@ -4,7 +4,7 @@ import android.app.Activity; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; -import com.blankj.subutil.R.pkg; +import com.blankj.subutil.pkg.R; import com.blankj.utilcode.util.ActivityUtils; import com.blankj.utilcode.util.PermissionUtils; import com.blankj.utilcode.util.PermissionUtils.OnRationaleListener.ShouldRequest; diff --git a/utilcode/README-CN.md b/utilcode/README-CN.md index 1b103ee3bba0a11b7660b37e4517013fec8bcb20..fcada55276b284fa31d761ebcc560d53965e1909 100644 --- a/utilcode/README-CN.md +++ b/utilcode/README-CN.md @@ -2,7 +2,7 @@ Gradle: ```groovy -implementation 'com.blankj:utilcode:1.22.1' +implementation 'com.blankj:utilcode:1.22.2' ``` diff --git a/utilcode/README-STATIC-BUS.md b/utilcode/README-STATIC-BUS.md index 1ccfe8ff78661cfec6e3da87809ff8abb9f21b6b..2f0a8f3ee9e5462692f612a31d84b2950c9523f4 100644 --- a/utilcode/README-STATIC-BUS.md +++ b/utilcode/README-STATIC-BUS.md @@ -27,7 +27,7 @@ apply plugin: "com.blankj.bus" 给 base 模块添加 [AndroidUtilCode](https://github.com/Blankj/AndroidUtilCode) 依赖: ```groovy -api "com.blankj:utilcode:1.22.1" +api "com.blankj:utilcode:1.22.2" ``` 比如 module0 中存在的 `Module0Activity.java`,我们通常都是在它内部写一个 `start` 函数来启动它,现在我们给它添加 `@BusUtils.Subscribe` 注解,并给注解的 `name` 赋唯一值,要注意,函数务必要 `public static` 哦: diff --git a/utilcode/README.md b/utilcode/README.md index 80a60a105ab5f4981ef1f3576edbe3ae4a841a56..56d8f618799b21374b774bf8ee1136cc2b6f7151 100644 --- a/utilcode/README.md +++ b/utilcode/README.md @@ -2,7 +2,7 @@ Gradle: ```groovy -implementation 'com.blankj:utilcode:1.22.1' +implementation 'com.blankj:utilcode:1.22.2' ``` diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/AppUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/AppUtils.java index d8192297d5460e246e94208ea8f11357a58d782c..6cb0dc91a2c92dfd7f485555f4e997876a6cfcb9 100644 --- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/AppUtils.java +++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/AppUtils.java @@ -49,7 +49,7 @@ public final class AppUtils { */ public static void registerAppStatusChangedListener(@NonNull final Object obj, @NonNull final Utils.OnAppStatusChangedListener listener) { - Utils.getActivityLifecycle().addListener(obj, listener); + Utils.getActivityLifecycle().addOnAppStatusChangedListener(obj, listener); } /** @@ -58,7 +58,7 @@ public final class AppUtils { * @param obj The object. */ public static void unregisterAppStatusChangedListener(@NonNull final Object obj) { - Utils.getActivityLifecycle().removeListener(obj); + Utils.getActivityLifecycle().removeOnAppStatusChangedListener(obj); } /** diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ToastUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ToastUtils.java index 9860ee4f3bde8a0a59f9d255e0a474fcf2592fcb..51efb2ac38905212471b800d9dad1676daede764 100644 --- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ToastUtils.java +++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ToastUtils.java @@ -251,7 +251,7 @@ public final class ToastUtils { @Override public void run() { cancel(); - iToast = ToastFactory.makeToast(Utils.getTopActivityOrApp(), text, duration); + iToast = ToastFactory.makeToast(Utils.getApp(), text, duration); final TextView tvMessage = iToast.getView().findViewById(android.R.id.message); if (sMsgColor != COLOR_DEFAULT) { tvMessage.setTextColor(sMsgColor); @@ -416,11 +416,18 @@ public final class ToastUtils { static class ToastWithoutNotification extends AbsToast { private WindowManager mWM; - - private View mView; + private View mView; private WindowManager.LayoutParams mParams = new WindowManager.LayoutParams(); + private Utils.OnActivityDestroyedListener listener = + new Utils.OnActivityDestroyedListener() { + @Override + public void onActivityDestroyed(Activity activity) { + cancel(); + } + }; + ToastWithoutNotification(Toast toast) { super(toast); } @@ -437,20 +444,12 @@ public final class ToastUtils { } else { Context topActivityOrApp = Utils.getTopActivityOrApp(); if (topActivityOrApp instanceof Activity) { - mWM = ((Activity) topActivityOrApp).getWindowManager(); + Activity topActivity = (Activity) topActivityOrApp; + mWM = topActivity.getWindowManager(); + Utils.getActivityLifecycle().addOnActivityDestroyedListener(topActivity, listener); } mParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL; mParams.y = mToast.getYOffset() + getNavBarHeight(); - if (Utils.getActivityLifecycle().getOnActivityDestroyedListener() == null) { - Utils.getActivityLifecycle().setOnActivityDestroyedListener( - new Utils.OnActivityDestroyedListener() { - @Override - public void onActivityDestroyed(Activity activity) { - cancel(); - } - } - ); - } } final Configuration config = context.getResources().getConfiguration(); @@ -496,7 +495,7 @@ public final class ToastUtils { public void cancel() { try { if (mWM != null) { - mWM.removeView(mView); + mWM.removeViewImmediate(mView); } } catch (Exception ignored) { /**/ } mView = null; diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/Utils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/Utils.java index f82e5179c0d391f3633d067ba12734ff67bdd18b..518bf26726cb565ba97cc71268c559b2d66c82b9 100644 --- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/Utils.java +++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/Utils.java @@ -11,9 +11,11 @@ import android.os.Bundle; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; /** *
@@ -157,28 +159,12 @@ public final class Utils { final LinkedListmActivityList = new LinkedList<>(); final HashMap