Skip to content

Commit d049f20

Browse files
committed
see 08/25 log
1 parent 63941ed commit d049f20

File tree

13 files changed

+131
-56
lines changed

13 files changed

+131
-56
lines changed

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.19.1-brightgreen.svg
44+
[aucsvg]: https://img.shields.io/badge/AndroidUtilCode-v1.19.2-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.19.1-brightgreen.svg
44+
[aucsvg]: https://img.shields.io/badge/AndroidUtilCode-v1.19.2-brightgreen.svg
4545
[auc]: https://github.com/Blankj/AndroidUtilCode
4646

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

app/src/main/java/com/blankj/androidutilcode/UtilsApp.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ protected void attachBaseContext(Context base) {
3636
@Override
3737
public void onCreate() {
3838
super.onCreate();
39-
LogUtils.e();
4039
sInstance = this;
41-
com.blankj.subutil.util.Utils.init(this);
4240
initLeakCanary();
4341
initLog();
4442
initCrash();

config.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ ext {
66
compileSdkVersion: 27,
77
minSdkVersion : 14,
88
targetSdkVersion : 27,
9-
versionCode : 1_019_001,
10-
versionName : '1.19.1'// E.g 1.9.72 => 1,009,072
9+
versionCode : 1_019_002,
10+
versionName : '1.19.2'// E.g 1.9.72 => 1,009,072
1111
]
1212

1313
versionConfig = [
@@ -167,7 +167,7 @@ def configAppDependencies(Project pro) {
167167
// LeakCanary
168168
debugImplementation depConfig.leakcanary.android
169169
releaseImplementation depConfig.leakcanary.android_no_op
170-
// implementation 'com.blankj:utilcode:1.19.1'
170+
// implementation 'com.blankj:utilcode:1.19.2'
171171
}
172172
}
173173

subutil/src/main/AndroidManifest.xml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
1-
<manifest package="com.blankj.subutil" />
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
package="com.blankj.subutil">
3+
4+
<application>
5+
<provider
6+
android:name=".util.Utils$ContentProvider4SubUtil"
7+
android:authorities="${applicationId}.subutil.content.provider"
8+
android:exported="false"
9+
android:multiprocess="true" />
10+
</application>
11+
</manifest>

subutil/src/main/java/com/blankj/subutil/util/Utils.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,14 @@
22

33
import android.annotation.SuppressLint;
44
import android.app.Application;
5+
import android.content.ContentProvider;
6+
import android.content.ContentValues;
57
import android.content.Context;
8+
import android.database.Cursor;
9+
import android.net.Uri;
610
import android.support.annotation.NonNull;
11+
import android.support.annotation.Nullable;
12+
import android.support.v4.content.FileProvider;
713

814
import java.lang.reflect.InvocationTargetException;
915

@@ -97,4 +103,42 @@ private static Application getApplicationByReflect() {
97103
}
98104
throw new NullPointerException("u should init first");
99105
}
106+
107+
108+
public static final class ContentProvider4SubUtil extends ContentProvider {
109+
110+
@Override
111+
public boolean onCreate() {
112+
Utils.init(getContext());
113+
return true;
114+
}
115+
116+
@Nullable
117+
@Override
118+
public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
119+
return null;
120+
}
121+
122+
@Nullable
123+
@Override
124+
public String getType(@NonNull Uri uri) {
125+
return null;
126+
}
127+
128+
@Nullable
129+
@Override
130+
public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
131+
return null;
132+
}
133+
134+
@Override
135+
public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
136+
return 0;
137+
}
138+
139+
@Override
140+
public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
141+
return 0;
142+
}
143+
}
100144
}

update_log.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
* 18/08/24 新增 ScreenUtils#restoreAdaptScreen,利用 FileProvider4UtilCode 不再需要初始化,发布 1.19.2
12
* 18/08/23 修复适配后 ToastUtils 原生 Toast 尺寸发生改变的问题,修复 KeyboardUtils#fixSoftInputLeaks,发布 1.19.1
23
* 18/08/10 修复 ScreenUtils#adaptxx 导致获取状态栏和导航栏尺寸不对问题,发布 1.19.0
34
* 18/08/09 新增 IntentUtils#isIntentAvailable,ToastUtils 传入空显示 null,发布 1.18.6

utilcode/README-CN.md

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

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

88

9-
## How to use
10-
11-
```java
12-
// init it in the function of onCreate in ur Application
13-
Utils.init(application);
14-
```
15-
16-
17-
## Proguard
18-
19-
U needn't do anything, because I add `consumerProguardFiles 'proguard-rules.pro'` in build.gradle.
20-
21-
229
## APIs
2310

2411
* ### Activity 相关 -> [ActivityUtils.java][activity.java] -> [Demo][activity.demo]
@@ -543,6 +530,7 @@ isTablet : 判断是否是平板
543530
adaptScreen4VerticalSlide : 适配垂直滑动的屏幕
544531
adaptScreen4HorizontalSlide: 适配水平滑动的屏幕
545532
cancelAdaptScreen : 取消适配屏幕
533+
restoreAdaptScreen : 恢复适配屏幕
546534
isAdaptScreen : 是否适配屏幕
547535
```
548536

utilcode/README.md

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

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

88

9-
## How to use
10-
11-
```java
12-
// init it in the function of onCreate in ur Application
13-
Utils.init(application);
14-
```
15-
16-
17-
## Proguard
18-
19-
U needn't do anything, because I add `consumerProguardFiles 'proguard-rules.pro'` in build.gradle.
20-
21-
229
## APIs
2310

2411
* ### About Activity -> [ActivityUtils.java][activity.java] -> [Demo][activity.demo]
@@ -543,6 +530,7 @@ isTablet
543530
adaptScreen4VerticalSlide
544531
adaptScreen4HorizontalSlide
545532
cancelAdaptScreen
533+
restoreAdaptScreen
546534
isAdaptScreen
547535
```
548536

utilcode/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
android:windowSoftInputMode="stateHidden|stateAlwaysHidden" />
1111

1212
<provider
13-
android:name=".util.Utils$FileProvider4Util"
13+
android:name=".util.Utils$FileProvider4UtilCode"
1414
android:authorities="${applicationId}.utilcode.provider"
1515
android:exported="false"
1616
android:grantUriPermissions="true"

utilcode/src/main/java/com/blankj/utilcode/util/ScreenUtils.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,22 @@ public static void cancelAdaptScreen(final Activity activity) {
360360
appDm.densityDpi = systemDm.densityDpi;
361361
}
362362

363+
/**
364+
* Cancel adapt the screen.
365+
*/
366+
public static void cancelAdaptScreen() {
367+
Utils.cancelAdaptScreen();
368+
}
369+
370+
/**
371+
* Restore adapt the screen.
372+
* <p>U should call the method of {@link ScreenUtils#adaptScreen4VerticalSlide(Activity, int)}
373+
* or {@link ScreenUtils#adaptScreen4HorizontalSlide(Activity, int)} firstly.</p>
374+
*/
375+
public static void restoreAdaptScreen() {
376+
Utils.restoreAdaptScreen();
377+
}
378+
363379
/**
364380
* Return whether adapt screen.
365381
*

utilcode/src/main/java/com/blankj/utilcode/util/ToastUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ public void run() {
240240
if (Utils.isAdaptScreen()) {
241241
Utils.cancelAdaptScreen();
242242
sToast = Toast.makeText(Utils.getApp(), text, duration);
243-
Utils.adaptScreen();
243+
Utils.restoreAdaptScreen();
244244
} else {
245245
sToast = Toast.makeText(Utils.getApp(), text, duration);
246246
}

utilcode/src/main/java/com/blankj/utilcode/util/Utils.java

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.content.res.Resources;
1010
import android.os.Bundle;
1111
import android.support.annotation.NonNull;
12+
import android.support.annotation.Nullable;
1213
import android.support.v4.content.FileProvider;
1314
import android.util.DisplayMetrics;
1415

@@ -87,20 +88,21 @@ public static void init(final Application app) {
8788
*/
8889
public static Application getApp() {
8990
if (sApplication != null) return sApplication;
90-
return getApplicationByReflect();
91+
Application app = getApplicationByReflect();
92+
init(app);
93+
return app;
9194
}
9295

9396
private static Application getApplicationByReflect() {
9497
try {
9598
@SuppressLint("PrivateApi")
9699
Class<?> activityThread = Class.forName("android.app.ActivityThread");
97-
Object at = activityThread.getMethod("currentActivityThread").invoke(null);
98-
Object app = activityThread.getMethod("getApplication").invoke(at);
100+
Object thread = activityThread.getMethod("currentActivityThread").invoke(null);
101+
Object app = activityThread.getMethod("getApplication").invoke(thread);
99102
if (app == null) {
100103
throw new NullPointerException("u should init first");
101104
}
102-
init((Application) app);
103-
return sApplication;
105+
return (Application) app;
104106
} catch (NoSuchMethodException e) {
105107
e.printStackTrace();
106108
} catch (IllegalAccessException e) {
@@ -144,21 +146,46 @@ static boolean isAppForeground() {
144146
return false;
145147
}
146148

147-
static void adaptScreen() {
149+
static final AdaptScreenArgs ADAPT_SCREEN_ARGS = new AdaptScreenArgs();
150+
151+
static void restoreAdaptScreen() {
148152
final DisplayMetrics systemDm = Resources.getSystem().getDisplayMetrics();
149153
final DisplayMetrics appDm = Utils.getApp().getResources().getDisplayMetrics();
150-
if (ADAPT_SCREEN_ARGS.isVerticalSlide) {
151-
appDm.density = appDm.widthPixels / (float) ADAPT_SCREEN_ARGS.sizeInPx;
154+
final Activity activity = ACTIVITY_LIFECYCLE.getTopActivity();
155+
if (activity != null) {
156+
final DisplayMetrics activityDm = activity.getResources().getDisplayMetrics();
157+
if (ADAPT_SCREEN_ARGS.isVerticalSlide) {
158+
activityDm.density = activityDm.widthPixels / (float) ADAPT_SCREEN_ARGS.sizeInPx;
159+
} else {
160+
activityDm.density = activityDm.heightPixels / (float) ADAPT_SCREEN_ARGS.sizeInPx;
161+
}
162+
activityDm.scaledDensity = activityDm.density * (systemDm.scaledDensity / systemDm.density);
163+
activityDm.densityDpi = (int) (160 * activityDm.density);
164+
165+
appDm.density = activityDm.density;
166+
appDm.scaledDensity = activityDm.scaledDensity;
167+
appDm.densityDpi = activityDm.densityDpi;
152168
} else {
153-
appDm.density = appDm.heightPixels / (float) ADAPT_SCREEN_ARGS.sizeInPx;
169+
if (ADAPT_SCREEN_ARGS.isVerticalSlide) {
170+
appDm.density = appDm.widthPixels / (float) ADAPT_SCREEN_ARGS.sizeInPx;
171+
} else {
172+
appDm.density = appDm.heightPixels / (float) ADAPT_SCREEN_ARGS.sizeInPx;
173+
}
174+
appDm.scaledDensity = appDm.density * (systemDm.scaledDensity / systemDm.density);
175+
appDm.densityDpi = (int) (160 * appDm.density);
154176
}
155-
appDm.scaledDensity = appDm.density * (systemDm.scaledDensity / systemDm.density);
156-
appDm.densityDpi = (int) (160 * appDm.density);
157177
}
158178

159179
static void cancelAdaptScreen() {
160180
final DisplayMetrics systemDm = Resources.getSystem().getDisplayMetrics();
161181
final DisplayMetrics appDm = Utils.getApp().getResources().getDisplayMetrics();
182+
final Activity activity = ACTIVITY_LIFECYCLE.getTopActivity();
183+
if (activity != null) {
184+
final DisplayMetrics activityDm = activity.getResources().getDisplayMetrics();
185+
activityDm.density = systemDm.density;
186+
activityDm.scaledDensity = systemDm.scaledDensity;
187+
activityDm.densityDpi = systemDm.densityDpi;
188+
}
162189
appDm.density = systemDm.density;
163190
appDm.scaledDensity = systemDm.scaledDensity;
164191
appDm.densityDpi = systemDm.densityDpi;
@@ -170,8 +197,6 @@ static boolean isAdaptScreen() {
170197
return systemDm.density != appDm.density;
171198
}
172199

173-
static final AdaptScreenArgs ADAPT_SCREEN_ARGS = new AdaptScreenArgs();
174-
175200
static class AdaptScreenArgs {
176201
int sizeInPx;
177202
boolean isVerticalSlide;
@@ -270,7 +295,14 @@ Activity getTopActivity() {
270295
return topActivity;
271296
}
272297
}
273-
// using reflect to get top activity
298+
Activity topActivityByReflect = getTopActivityByReflect();
299+
if (topActivityByReflect != null) {
300+
setTopActivity(topActivityByReflect);
301+
}
302+
return topActivityByReflect;
303+
}
304+
305+
private Activity getTopActivityByReflect() {
274306
try {
275307
@SuppressLint("PrivateApi")
276308
Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");
@@ -286,9 +318,7 @@ Activity getTopActivity() {
286318
if (!pausedField.getBoolean(activityRecord)) {
287319
Field activityField = activityRecordClass.getDeclaredField("activity");
288320
activityField.setAccessible(true);
289-
Activity activity = (Activity) activityField.get(activityRecord);
290-
setTopActivity(activity);
291-
return activity;
321+
return (Activity) activityField.get(activityRecord);
292322
}
293323
}
294324
} catch (ClassNotFoundException e) {
@@ -307,7 +337,7 @@ Activity getTopActivity() {
307337
}
308338

309339

310-
public static final class FileProvider4Util extends FileProvider {
340+
public static final class FileProvider4UtilCode extends FileProvider {
311341

312342
@Override
313343
public boolean onCreate() {

0 commit comments

Comments
 (0)