Skip to content

Commit a509f94

Browse files
committed
see 10/26 log
1 parent c7f9b2d commit a509f94

12 files changed

Lines changed: 97 additions & 69 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
* `20/10/26` [add] Fix AppUtils#isAppForeground. Publish v1.30.1.
12
* `20/10/24` [add] Publish v1.30.0.
23
* `20/10/23` [fix] LanguageUtils crash on some device.
34
* `20/10/21` [add] LogUtils.Config#setOnConsoleOutputListener, setOnFileOutputListener, addFileExtraHead. LogUtils.getCurrentLogFilePath.

buildSrc/src/main/groovy/Config.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ class Config {
1414
static compileSdkVersion = 29
1515
static minSdkVersion = 14
1616
static targetSdkVersion = 29
17-
static versionCode = 1_030_000
18-
static versionName = '1.30.0'// E.g. 1.9.72 => 1,009,072
17+
static versionCode = 1_030_001
18+
static versionName = '1.30.1'// E.g. 1.9.72 => 1,009,072
1919

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

feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/app/AppActivity.kt

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package com.blankj.utilcode.pkg.feature.app
22

3+
import android.app.Activity
34
import android.content.Context
45
import android.content.Intent
56
import com.blankj.common.activity.CommonActivity
67
import com.blankj.common.helper.PermissionHelper
7-
import com.blankj.common.item.CommonItem
8-
import com.blankj.common.item.CommonItemClick
9-
import com.blankj.common.item.CommonItemImage
10-
import com.blankj.common.item.CommonItemTitle
8+
import com.blankj.common.item.*
119
import com.blankj.utilcode.constant.PermissionConstants
1210
import com.blankj.utilcode.pkg.Config
1311
import com.blankj.utilcode.pkg.R
@@ -21,7 +19,9 @@ import com.blankj.utilcode.util.*
2119
* desc : demo about AppUtils
2220
* ```
2321
*/
24-
class AppActivity : CommonActivity() {
22+
class AppActivity : CommonActivity(), Utils.OnAppStatusChangedListener {
23+
24+
var isRegisterAppStatusChangedListener: Boolean = false
2525

2626
companion object {
2727
fun start(context: Context) {
@@ -54,6 +54,14 @@ class AppActivity : CommonActivity() {
5454

5555
override fun bindItems(): MutableList<CommonItem<*>> {
5656
return CollectionUtils.newArrayList(
57+
CommonItemSwitch("registerAppStatusChangedListener", { isRegisterAppStatusChangedListener }, {
58+
isRegisterAppStatusChangedListener = it
59+
if (it) {
60+
AppUtils.registerAppStatusChangedListener(this)
61+
} else {
62+
AppUtils.unregisterAppStatusChangedListener(this)
63+
}
64+
}),
5765
CommonItemTitle("isAppRoot", AppUtils.isAppRoot().toString()),
5866
CommonItemTitle("isAppDebug", AppUtils.isAppDebug().toString()),
5967
CommonItemTitle("isAppSystem", AppUtils.isAppSystem().toString()),
@@ -105,6 +113,21 @@ class AppActivity : CommonActivity() {
105113
}
106114
)
107115
}
116+
117+
override fun onForeground(activity: Activity) {
118+
ToastUtils.showShort("onForeground\n${activity.javaClass.simpleName}")
119+
}
120+
121+
override fun onBackground(activity: Activity) {
122+
ToastUtils.showShort("onBackground\n${activity.javaClass.simpleName}")
123+
}
124+
125+
override fun onDestroy() {
126+
super.onDestroy()
127+
if (isRegisterAppStatusChangedListener) {
128+
AppUtils.unregisterAppStatusChangedListener(this)
129+
}
130+
}
108131
}
109132

110133
class ReleaseInstallApkTask(private val mListener: OnReleasedListener) : ThreadUtils.SimpleTask<Unit>() {

lib/utilcode/README-CN.md

Lines changed: 3 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.30.0'
5+
implementation 'com.blankj:utilcode:1.30.1'
66
77
// if u use AndroidX, use the following
8-
implementation 'com.blankj:utilcodex:1.30.0'
8+
implementation 'com.blankj:utilcodex:1.30.1'
99
```
1010

1111

@@ -1181,6 +1181,7 @@ make.setRightIcon : 设置右侧图标
11811181
make.setBottomIcon : 设置底部图标
11821182
make.setNotUseSystemToast: 设置不使用系统吐司
11831183
make.show : 显示吐司
1184+
getDefaultMaker : 获取默认制作实例(控制 showShort、showLong 样式)
11841185
showShort : 显示短时吐司
11851186
showLong : 显示长时吐司
11861187
cancel : 取消吐司显示

lib/utilcode/README.md

Lines changed: 3 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.30.0'
5+
implementation 'com.blankj:utilcode:1.30.1'
66
77
// if u use AndroidX, use the following
8-
implementation 'com.blankj:utilcodex:1.30.0'
8+
implementation 'com.blankj:utilcodex:1.30.1'
99
```
1010

1111

@@ -1181,6 +1181,7 @@ make.setRightIcon
11811181
make.setBottomIcon
11821182
make.setNotUseSystemToast
11831183
make.show
1184+
getDefaultMaker
11841185
showShort
11851186
showLong
11861187
cancel

lib/utilcode/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public final class PermissionConstants {
4141
permission.READ_CONTACTS, permission.WRITE_CONTACTS, permission.GET_ACCOUNTS
4242
};
4343
private static final String[] GROUP_LOCATION = {
44-
permission.ACCESS_FINE_LOCATION, permission.ACCESS_COARSE_LOCATION
44+
permission.ACCESS_FINE_LOCATION, permission.ACCESS_COARSE_LOCATION, permission.ACCESS_BACKGROUND_LOCATION
4545
};
4646
private static final String[] GROUP_MICROPHONE = {
4747
permission.RECORD_AUDIO

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

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public static boolean isActivityExists(@NonNull final String pkg,
159159
* @param clz The activity class.
160160
*/
161161
public static void startActivity(@NonNull final Class<? extends Activity> clz) {
162-
Context context = UtilsBridge.getTopActivityOrApp();
162+
Context context = getTopActivityOrApp();
163163
startActivity(context, null, context.getPackageName(), clz.getName(), null);
164164
}
165165

@@ -171,7 +171,7 @@ public static void startActivity(@NonNull final Class<? extends Activity> clz) {
171171
*/
172172
public static void startActivity(@NonNull final Class<? extends Activity> clz,
173173
@Nullable final Bundle options) {
174-
Context context = UtilsBridge.getTopActivityOrApp();
174+
Context context = getTopActivityOrApp();
175175
startActivity(context, null, context.getPackageName(), clz.getName(), options);
176176
}
177177

@@ -187,7 +187,7 @@ public static void startActivity(@NonNull final Class<? extends Activity> clz,
187187
public static void startActivity(@NonNull final Class<? extends Activity> clz,
188188
@AnimRes final int enterAnim,
189189
@AnimRes final int exitAnim) {
190-
Context context = UtilsBridge.getTopActivityOrApp();
190+
Context context = getTopActivityOrApp();
191191
startActivity(context, null, context.getPackageName(), clz.getName(),
192192
getOptionsBundle(context, enterAnim, exitAnim));
193193
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN && context instanceof Activity) {
@@ -263,7 +263,7 @@ public static void startActivity(@NonNull final Activity activity,
263263
*/
264264
public static void startActivity(@NonNull final Bundle extras,
265265
@NonNull final Class<? extends Activity> clz) {
266-
Context context = UtilsBridge.getTopActivityOrApp();
266+
Context context = getTopActivityOrApp();
267267
startActivity(context, extras, context.getPackageName(), clz.getName(), null);
268268
}
269269

@@ -277,7 +277,7 @@ public static void startActivity(@NonNull final Bundle extras,
277277
public static void startActivity(@NonNull final Bundle extras,
278278
@NonNull final Class<? extends Activity> clz,
279279
@Nullable final Bundle options) {
280-
Context context = UtilsBridge.getTopActivityOrApp();
280+
Context context = getTopActivityOrApp();
281281
startActivity(context, extras, context.getPackageName(), clz.getName(), options);
282282
}
283283

@@ -295,7 +295,7 @@ public static void startActivity(@NonNull final Bundle extras,
295295
@NonNull final Class<? extends Activity> clz,
296296
@AnimRes final int enterAnim,
297297
@AnimRes final int exitAnim) {
298-
Context context = UtilsBridge.getTopActivityOrApp();
298+
Context context = getTopActivityOrApp();
299299
startActivity(context, extras, context.getPackageName(), clz.getName(),
300300
getOptionsBundle(context, enterAnim, exitAnim));
301301
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN && context instanceof Activity) {
@@ -379,7 +379,7 @@ public static void startActivity(@NonNull final Bundle extras,
379379
*/
380380
public static void startActivity(@NonNull final String pkg,
381381
@NonNull final String cls) {
382-
startActivity(UtilsBridge.getTopActivityOrApp(), null, pkg, cls, null);
382+
startActivity(getTopActivityOrApp(), null, pkg, cls, null);
383383
}
384384

385385
/**
@@ -392,7 +392,7 @@ public static void startActivity(@NonNull final String pkg,
392392
public static void startActivity(@NonNull final String pkg,
393393
@NonNull final String cls,
394394
@Nullable final Bundle options) {
395-
startActivity(UtilsBridge.getTopActivityOrApp(), null, pkg, cls, options);
395+
startActivity(getTopActivityOrApp(), null, pkg, cls, options);
396396
}
397397

398398
/**
@@ -409,7 +409,7 @@ public static void startActivity(@NonNull final String pkg,
409409
@NonNull final String cls,
410410
@AnimRes final int enterAnim,
411411
@AnimRes final int exitAnim) {
412-
Context context = UtilsBridge.getTopActivityOrApp();
412+
Context context = getTopActivityOrApp();
413413
startActivity(context, null, pkg, cls, getOptionsBundle(context, enterAnim, exitAnim));
414414
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN && context instanceof Activity) {
415415
((Activity) context).overridePendingTransition(enterAnim, exitAnim);
@@ -492,7 +492,7 @@ public static void startActivity(@NonNull final Activity activity,
492492
public static void startActivity(@NonNull final Bundle extras,
493493
@NonNull final String pkg,
494494
@NonNull final String cls) {
495-
startActivity(UtilsBridge.getTopActivityOrApp(), extras, pkg, cls, null);
495+
startActivity(getTopActivityOrApp(), extras, pkg, cls, null);
496496
}
497497

498498
/**
@@ -507,7 +507,7 @@ public static void startActivity(@NonNull final Bundle extras,
507507
@NonNull final String pkg,
508508
@NonNull final String cls,
509509
@Nullable final Bundle options) {
510-
startActivity(UtilsBridge.getTopActivityOrApp(), extras, pkg, cls, options);
510+
startActivity(getTopActivityOrApp(), extras, pkg, cls, options);
511511
}
512512

513513
/**
@@ -526,7 +526,7 @@ public static void startActivity(@NonNull final Bundle extras,
526526
@NonNull final String cls,
527527
@AnimRes final int enterAnim,
528528
@AnimRes final int exitAnim) {
529-
Context context = UtilsBridge.getTopActivityOrApp();
529+
Context context = getTopActivityOrApp();
530530
startActivity(context, extras, pkg, cls, getOptionsBundle(context, enterAnim, exitAnim));
531531
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN && context instanceof Activity) {
532532
((Activity) context).overridePendingTransition(enterAnim, exitAnim);
@@ -613,7 +613,7 @@ public static void startActivity(@NonNull final Bundle extras,
613613
* @return {@code true}: success<br>{@code false}: fail
614614
*/
615615
public static boolean startActivity(@NonNull final Intent intent) {
616-
return startActivity(intent, UtilsBridge.getTopActivityOrApp(), null);
616+
return startActivity(intent, getTopActivityOrApp(), null);
617617
}
618618

619619
/**
@@ -625,7 +625,7 @@ public static boolean startActivity(@NonNull final Intent intent) {
625625
*/
626626
public static boolean startActivity(@NonNull final Intent intent,
627627
@Nullable final Bundle options) {
628-
return startActivity(intent, UtilsBridge.getTopActivityOrApp(), options);
628+
return startActivity(intent, getTopActivityOrApp(), options);
629629
}
630630

631631
/**
@@ -641,7 +641,7 @@ public static boolean startActivity(@NonNull final Intent intent,
641641
public static boolean startActivity(@NonNull final Intent intent,
642642
@AnimRes final int enterAnim,
643643
@AnimRes final int exitAnim) {
644-
Context context = UtilsBridge.getTopActivityOrApp();
644+
Context context = getTopActivityOrApp();
645645
boolean isSuccess = startActivity(intent, context, getOptionsBundle(context, enterAnim, exitAnim));
646646
if (isSuccess) {
647647
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN && context instanceof Activity) {
@@ -1333,7 +1333,7 @@ public static void startActivityForResult(@NonNull final Fragment fragment,
13331333
* @param intents The descriptions of the activities to start.
13341334
*/
13351335
public static void startActivities(@NonNull final Intent[] intents) {
1336-
startActivities(intents, UtilsBridge.getTopActivityOrApp(), null);
1336+
startActivities(intents, getTopActivityOrApp(), null);
13371337
}
13381338

13391339
/**
@@ -1344,7 +1344,7 @@ public static void startActivities(@NonNull final Intent[] intents) {
13441344
*/
13451345
public static void startActivities(@NonNull final Intent[] intents,
13461346
@Nullable final Bundle options) {
1347-
startActivities(intents, UtilsBridge.getTopActivityOrApp(), options);
1347+
startActivities(intents, getTopActivityOrApp(), options);
13481348
}
13491349

13501350
/**
@@ -1359,7 +1359,7 @@ public static void startActivities(@NonNull final Intent[] intents,
13591359
public static void startActivities(@NonNull final Intent[] intents,
13601360
@AnimRes final int enterAnim,
13611361
@AnimRes final int exitAnim) {
1362-
Context context = UtilsBridge.getTopActivityOrApp();
1362+
Context context = getTopActivityOrApp();
13631363
startActivities(intents, context, getOptionsBundle(context, enterAnim, exitAnim));
13641364
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN && context instanceof Activity) {
13651365
((Activity) context).overridePendingTransition(enterAnim, exitAnim);
@@ -2117,4 +2117,13 @@ private static Bundle getOptionsBundle(final Activity activity,
21172117
}
21182118
return ActivityOptionsCompat.makeSceneTransitionAnimation(activity, pairs).toBundle();
21192119
}
2120+
2121+
private static Context getTopActivityOrApp() {
2122+
if (UtilsBridge.isAppForeground()) {
2123+
Activity topActivity = getTopActivity();
2124+
return topActivity == null ? Utils.getApp() : topActivity;
2125+
} else {
2126+
return Utils.getApp();
2127+
}
2128+
}
21202129
}

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

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -179,18 +179,7 @@ public static boolean isAppSystem(final String packageName) {
179179
* @return {@code true}: yes<br>{@code false}: no
180180
*/
181181
public static boolean isAppForeground() {
182-
ActivityManager am = (ActivityManager) Utils.getApp().getSystemService(Context.ACTIVITY_SERVICE);
183-
if (am == null) return false;
184-
List<ActivityManager.RunningAppProcessInfo> info = am.getRunningAppProcesses();
185-
if (info == null || info.size() == 0) return false;
186-
for (ActivityManager.RunningAppProcessInfo aInfo : info) {
187-
if (aInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
188-
if (aInfo.processName.equals(Utils.getApp().getPackageName())) {
189-
return true;
190-
}
191-
}
192-
}
193-
return false;
182+
return UtilsBridge.isAppForeground();
194183
}
195184

196185
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* desc : utils about debouncing
1818
* </pre>
1919
*/
20-
class DebouncingUtils {
20+
public class DebouncingUtils {
2121

2222
private static final int CACHE_SIZE = 64;
2323
private static final Map<String, Long> KEY_MILLIS_MAP = new ConcurrentHashMap<>(CACHE_SIZE);

0 commit comments

Comments
 (0)