From 55c3fc2eb9344eb3278b2690b32488d8a200adaa Mon Sep 17 00:00:00 2001
From: Blankj <625783482@qq.com>
Date: Fri, 8 Mar 2019 17:46:44 +0800
Subject: [PATCH 001/207] see 03/08 log
---
CHANGELOG.md | 1 +
config.gradle | 17 ++++++-------
gradle.properties | 4 ++-
.../com/blankj/launcher/pkg/MainActivity.kt | 2 +-
.../pkg/src/main/res/layout/activity_main.xml | 18 ++++++-------
lib/base/build.gradle | 6 ++---
.../java/com/blankj/lib/base/BaseActivity.kt | 2 +-
.../com/blankj/lib/base/BaseApplication.kt | 2 +-
.../com/blankj/lib/base/BaseDrawerActivity.kt | 6 ++---
.../java/com/blankj/lib/base/BaseFragment.kt | 6 ++---
.../blankj/lib/base/rv/BaseViewHolder.java | 4 +--
.../lib/base/rv/RecycleViewDivider.java | 10 ++++----
.../lib/base/rv/adapter/BaseAdapter.java | 6 ++---
.../lib/base/rv/adapter/SingleAdapter.java | 2 +-
.../src/main/res/layout/activity_back.xml | 14 +++++------
.../src/main/res/layout/activity_drawer.xml | 6 ++---
subutil/lib/build.gradle | 6 ++---
.../blankj/subutil/util/LocationUtils.java | 2 +-
.../com/blankj/subutil/util/PinyinUtils.java | 2 +-
.../java/com/blankj/subutil/util/Utils.java | 4 +--
.../blankj/subutil/pkg/helper/DialogHelper.kt | 2 +-
utilcode/lib/build.gradle | 8 +++---
utilcode/lib/project.properties | 2 +-
.../utilcode/constant/MemoryConstants.java | 2 +-
.../constant/PermissionConstants.java | 2 +-
.../utilcode/constant/TimeConstants.java | 2 +-
.../blankj/utilcode/util/ActivityUtils.java | 9 ++++---
.../blankj/utilcode/util/AntiShakeUtils.java | 5 ++--
.../com/blankj/utilcode/util/AppUtils.java | 5 ++--
.../com/blankj/utilcode/util/BarUtils.java | 11 ++++----
.../blankj/utilcode/util/BrightnessUtils.java | 5 ++--
.../utilcode/util/CacheDiskStaticUtils.java | 3 ++-
.../blankj/utilcode/util/CacheDiskUtils.java | 3 ++-
.../utilcode/util/CacheDoubleStaticUtils.java | 3 ++-
.../utilcode/util/CacheDoubleUtils.java | 2 +-
.../utilcode/util/CacheMemoryStaticUtils.java | 2 +-
.../utilcode/util/CacheMemoryUtils.java | 4 +--
.../com/blankj/utilcode/util/ColorUtils.java | 12 ++++-----
.../com/blankj/utilcode/util/CrashUtils.java | 4 +--
.../com/blankj/utilcode/util/DeviceUtils.java | 4 +--
.../blankj/utilcode/util/FragmentUtils.java | 21 ++++++++--------
.../com/blankj/utilcode/util/ImageUtils.java | 14 +++++------
.../com/blankj/utilcode/util/IntentUtils.java | 4 +--
.../com/blankj/utilcode/util/LogUtils.java | 8 +++---
.../blankj/utilcode/util/MetaDataUtils.java | 2 +-
.../blankj/utilcode/util/NetworkUtils.java | 2 +-
.../utilcode/util/NotificationUtils.java | 6 ++---
.../com/blankj/utilcode/util/ObjectUtils.java | 6 ++---
.../blankj/utilcode/util/PermissionUtils.java | 8 +++---
.../com/blankj/utilcode/util/PhoneUtils.java | 2 +-
.../blankj/utilcode/util/ProcessUtils.java | 4 +--
.../com/blankj/utilcode/util/RegexUtils.java | 2 +-
.../blankj/utilcode/util/ResourceUtils.java | 2 +-
.../blankj/utilcode/util/SPStaticUtils.java | 2 +-
.../com/blankj/utilcode/util/SPUtils.java | 2 +-
.../com/blankj/utilcode/util/ScreenUtils.java | 5 ++--
.../blankj/utilcode/util/SnackbarUtils.java | 14 +++++------
.../com/blankj/utilcode/util/SpanUtils.java | 16 ++++++------
.../com/blankj/utilcode/util/StringUtils.java | 4 +--
.../com/blankj/utilcode/util/ThreadUtils.java | 7 +++---
.../com/blankj/utilcode/util/TimeUtils.java | 2 +-
.../com/blankj/utilcode/util/ToastUtils.java | 10 ++++----
.../com/blankj/utilcode/util/UriUtils.java | 25 +++++++++++++------
.../java/com/blankj/utilcode/util/Utils.java | 2 +-
.../blankj/utilcode/util/VibrateUtils.java | 2 +-
.../blankj/utilcode/util/ObjectUtilsTest.java | 5 ++--
.../pkg/feature/activity/ActivityActivity.kt | 2 +-
.../feature/activity/SubActivityActivity.kt | 2 +-
.../feature/bar/BarStatusFragmentActivity.kt | 16 ++++++------
.../pkg/feature/fragment/ContainerFragment.kt | 6 ++---
.../pkg/feature/fragment/FragmentActivity.kt | 6 ++---
.../pkg/feature/image/ImageActivity.kt | 8 +++---
.../pkg/feature/snackbar/SnackbarActivity.kt | 2 +-
.../utilcode/pkg/feature/span/SpanActivity.kt | 2 +-
.../utilcode/pkg/feature/toast/CustomToast.kt | 2 +-
.../pkg/feature/toast/ToastActivity.kt | 2 +-
.../utilcode/pkg/helper/DialogHelper.kt | 2 +-
.../main/res/layout/activity_adaptscreen.xml | 4 +--
.../res/layout/activity_adaptscreen_close.xml | 4 +--
.../layout/activity_adaptscreen_height.xml | 4 +--
.../res/layout/activity_adaptscreen_width.xml | 4 +--
.../layout/activity_bar_status_fragment.xml | 4 +--
.../src/main/res/layout/activity_fragment.xml | 2 +-
.../src/main/res/layout/activity_image.xml | 2 +-
84 files changed, 241 insertions(+), 220 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8271c33548..a1706be701 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,4 @@
+* `19/03/09` [fix] UriUtils#uri2File.
* `19/03/08` [add] LogUtils support multi process. Publish v1.23.7.
* `19/03/02` [fix] LogUtils#file.
* `19/02/28` [fix] ImageUtils#calculateInSampleSize. Publish v1.23.6.
diff --git a/config.gradle b/config.gradle
index 57c3d35e99..106f066059 100644
--- a/config.gradle
+++ b/config.gradle
@@ -2,7 +2,7 @@ ext {
applicationId = 'com.blankj.androidutilcode'
appName = 'Util'
- compileSdkVersion = 27
+ compileSdkVersion = 28
minSdkVersion = 14
targetSdkVersion = 27
versionCode = 1_023_007
@@ -16,8 +16,8 @@ ext {
// lib version
kotlin_version = '1.3.0'
- support_version = '27.1.1'
leakcanary_version = '1.6.3'
+ androidx_version = '1.0.0'
dep = [
plugin : [
@@ -30,19 +30,18 @@ ext {
],
// lib
- support : [
- appcompat_v7: "com.android.support:appcompat-v7:$support_version",
- design : "com.android.support:design:$support_version",
- multidex : "com.android.support:multidex:1.0.2",
- ],
- constraint : "com.android.support.constraint:constraint-layout:1.1.3",
+ appcompat : "androidx.appcompat:appcompat:$androidx_version",
+ design : "com.google.android.material:material:$androidx_version",
+ multidex : "androidx.multidex:multidex:2.0.1",
+ constraint : "androidx.constraintlayout:constraintlayout:1.1.3",
+
kotlin : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version",
leakcanary : [
android : "com.squareup.leakcanary:leakcanary-android:$leakcanary_version",
android_no_op : "com.squareup.leakcanary:leakcanary-android-no-op:$leakcanary_version",
support_fragment: "com.squareup.leakcanary:leakcanary-support-fragment:$leakcanary_version"
],
- free_proguard: "com.blankj:free-proguard:0.0.7",
+ free_proguard: "com.blankj:free-proguard:0.0.12",
adapt_screen : "com.blankj:adapt-screen:0.0.3",
gson : "com.google.code.gson:gson:2.8.2",
diff --git a/gradle.properties b/gradle.properties
index e98b0a89fc..ad5471a961 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,4 +17,6 @@
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
-#org.gradle.jvmargs=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
\ No newline at end of file
+#org.gradle.jvmargs=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/launcher/pkg/src/main/java/com/blankj/launcher/pkg/MainActivity.kt b/launcher/pkg/src/main/java/com/blankj/launcher/pkg/MainActivity.kt
index 27d29a032a..e6dc516ed6 100644
--- a/launcher/pkg/src/main/java/com/blankj/launcher/pkg/MainActivity.kt
+++ b/launcher/pkg/src/main/java/com/blankj/launcher/pkg/MainActivity.kt
@@ -2,7 +2,7 @@ package com.blankj.launcher.pkg
import android.graphics.Color
import android.os.Bundle
-import android.support.v7.app.ActionBarDrawerToggle
+import androidx.appcompat.app.ActionBarDrawerToggle
import android.view.View
import android.widget.ImageView
import com.blankj.lib.base.BaseDrawerActivity
diff --git a/launcher/pkg/src/main/res/layout/activity_main.xml b/launcher/pkg/src/main/res/layout/activity_main.xml
index 3b31dafe32..ee8b62a6fa 100644
--- a/launcher/pkg/src/main/res/layout/activity_main.xml
+++ b/launcher/pkg/src/main/res/layout/activity_main.xml
@@ -1,17 +1,17 @@
-
diff --git a/subutil/lib/src/main/java/com/blankj/subutil/util/Utils.java b/subutil/lib/src/main/java/com/blankj/subutil/util/Utils.java
index 9cbf4e06fd..91b336abcf 100644
--- a/subutil/lib/src/main/java/com/blankj/subutil/util/Utils.java
+++ b/subutil/lib/src/main/java/com/blankj/subutil/util/Utils.java
@@ -7,8 +7,8 @@
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import java.lang.reflect.InvocationTargetException;
diff --git a/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.kt b/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.kt
index 45e67a4a0d..9eba25c622 100644
--- a/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.kt
+++ b/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.kt
@@ -1,6 +1,6 @@
package com.blankj.subutil.pkg.helper
-import android.support.v7.app.AlertDialog
+import androidx.appcompat.app.AlertDialog
import com.blankj.subutil.pkg.R
import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.PermissionUtils
diff --git a/utilcode/lib/build.gradle b/utilcode/lib/build.gradle
index 3570124816..41b0dacaa4 100644
--- a/utilcode/lib/build.gradle
+++ b/utilcode/lib/build.gradle
@@ -1,7 +1,7 @@
apply {
from "${rootDir.path}/config_lib.gradle"
- plugin "tech.harmonysoft.oss.traute"
+// plugin "tech.harmonysoft.oss.traute"
plugin "com.github.dcendents.android-maven"
plugin "com.jfrog.bintray"
plugin "readme-core"
@@ -17,10 +17,10 @@ apply from: "${rootDir.path}/gradle/bintrayUploadAndroid.gradle"
dependencies {
compile dep.gson
- compileOnly dep.support.appcompat_v7
- compileOnly dep.support.design
+ compileOnly dep.appcompat
+ compileOnly dep.design
testImplementation dep.junit
testImplementation dep.robolectric
- testImplementation dep.support.appcompat_v7
+ testImplementation dep.appcompat
}
\ No newline at end of file
diff --git a/utilcode/lib/project.properties b/utilcode/lib/project.properties
index 22ae3b8603..d0f2a3f7e0 100644
--- a/utilcode/lib/project.properties
+++ b/utilcode/lib/project.properties
@@ -1,7 +1,7 @@
#project
project.name=UtilCode
project.groupId=com.blankj
-project.artifactId=utilcode
+project.artifactId=utilcodex
project.packaging=aar
project.siteUrl=https://github.com/Blankj/AndroidUtilCode
project.gitUrl=https://github.com/Blankj/AndroidUtilCode.git
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java
index b68bfcb113..5c05c0163e 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.constant;
-import android.support.annotation.IntDef;
+import androidx.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java
index 76f7e9a217..6db826e4ab 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java
@@ -4,7 +4,7 @@
import android.Manifest.permission;
import android.annotation.SuppressLint;
import android.os.Build;
-import android.support.annotation.StringDef;
+import androidx.annotation.StringDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/TimeConstants.java b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/TimeConstants.java
index 9932037bf8..45090576e3 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/TimeConstants.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/TimeConstants.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.constant;
-import android.support.annotation.IntDef;
+import androidx.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ActivityUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ActivityUtils.java
index 4b8a9a07b5..9dd16d6e48 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ActivityUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ActivityUtils.java
@@ -10,15 +10,16 @@
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
-import android.support.annotation.AnimRes;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v4.util.Pair;
import android.util.Log;
import android.view.View;
import java.util.List;
+import androidx.annotation.AnimRes;
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityOptionsCompat;
+import androidx.core.util.Pair;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java
index 7e87e73474..ca9036225e 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java
@@ -1,9 +1,10 @@
package com.blankj.utilcode.util;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
import android.view.View;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+
/**
*
* author: blankj
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 136f27b5ed..357c423fc6 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
@@ -17,8 +17,6 @@
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.v4.content.FileProvider;
import android.util.Log;
import java.io.File;
@@ -27,6 +25,9 @@
import java.util.ArrayList;
import java.util.List;
+import androidx.annotation.NonNull;
+import androidx.core.content.FileProvider;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java
index 7b5509b2b5..22178a5c20 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java
@@ -8,11 +8,6 @@
import android.graphics.Color;
import android.graphics.Point;
import android.os.Build;
-import android.support.annotation.ColorInt;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresApi;
-import android.support.annotation.RequiresPermission;
-import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
@@ -27,6 +22,12 @@
import java.lang.reflect.Method;
+import androidx.annotation.ColorInt;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RequiresPermission;
+import androidx.drawerlayout.widget.DrawerLayout;
+
import static android.Manifest.permission.EXPAND_STATUS_BAR;
/**
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BrightnessUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BrightnessUtils.java
index f9344b0a59..bacc519540 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BrightnessUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BrightnessUtils.java
@@ -2,11 +2,12 @@
import android.content.ContentResolver;
import android.provider.Settings;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
import android.view.Window;
import android.view.WindowManager;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskStaticUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskStaticUtils.java
index bb48a4b5cf..c5a9a17a6d 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskStaticUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskStaticUtils.java
@@ -3,13 +3,14 @@
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.Serializable;
+import androidx.annotation.NonNull;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskUtils.java
index 99aef6b078..2e6637febf 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskUtils.java
@@ -8,7 +8,6 @@
import android.graphics.drawable.Drawable;
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
import android.util.Log;
import com.blankj.utilcode.constant.CacheConstants;
@@ -37,6 +36,8 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
+import androidx.annotation.NonNull;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleStaticUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleStaticUtils.java
index 2ef267bd01..6dbb9f7475 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleStaticUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleStaticUtils.java
@@ -3,13 +3,14 @@
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.Serializable;
+import androidx.annotation.NonNull;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleUtils.java
index c800423c78..aca1c25837 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleUtils.java
@@ -3,7 +3,7 @@
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.blankj.utilcode.constant.CacheConstants;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryStaticUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryStaticUtils.java
index 56abfba117..aedcfa7fc4 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryStaticUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryStaticUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryUtils.java
index d0e06e394d..ddaa2baed9 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryUtils.java
@@ -1,7 +1,7 @@
package com.blankj.utilcode.util;
-import android.support.annotation.NonNull;
-import android.support.v4.util.LruCache;
+import androidx.annotation.NonNull;
+import androidx.collection.LruCache;
import com.blankj.utilcode.constant.CacheConstants;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java
index 4c0c22232b..a6603cfc44 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java
@@ -1,12 +1,12 @@
package com.blankj.utilcode.util;
import android.graphics.Color;
-import android.support.annotation.ColorInt;
-import android.support.annotation.ColorRes;
-import android.support.annotation.FloatRange;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.ColorRes;
+import androidx.annotation.FloatRange;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CrashUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CrashUtils.java
index 9ef930c467..a096321cf4 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CrashUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CrashUtils.java
@@ -5,8 +5,8 @@
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Environment;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresPermission;
import android.util.Log;
import java.io.BufferedWriter;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/DeviceUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/DeviceUtils.java
index c1c2c3c76e..d0c1788a02 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/DeviceUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/DeviceUtils.java
@@ -8,8 +8,8 @@
import android.os.Build;
import android.os.PowerManager;
import android.provider.Settings;
-import android.support.annotation.RequiresApi;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RequiresPermission;
import android.text.TextUtils;
import java.io.File;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/FragmentUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/FragmentUtils.java
index 43b8537e75..9e8ae14ef1 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/FragmentUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/FragmentUtils.java
@@ -3,16 +3,6 @@
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
-import android.support.annotation.AnimRes;
-import android.support.annotation.AnimatorRes;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.IdRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.View;
@@ -20,6 +10,17 @@
import java.util.Collections;
import java.util.List;
+import androidx.annotation.AnimRes;
+import androidx.annotation.AnimatorRes;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.IdRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ImageUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ImageUtils.java
index 83e01eb1ad..cbee7dd4bd 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ImageUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ImageUtils.java
@@ -27,13 +27,13 @@
import android.renderscript.Element;
import android.renderscript.RenderScript;
import android.renderscript.ScriptIntrinsicBlur;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.FloatRange;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresApi;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.FloatRange;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.core.content.ContextCompat;
import android.view.View;
import java.io.BufferedOutputStream;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/IntentUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/IntentUtils.java
index 6faa37d043..1e26dc8a9a 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/IntentUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/IntentUtils.java
@@ -8,8 +8,8 @@
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.Settings;
-import android.support.annotation.RequiresPermission;
-import android.support.v4.content.FileProvider;
+import androidx.annotation.RequiresPermission;
+import androidx.core.content.FileProvider;
import java.io.File;
import java.util.ArrayList;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java
index e1e2e78600..f5d814207d 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java
@@ -12,10 +12,10 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
-import android.support.annotation.IntDef;
-import android.support.annotation.IntRange;
-import android.support.annotation.RequiresApi;
-import android.support.v4.util.SimpleArrayMap;
+import androidx.annotation.IntDef;
+import androidx.annotation.IntRange;
+import androidx.annotation.RequiresApi;
+import androidx.collection.SimpleArrayMap;
import android.util.Log;
import com.google.gson.Gson;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/MetaDataUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/MetaDataUtils.java
index 6f6cf85b80..bd4b8da935 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/MetaDataUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/MetaDataUtils.java
@@ -8,7 +8,7 @@
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java
index f281d777c2..3171837f46 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java
@@ -7,7 +7,7 @@
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.RequiresPermission;
import android.telephony.TelephonyManager;
import android.text.format.Formatter;
import android.util.Log;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/NotificationUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/NotificationUtils.java
index b8163d2e66..73a900b465 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/NotificationUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/NotificationUtils.java
@@ -5,9 +5,9 @@
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.support.annotation.Nullable;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationManagerCompat;
+import androidx.annotation.Nullable;
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ObjectUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ObjectUtils.java
index be5491ece0..3c0c087a39 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ObjectUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ObjectUtils.java
@@ -1,9 +1,9 @@
package com.blankj.utilcode.util;
import android.os.Build;
-import android.support.annotation.RequiresApi;
-import android.support.v4.util.LongSparseArray;
-import android.support.v4.util.SimpleArrayMap;
+import androidx.annotation.RequiresApi;
+import androidx.collection.LongSparseArray;
+import androidx.collection.SimpleArrayMap;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/PermissionUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/PermissionUtils.java
index 235a0f3f94..1cb3df0156 100755
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/PermissionUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/PermissionUtils.java
@@ -10,10 +10,10 @@
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+import androidx.core.content.ContextCompat;
import android.util.Log;
import android.view.MotionEvent;
import android.view.WindowManager;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/PhoneUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/PhoneUtils.java
index 99068781a4..f407f81b5f 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/PhoneUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/PhoneUtils.java
@@ -7,7 +7,7 @@
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.RequiresPermission;
import android.telephony.SmsManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ProcessUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ProcessUtils.java
index 7db75522d9..00c2bf6f73 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ProcessUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ProcessUtils.java
@@ -10,8 +10,8 @@
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresPermission;
import android.util.Log;
import java.io.BufferedReader;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/RegexUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/RegexUtils.java
index ba57fab956..817a94149f 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/RegexUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/RegexUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.v4.util.SimpleArrayMap;
+import androidx.collection.SimpleArrayMap;
import com.blankj.utilcode.constant.RegexConstants;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ResourceUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ResourceUtils.java
index 92424163bb..ee41e95958 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ResourceUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ResourceUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.annotation.RawRes;
+import androidx.annotation.RawRes;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPStaticUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPStaticUtils.java
index d3e21fb873..21274c3023 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPStaticUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPStaticUtils.java
@@ -1,7 +1,7 @@
package com.blankj.utilcode.util;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import java.util.Map;
import java.util.Set;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPUtils.java
index 554a2ed586..a9d18a1a55 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPUtils.java
@@ -3,7 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import java.util.Collections;
import java.util.HashMap;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ScreenUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ScreenUtils.java
index c3e089a90f..f55e4a21db 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ScreenUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ScreenUtils.java
@@ -7,12 +7,11 @@
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Bitmap;
-import android.graphics.Canvas;
import android.graphics.Point;
import android.os.Build;
import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresPermission;
import android.util.DisplayMetrics;
import android.view.Surface;
import android.view.View;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
index b164e6154e..eab1990d29 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
@@ -1,12 +1,12 @@
package com.blankj.utilcode.util;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.IntDef;
-import android.support.annotation.IntRange;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.design.widget.Snackbar;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.IntDef;
+import androidx.annotation.IntRange;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import com.google.android.material.snackbar.Snackbar;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SpanUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SpanUtils.java
index 641204fd63..d79cf9262b 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SpanUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SpanUtils.java
@@ -14,14 +14,14 @@
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.FloatRange;
-import android.support.annotation.IntDef;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.FloatRange;
+import androidx.annotation.IntDef;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import android.text.Layout;
import android.text.Layout.Alignment;
import android.text.SpannableStringBuilder;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/StringUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/StringUtils.java
index c3254e3d32..70f0defe50 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/StringUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/StringUtils.java
@@ -1,8 +1,8 @@
package com.blankj.utilcode.util;
import android.content.res.Resources;
-import android.support.annotation.ArrayRes;
-import android.support.annotation.StringRes;
+import androidx.annotation.ArrayRes;
+import androidx.annotation.StringRes;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ThreadUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ThreadUtils.java
index ba7122e366..819af790e8 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ThreadUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ThreadUtils.java
@@ -2,9 +2,6 @@
import android.os.Handler;
import android.os.Looper;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
import android.util.Log;
import android.util.SparseArray;
@@ -21,6 +18,10 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/TimeUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/TimeUtils.java
index adaa920474..a5286b0fbe 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/TimeUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/TimeUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.blankj.utilcode.constant.TimeConstants;
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 b4fe658945..b25360e52c 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
@@ -14,11 +14,11 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.StringRes;
-import android.support.v4.app.NotificationManagerCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.StringRes;
+import androidx.core.app.NotificationManagerCompat;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/UriUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/UriUtils.java
index 98f3ef66a8..8e4fd9d09c 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/UriUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/UriUtils.java
@@ -8,12 +8,14 @@
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
-import android.support.annotation.NonNull;
-import android.support.v4.content.FileProvider;
+import android.text.TextUtils;
import android.util.Log;
import java.io.File;
+import androidx.annotation.NonNull;
+import androidx.core.content.FileProvider;
+
/**
*
* author: Blankj
@@ -70,12 +72,19 @@ public static File uri2File(@NonNull final Uri uri) {
Log.d("UriUtils", uri.toString() + " parse failed. -> 1");
return null;
} else if ("com.android.providers.downloads.documents".equals(authority)) {
- final String id = DocumentsContract.getDocumentId(uri);
- final Uri contentUri = ContentUris.withAppendedId(
- Uri.parse("content://downloads/public_downloads"),
- Long.valueOf(id)
- );
- return getFileFromUri(contentUri, 2);
+ String id = DocumentsContract.getDocumentId(uri);
+ if (!TextUtils.isEmpty(id)) {
+ if (id.startsWith("raw:")) {
+ return new File(id.substring(4));
+ }
+ final Uri contentUri = ContentUris.withAppendedId(
+ Uri.parse(Environment.DIRECTORY_DOWNLOADS),
+ Long.valueOf(id)
+ );
+ return getFileFromUri(contentUri, 2);
+ }
+ Log.d("UriUtils", uri.toString() + " parse failed. -> 3");
+ return null;
} else if ("com.android.providers.media.documents".equals(authority)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
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 52b82376e1..d858e4ad22 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
@@ -7,7 +7,7 @@
import android.app.Application.ActivityLifecycleCallbacks;
import android.content.Context;
import android.os.Bundle;
-import android.support.v4.content.FileProvider;
+import androidx.core.content.FileProvider;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/VibrateUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/VibrateUtils.java
index a57bbb8241..622d657817 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/VibrateUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/VibrateUtils.java
@@ -2,7 +2,7 @@
import android.content.Context;
import android.os.Vibrator;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.RequiresPermission;
import static android.Manifest.permission.VIBRATE;
diff --git a/utilcode/lib/src/test/java/com/blankj/utilcode/util/ObjectUtilsTest.java b/utilcode/lib/src/test/java/com/blankj/utilcode/util/ObjectUtilsTest.java
index a0203f78fc..ed12c24d8d 100644
--- a/utilcode/lib/src/test/java/com/blankj/utilcode/util/ObjectUtilsTest.java
+++ b/utilcode/lib/src/test/java/com/blankj/utilcode/util/ObjectUtilsTest.java
@@ -1,7 +1,5 @@
package com.blankj.utilcode.util;
-import android.support.v4.util.LongSparseArray;
-import android.support.v4.util.SimpleArrayMap;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
@@ -12,6 +10,9 @@
import java.util.HashMap;
import java.util.LinkedList;
+import androidx.collection.LongSparseArray;
+import androidx.collection.SimpleArrayMap;
+
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
index 5ace21f5b1..f3d3600a27 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
@@ -6,7 +6,7 @@ import android.graphics.Bitmap
import android.graphics.drawable.BitmapDrawable
import android.os.Build
import android.os.Bundle
-import android.support.v4.app.ActivityOptionsCompat
+import androidx.core.app.ActivityOptionsCompat
import android.view.View
import android.view.Window
import com.blankj.lib.base.BaseTitleBarActivity
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
index 4815032936..864f1c12b4 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
@@ -2,7 +2,7 @@ package com.blankj.utilcode.pkg.feature.activity
import android.os.Build
import android.os.Bundle
-import android.support.v4.app.ActivityCompat
+import androidx.core.app.ActivityCompat
import android.view.View
import android.view.Window
import com.blankj.lib.base.BaseTitleBarActivity
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusFragmentActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusFragmentActivity.kt
index b2633ddf5c..0dac18c72c 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusFragmentActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusFragmentActivity.kt
@@ -3,10 +3,10 @@ package com.blankj.utilcode.pkg.feature.bar
import android.content.Context
import android.content.Intent
import android.os.Bundle
-import android.support.design.widget.BottomNavigationView
-import android.support.v4.app.Fragment
-import android.support.v4.app.FragmentPagerAdapter
-import android.support.v4.view.ViewPager
+import com.google.android.material.bottomnavigation.BottomNavigationView
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentPagerAdapter
+import androidx.viewpager.widget.ViewPager
import android.view.View
import com.blankj.lib.base.BaseActivity
import com.blankj.utilcode.pkg.R
@@ -37,7 +37,7 @@ class BarStatusFragmentActivity : BaseActivity() {
R.id.barStatusFragmentNavigationCustom
)
- private val mFragmentList = ArrayList()
+ private val mFragmentList = ArrayList()
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener l@{ item ->
when (item.itemId) {
@@ -78,8 +78,8 @@ class BarStatusFragmentActivity : BaseActivity() {
mFragmentList.add(BarStatusCustomFragment.newInstance())
barStatusFragmentVp.offscreenPageLimit = 3
- barStatusFragmentVp.adapter = object : FragmentPagerAdapter(supportFragmentManager) {
- override fun getItem(position: Int): Fragment {
+ barStatusFragmentVp.adapter = object : androidx.fragment.app.FragmentPagerAdapter(supportFragmentManager) {
+ override fun getItem(position: Int): androidx.fragment.app.Fragment {
return mFragmentList[position]
}
@@ -88,7 +88,7 @@ class BarStatusFragmentActivity : BaseActivity() {
}
}
- barStatusFragmentVp.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ barStatusFragmentVp.addOnPageChangeListener(object : androidx.viewpager.widget.ViewPager.OnPageChangeListener {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
override fun onPageSelected(position: Int) {
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
index ca0289a158..117c7d121e 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
@@ -2,8 +2,8 @@ package com.blankj.utilcode.pkg.feature.fragment
import android.os.Build
import android.os.Bundle
-import android.support.annotation.RequiresApi
-import android.support.v4.app.Fragment
+import androidx.annotation.RequiresApi
+import androidx.fragment.app.Fragment
import android.transition.*
import android.view.View
import com.blankj.lib.base.BaseLazyFragment
@@ -129,7 +129,7 @@ class ContainerFragment : BaseLazyFragment(), FragmentUtils.OnBackClickListener
}
}
- private fun addSharedElement(fragment: Fragment): Fragment {
+ private fun addSharedElement(fragment: androidx.fragment.app.Fragment): androidx.fragment.app.Fragment {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
fragment.sharedElementEnterTransition = DetailTransition()
fragment.enterTransition = Fade()
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
index b768f563e5..6e3137b9c6 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
@@ -4,8 +4,8 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.os.PersistableBundle
-import android.support.design.widget.BottomNavigationView
-import android.support.v4.app.Fragment
+import com.google.android.material.bottomnavigation.BottomNavigationView
+import androidx.fragment.app.Fragment
import android.view.View
import com.blankj.lib.base.BaseActivity
import com.blankj.utilcode.pkg.R
@@ -30,7 +30,7 @@ class FragmentActivity : BaseActivity() {
}
}
- private val mFragments = arrayListOf()
+ private val mFragments = arrayListOf()
private var curIndex: Int = 0
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt
index 496c5a4032..636d92c030 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt
@@ -6,9 +6,9 @@ import android.graphics.Bitmap
import android.graphics.Color
import android.os.Build
import android.os.Bundle
-import android.support.annotation.LayoutRes
-import android.support.annotation.StringRes
-import android.support.v7.widget.LinearLayoutManager
+import androidx.annotation.LayoutRes
+import androidx.annotation.StringRes
+import androidx.recyclerview.widget.LinearLayoutManager
import android.view.View
import android.widget.ImageView
import android.widget.TextView
@@ -92,7 +92,7 @@ class ImageActivity : BaseActivity() {
}
imageRv.adapter = ImageAdapter(mList, R.layout.item_image)
- imageRv.layoutManager = LinearLayoutManager(this)
+ imageRv.layoutManager = androidx.recyclerview.widget.LinearLayoutManager(this)
}
override fun doBusiness() {}
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
index 4bd07d274e..34d3914fe1 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
@@ -4,7 +4,7 @@ import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
-import android.support.annotation.StringRes
+import androidx.annotation.StringRes
import android.text.SpannableStringBuilder
import android.view.View
import android.view.ViewGroup
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
index f3a1a3ee02..7c5fd45308 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
@@ -5,7 +5,7 @@ import android.content.Context
import android.content.Intent
import android.graphics.*
import android.os.Bundle
-import android.support.annotation.ColorInt
+import androidx.annotation.ColorInt
import android.text.Layout
import android.text.SpannableStringBuilder
import android.text.TextPaint
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
index 314ba33d59..458ecbb3fb 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
@@ -2,7 +2,7 @@ package com.blankj.utilcode.pkg.feature.toast
import android.os.Handler
import android.os.Looper
-import android.support.annotation.StringRes
+import androidx.annotation.StringRes
import android.widget.TextView
import android.widget.Toast
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
index ea6c10c24d..40055d14b9 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
@@ -4,7 +4,7 @@ import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
-import android.support.v4.content.ContextCompat
+import androidx.core.content.ContextCompat
import android.view.Gravity
import android.view.View
import com.blankj.lib.base.BaseTitleBarActivity
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
index 7e6094414a..c3247b1312 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
@@ -1,6 +1,6 @@
package com.blankj.utilcode.pkg.helper
-import android.support.v7.app.AlertDialog
+import androidx.appcompat.app.AlertDialog
import android.text.method.ScrollingMovementMethod
import android.view.LayoutInflater
import android.view.View
diff --git a/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml b/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml
index 003c6f5840..e33848b84d 100644
--- a/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml
@@ -1,5 +1,5 @@
-
-
+
diff --git a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_close.xml b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_close.xml
index c3f88ecba3..e43cbb2bb5 100644
--- a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_close.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_close.xml
@@ -8,7 +8,7 @@
android:background="@color/white"
tools:context=".feature.adaptScreen.CloseAdaptActivity">
-
@@ -42,6 +42,6 @@
android:textSize="30pt"
app:layout_constraintTop_toBottomOf="@id/adaptScreenCloseAdaptDpTv" />
-
+
\ No newline at end of file
diff --git a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_height.xml b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_height.xml
index 0b207d97f5..07c76be55b 100644
--- a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_height.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_height.xml
@@ -8,7 +8,7 @@
android:background="@color/white"
tools:context=".feature.adaptScreen.HeightActivity">
-
@@ -94,6 +94,6 @@
-
+
\ No newline at end of file
diff --git a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_width.xml b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_width.xml
index 46e0f2f1a2..5a791d924f 100644
--- a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_width.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_width.xml
@@ -8,7 +8,7 @@
android:background="@color/white"
tools:context=".feature.adaptScreen.WidthActivity">
-
@@ -147,6 +147,6 @@
-
+
\ No newline at end of file
diff --git a/utilcode/pkg/src/main/res/layout/activity_bar_status_fragment.xml b/utilcode/pkg/src/main/res/layout/activity_bar_status_fragment.xml
index c5f975b58f..1a36770b58 100644
--- a/utilcode/pkg/src/main/res/layout/activity_bar_status_fragment.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_bar_status_fragment.xml
@@ -7,7 +7,7 @@
android:background="@color/white"
android:orientation="vertical">
-
-
-
-
From 70b6089109b6e58734d0a500820f54cb41858eba Mon Sep 17 00:00:00 2001
From: Blankj <625783482@qq.com>
Date: Fri, 8 Mar 2019 18:07:14 +0800
Subject: [PATCH 002/207] see 03/08 log
---
utilcode/README-CN.md | 3 +++
utilcode/README.md | 3 +++
2 files changed, 6 insertions(+)
diff --git a/utilcode/README-CN.md b/utilcode/README-CN.md
index f3756be966..7fc06ebf99 100644
--- a/utilcode/README-CN.md
+++ b/utilcode/README-CN.md
@@ -3,6 +3,9 @@
Gradle:
```groovy
implementation 'com.blankj:utilcode:1.23.7'
+
+// if u use AndroidX, use the following
+implementation 'com.blankj:utilcodex:1.23.7'
```
diff --git a/utilcode/README.md b/utilcode/README.md
index 75d8757892..094cc44c08 100644
--- a/utilcode/README.md
+++ b/utilcode/README.md
@@ -3,6 +3,9 @@
Gradle:
```groovy
implementation 'com.blankj:utilcode:1.23.7'
+
+// if u use AndroidX, use the following
+implementation 'com.blankj:utilcodex:1.23.7'
```
From 2fa66306221456a5be12d9d201c7495958596fb4 Mon Sep 17 00:00:00 2001
From: Blankj <625783482@qq.com>
Date: Mon, 11 Mar 2019 20:45:31 +0800
Subject: [PATCH 003/207] see 03/11 log
---
utilcode/lib/project.properties | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/utilcode/lib/project.properties b/utilcode/lib/project.properties
index d0f2a3f7e0..d238eda740 100644
--- a/utilcode/lib/project.properties
+++ b/utilcode/lib/project.properties
@@ -1,9 +1,9 @@
#project
-project.name=UtilCode
+project.name=UtilCodeX
project.groupId=com.blankj
project.artifactId=utilcodex
project.packaging=aar
project.siteUrl=https://github.com/Blankj/AndroidUtilCode
project.gitUrl=https://github.com/Blankj/AndroidUtilCode.git
#javadoc
-javadoc.name=UtilCode
\ No newline at end of file
+javadoc.name=UtilCodeX
\ No newline at end of file
From 6b0ff9575675cf0ae15c9c9a85eb249b5591c3a8 Mon Sep 17 00:00:00 2001
From: Blankj <625783482@qq.com>
Date: Mon, 3 Jun 2019 20:49:21 +0800
Subject: [PATCH 004/207] see 06/03 log
---
.gitignore | 2 +-
CHANGELOG.md | 1 +
gradle.properties | 8 +++++-
gradle/config/config.gradle | 10 ++++----
gradle/config/configApp.gradle | 5 +++-
launcher/app/build.gradle | 6 ++---
launcher/pkg/build.gradle | 2 +-
.../com/blankj/launcher/pkg/MainActivity.kt | 2 +-
.../pkg/src/main/res/layout/activity_main.xml | 18 ++++++-------
lib/base/build.gradle | 2 +-
.../com/blankj/lib/base/BaseActivity.java | 5 ++--
.../com/blankj/lib/base/BaseApplication.java | 3 ++-
.../blankj/lib/base/BaseDrawerActivity.java | 11 ++++----
.../com/blankj/lib/base/BaseFragment.java | 13 +++++-----
.../blankj/lib/base/BaseTitleActivity.java | 9 ++++---
.../java/com/blankj/lib/base/IBaseView.java | 5 ++--
.../com/blankj/lib/base/rv/BaseAdapter.java | 5 ++--
.../java/com/blankj/lib/base/rv/BaseCell.java | 3 ++-
.../blankj/lib/base/rv/BaseViewHolder.java | 4 +--
.../lib/base/rv/RecycleViewDivider.java | 10 ++++----
.../main/res/layout/activity_base_title.xml | 11 ++++----
.../activity_base_title_stub_scroll.xml | 4 +--
.../src/main/res/layout/activity_drawer.xml | 6 ++---
subutil/app/build.gradle | 2 +-
subutil/lib/build.gradle | 2 +-
.../blankj/subutil/util/LocationUtils.java | 2 +-
.../com/blankj/subutil/util/PinyinUtils.java | 2 +-
.../java/com/blankj/subutil/util/Utils.java | 4 +--
.../subutil/util/http/ExecutorFactory.java | 3 ++-
.../blankj/subutil/util/http/HttpUtils.java | 3 ++-
.../com/blankj/subutil/util/http/Request.java | 3 ++-
.../blankj/subutil/util/http/SSLConfig.java | 3 ++-
subutil/pkg/build.gradle | 2 +-
.../blankj/subutil/pkg/helper/DialogHelper.kt | 2 +-
utilcode/README-CN.md | 2 +-
utilcode/README.md | 2 +-
utilcode/app/build.gradle | 2 +-
utilcode/lib/build.gradle | 2 +-
utilcode/lib/project.properties | 6 ++---
.../utilcode/constant/MemoryConstants.java | 2 +-
.../constant/PermissionConstants.java | 2 +-
.../utilcode/constant/TimeConstants.java | 2 +-
.../blankj/utilcode/util/ActivityUtils.java | 11 ++++----
.../blankj/utilcode/util/AntiShakeUtils.java | 5 ++--
.../com/blankj/utilcode/util/AppUtils.java | 5 ++--
.../com/blankj/utilcode/util/BarUtils.java | 11 ++++----
.../blankj/utilcode/util/BrightnessUtils.java | 5 ++--
.../com/blankj/utilcode/util/BusUtils.java | 5 ++--
.../utilcode/util/CacheDiskStaticUtils.java | 3 ++-
.../blankj/utilcode/util/CacheDiskUtils.java | 3 ++-
.../utilcode/util/CacheDoubleStaticUtils.java | 3 ++-
.../utilcode/util/CacheDoubleUtils.java | 2 +-
.../utilcode/util/CacheMemoryStaticUtils.java | 2 +-
.../utilcode/util/CacheMemoryUtils.java | 4 +--
.../com/blankj/utilcode/util/ColorUtils.java | 12 ++++-----
.../com/blankj/utilcode/util/CrashUtils.java | 4 +--
.../com/blankj/utilcode/util/DeviceUtils.java | 5 ++--
.../blankj/utilcode/util/FragmentUtils.java | 21 ++++++++--------
.../com/blankj/utilcode/util/ImageUtils.java | 14 +++++------
.../com/blankj/utilcode/util/IntentUtils.java | 4 +--
.../blankj/utilcode/util/KeyboardUtils.java | 3 ++-
.../com/blankj/utilcode/util/LogUtils.java | 8 +++---
.../blankj/utilcode/util/MetaDataUtils.java | 2 +-
.../blankj/utilcode/util/NetworkUtils.java | 5 ++--
.../utilcode/util/NotificationUtils.java | 6 ++---
.../com/blankj/utilcode/util/ObjectUtils.java | 6 ++---
.../blankj/utilcode/util/PermissionUtils.java | 8 +++---
.../com/blankj/utilcode/util/PhoneUtils.java | 2 +-
.../blankj/utilcode/util/ProcessUtils.java | 4 +--
.../com/blankj/utilcode/util/RegexUtils.java | 2 +-
.../blankj/utilcode/util/ResourceUtils.java | 2 +-
.../blankj/utilcode/util/SPStaticUtils.java | 2 +-
.../com/blankj/utilcode/util/SPUtils.java | 2 +-
.../com/blankj/utilcode/util/ScreenUtils.java | 4 +--
.../com/blankj/utilcode/util/ShellUtils.java | 2 +-
.../blankj/utilcode/util/SnackbarUtils.java | 14 +++++------
.../com/blankj/utilcode/util/SpanUtils.java | 16 ++++++------
.../com/blankj/utilcode/util/StringUtils.java | 4 +--
.../com/blankj/utilcode/util/ThreadUtils.java | 5 ++--
.../com/blankj/utilcode/util/TimeUtils.java | 2 +-
.../com/blankj/utilcode/util/ToastUtils.java | 10 ++++----
.../com/blankj/utilcode/util/UriUtils.java | 25 +++++++++++++------
.../java/com/blankj/utilcode/util/Utils.java | 3 ++-
.../blankj/utilcode/util/VibrateUtils.java | 2 +-
.../com/blankj/utilcode/util/BaseTest.java | 11 +++-----
.../blankj/utilcode/util/ObjectUtilsTest.java | 5 ++--
utilcode/pkg/build.gradle | 2 +-
.../pkg/feature/activity/ActivityActivity.kt | 2 +-
.../feature/activity/SubActivityActivity.kt | 2 +-
.../feature/bar/BarStatusFragmentActivity.kt | 16 ++++++------
.../pkg/feature/fragment/ContainerFragment.kt | 6 ++---
.../pkg/feature/fragment/FragmentActivity.kt | 6 ++---
.../pkg/feature/image/ImageActivity.kt | 4 +--
.../pkg/feature/snackbar/SnackbarActivity.kt | 2 +-
.../utilcode/pkg/feature/span/SpanActivity.kt | 2 +-
.../utilcode/pkg/feature/toast/CustomToast.kt | 2 +-
.../pkg/feature/toast/ToastActivity.kt | 2 +-
.../utilcode/pkg/helper/DialogHelper.kt | 5 ++--
.../main/res/layout/activity_adaptscreen.xml | 4 +--
.../res/layout/activity_adaptscreen_close.xml | 4 +--
.../layout/activity_adaptscreen_height.xml | 7 +++---
.../res/layout/activity_adaptscreen_width.xml | 4 +--
.../layout/activity_bar_status_fragment.xml | 4 +--
.../src/main/res/layout/activity_fragment.xml | 2 +-
.../src/main/res/layout/activity_image.xml | 3 +--
105 files changed, 293 insertions(+), 253 deletions(-)
diff --git a/.gitignore b/.gitignore
index 201b88771a..193619553c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,4 @@
.externalNativeBuild
/apk
*.phrof
-/maven
+/busMaven
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 95dfb60cc3..9c48786e89 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
* `19/04/24` [upd] The swipe panel.
* `19/03/17` [fix] The ugly UI.
* `19/03/14` [fix] AdaptScreenUtils didn't work on some HaWei tablet.
+* `19/03/09` [fix] UriUtils#uri2File.
* `19/03/08` [add] LogUtils support multi process. Publish v1.23.7.
* `19/03/02` [fix] LogUtils#file.
* `19/02/28` [fix] ImageUtils#calculateInSampleSize. Publish v1.23.6.
diff --git a/gradle.properties b/gradle.properties
index 110f0cb7ef..c209c08b84 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -19,4 +19,10 @@
#org.gradle.jvmargs=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
-org.gradle.jvmargs=-XX:MaxHeapSize=1024m -Xmx1024m
\ No newline at end of file
+org.gradle.jvmargs=-Xmx8192m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+org.gradle.daemon=true
+org.gradle.configureondemand=true
+org.gradle.parallel=true
+
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file
diff --git a/gradle/config/config.gradle b/gradle/config/config.gradle
index e455c4dba6..e8c793b6b3 100644
--- a/gradle/config/config.gradle
+++ b/gradle/config/config.gradle
@@ -5,7 +5,7 @@ gradle.ext {
applicationId = 'com.blankj.androidutilcode'
appName = 'Util'
- compileSdkVersion = 27
+ compileSdkVersion = 28
minSdkVersion = 14
targetSdkVersion = 27
versionCode = 1_024_000
@@ -13,8 +13,8 @@ gradle.ext {
// lib version
kotlin_version = '1.3.10'
- support_version = '27.1.1'
leakcanary_version = '1.6.3'
+ androidx_version = '1.0.0'
dep = [:]
@@ -36,11 +36,11 @@ gradle.ext {
subutil_lib : new DepConfig(":subutil:lib"),
subutil_pkg : new DepConfig(":subutil:pkg"),
utilcode_app : new DepConfig(":utilcode:app"),
- utilcode_lib : new DepConfig(false, ":utilcode:lib", "com.blankj:utilcode:$versionName"),
+ utilcode_lib : new DepConfig(true, ":utilcode:lib", "com.blankj:utilcode:$versionName"),
utilcode_pkg : new DepConfig(":utilcode:pkg"),
- support_appcompat_v7 : new DepConfig("com.android.support:appcompat-v7:$support_version"),
- support_design : new DepConfig("com.android.support:design:$support_version"),
+ support_appcompat_v7 : new DepConfig("androidx.appcompat:appcompat:$androidx_version"),
+ support_material : new DepConfig("com.google.android.material:material:$androidx_version"),
support_multidex : new DepConfig("com.android.support:multidex:1.0.2"),
constraint : new DepConfig("com.android.support.constraint:constraint-layout:1.1.3"),
diff --git a/gradle/config/configApp.gradle b/gradle/config/configApp.gradle
index cb8d5a290a..809cb07cd4 100644
--- a/gradle/config/configApp.gradle
+++ b/gradle/config/configApp.gradle
@@ -42,8 +42,11 @@ android {
}
dexOptions {
+ preDexLibraries true
javaMaxHeapSize "8g"
maxProcessCount 8
+ incremental true
+ dexInProcess = true
}
}
@@ -57,7 +60,7 @@ dependencies {
private String getSuffix() {
if (project.path == ":launcher:app") return ""
- return project.path.replace(":" , "_").substring(0, project.path.length() - 4)
+ return project.path.replace(":", "_").substring(0, project.path.length() - 4)
}
def configSigning(Project pro) {
diff --git a/launcher/app/build.gradle b/launcher/app/build.gradle
index eb9f8d906f..bf68fb45ff 100644
--- a/launcher/app/build.gradle
+++ b/launcher/app/build.gradle
@@ -4,7 +4,7 @@ apply {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation project(':launcher:pkg')
- implementation project(':subutil:pkg')
- implementation project(':utilcode:pkg')
+ implementation gradle.ext.dep.launcher_pkg
+ implementation gradle.ext.dep.subutil_pkg
+ implementation gradle.ext.dep.utilcode_pkg
}
\ No newline at end of file
diff --git a/launcher/pkg/build.gradle b/launcher/pkg/build.gradle
index 9fe360a5dd..881637b34a 100644
--- a/launcher/pkg/build.gradle
+++ b/launcher/pkg/build.gradle
@@ -4,5 +4,5 @@ apply {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- api project(':lib:base')
+ api gradle.ext.dep.lib_base
}
\ No newline at end of file
diff --git a/launcher/pkg/src/main/java/com/blankj/launcher/pkg/MainActivity.kt b/launcher/pkg/src/main/java/com/blankj/launcher/pkg/MainActivity.kt
index 02491cd88d..0e9f0a8477 100644
--- a/launcher/pkg/src/main/java/com/blankj/launcher/pkg/MainActivity.kt
+++ b/launcher/pkg/src/main/java/com/blankj/launcher/pkg/MainActivity.kt
@@ -2,7 +2,7 @@ package com.blankj.launcher.pkg
import android.graphics.Color
import android.os.Bundle
-import android.support.v7.app.ActionBarDrawerToggle
+import androidx.appcompat.app.ActionBarDrawerToggle
import android.view.View
import android.widget.ImageView
import com.blankj.lib.base.BaseDrawerActivity
diff --git a/launcher/pkg/src/main/res/layout/activity_main.xml b/launcher/pkg/src/main/res/layout/activity_main.xml
index 3b31dafe32..ee8b62a6fa 100644
--- a/launcher/pkg/src/main/res/layout/activity_main.xml
+++ b/launcher/pkg/src/main/res/layout/activity_main.xml
@@ -1,17 +1,17 @@
-
-
-
-
-
-
+
+
-
@@ -69,5 +69,5 @@
android:text="@string/sub_util" />
-
-
+
+
diff --git a/lib/base/build.gradle b/lib/base/build.gradle
index 370036c062..67f9762d82 100644
--- a/lib/base/build.gradle
+++ b/lib/base/build.gradle
@@ -8,7 +8,7 @@ dependencies {
api gradle.ext.dep.subutil_lib
api gradle.ext.dep.support_appcompat_v7
- api gradle.ext.dep.support_design
+ api gradle.ext.dep.support_material
api gradle.ext.dep.support_multidex
api gradle.ext.dep.constraint
api gradle.ext.dep.kotlin
diff --git a/lib/base/src/main/java/com/blankj/lib/base/BaseActivity.java b/lib/base/src/main/java/com/blankj/lib/base/BaseActivity.java
index caae1d45cf..0c9d8fa419 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/BaseActivity.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/BaseActivity.java
@@ -3,11 +3,12 @@
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
-import android.support.annotation.LayoutRes;
-import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
+import androidx.annotation.LayoutRes;
+import androidx.appcompat.app.AppCompatActivity;
+
import com.blankj.swipepanel.SwipePanel;
import com.blankj.utilcode.util.AntiShakeUtils;
import com.blankj.utilcode.util.AppUtils;
diff --git a/lib/base/src/main/java/com/blankj/lib/base/BaseApplication.java b/lib/base/src/main/java/com/blankj/lib/base/BaseApplication.java
index 1e0ddc0b27..5d2eba8260 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/BaseApplication.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/BaseApplication.java
@@ -2,7 +2,8 @@
import android.app.Application;
import android.content.Context;
-import android.support.multidex.MultiDex;
+
+import androidx.multidex.MultiDex;
import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.CrashUtils;
diff --git a/lib/base/src/main/java/com/blankj/lib/base/BaseDrawerActivity.java b/lib/base/src/main/java/com/blankj/lib/base/BaseDrawerActivity.java
index c7f7f1daea..ec3c895f6e 100755
--- a/lib/base/src/main/java/com/blankj/lib/base/BaseDrawerActivity.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/BaseDrawerActivity.java
@@ -3,17 +3,18 @@
import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.StringRes;
-import android.support.design.widget.NavigationView;
-import android.support.v4.widget.DrawerLayout;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.widget.FrameLayout;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.drawerlayout.widget.DrawerLayout;
+
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.StringUtils;
+import com.google.android.material.navigation.NavigationView;
/**
diff --git a/lib/base/src/main/java/com/blankj/lib/base/BaseFragment.java b/lib/base/src/main/java/com/blankj/lib/base/BaseFragment.java
index 5667f3f02c..0e4e7ba5cc 100755
--- a/lib/base/src/main/java/com/blankj/lib/base/BaseFragment.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/BaseFragment.java
@@ -4,17 +4,18 @@
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
-import android.support.annotation.IdRes;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import androidx.annotation.IdRes;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
+
import com.blankj.utilcode.util.AntiShakeUtils;
/**
diff --git a/lib/base/src/main/java/com/blankj/lib/base/BaseTitleActivity.java b/lib/base/src/main/java/com/blankj/lib/base/BaseTitleActivity.java
index a40230420d..e0ed3ed10a 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/BaseTitleActivity.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/BaseTitleActivity.java
@@ -1,16 +1,17 @@
package com.blankj.lib.base;
import android.annotation.SuppressLint;
-import android.support.annotation.LayoutRes;
-import android.support.design.widget.CoordinatorLayout;
-import android.support.v7.app.ActionBar;
-import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewStub;
import android.widget.FrameLayout;
+import androidx.annotation.LayoutRes;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.widget.Toolbar;
+import androidx.coordinatorlayout.widget.CoordinatorLayout;
+
import com.blankj.utilcode.util.BarUtils;
import com.blankj.utilcode.util.ColorUtils;
diff --git a/lib/base/src/main/java/com/blankj/lib/base/IBaseView.java b/lib/base/src/main/java/com/blankj/lib/base/IBaseView.java
index 29e8553899..b0550f126c 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/IBaseView.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/IBaseView.java
@@ -1,10 +1,11 @@
package com.blankj.lib.base;
import android.os.Bundle;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.Nullable;
import android.view.View;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.Nullable;
+
/**
*
diff --git a/lib/base/src/main/java/com/blankj/lib/base/rv/BaseAdapter.java b/lib/base/src/main/java/com/blankj/lib/base/rv/BaseAdapter.java
index 11aa94e015..e69be6c6df 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/rv/BaseAdapter.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/rv/BaseAdapter.java
@@ -1,12 +1,13 @@
package com.blankj.lib.base.rv;
import android.content.Context;
-import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
import java.util.List;
/**
diff --git a/lib/base/src/main/java/com/blankj/lib/base/rv/BaseCell.java b/lib/base/src/main/java/com/blankj/lib/base/rv/BaseCell.java
index cdf42c7882..332c4caee0 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/rv/BaseCell.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/rv/BaseCell.java
@@ -1,10 +1,11 @@
package com.blankj.lib.base.rv;
-import android.support.annotation.NonNull;
import android.util.SparseArray;
import android.util.SparseIntArray;
import android.view.View;
+import androidx.annotation.NonNull;
+
/**
*
* author: blankj
diff --git a/lib/base/src/main/java/com/blankj/lib/base/rv/BaseViewHolder.java b/lib/base/src/main/java/com/blankj/lib/base/rv/BaseViewHolder.java
index ceb1c46eac..0bd892f317 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/rv/BaseViewHolder.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/rv/BaseViewHolder.java
@@ -1,7 +1,7 @@
package com.blankj.lib.base.rv;
-import android.support.annotation.IdRes;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.IdRes;
+import androidx.recyclerview.widget.RecyclerView;
import android.util.SparseArray;
import android.view.View;
diff --git a/lib/base/src/main/java/com/blankj/lib/base/rv/RecycleViewDivider.java b/lib/base/src/main/java/com/blankj/lib/base/rv/RecycleViewDivider.java
index 3d2b90f302..dd20894e10 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/rv/RecycleViewDivider.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/rv/RecycleViewDivider.java
@@ -5,11 +5,11 @@
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
-import android.support.v4.view.ViewCompat;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+import androidx.core.view.ViewCompat;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.View;
import android.widget.LinearLayout;
diff --git a/lib/base/src/main/res/layout/activity_base_title.xml b/lib/base/src/main/res/layout/activity_base_title.xml
index b11ecf7341..986d3669b6 100644
--- a/lib/base/src/main/res/layout/activity_base_title.xml
+++ b/lib/base/src/main/res/layout/activity_base_title.xml
@@ -1,24 +1,23 @@
-
-
-
-
+
-
+
diff --git a/lib/base/src/main/res/layout/activity_base_title_stub_scroll.xml b/lib/base/src/main/res/layout/activity_base_title_stub_scroll.xml
index 96f5e09d49..bd031cfb67 100644
--- a/lib/base/src/main/res/layout/activity_base_title_stub_scroll.xml
+++ b/lib/base/src/main/res/layout/activity_base_title_stub_scroll.xml
@@ -1,5 +1,5 @@
-
-
+
diff --git a/lib/base/src/main/res/layout/activity_drawer.xml b/lib/base/src/main/res/layout/activity_drawer.xml
index 72f70ed969..be44cd718c 100644
--- a/lib/base/src/main/res/layout/activity_drawer.xml
+++ b/lib/base/src/main/res/layout/activity_drawer.xml
@@ -1,5 +1,5 @@
-
-
-
+
diff --git a/subutil/app/build.gradle b/subutil/app/build.gradle
index a2e0172413..a7027c15ef 100644
--- a/subutil/app/build.gradle
+++ b/subutil/app/build.gradle
@@ -4,5 +4,5 @@ apply {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation project(':subutil:pkg')
+ implementation gradle.ext.dep.subutil_pkg
}
\ No newline at end of file
diff --git a/subutil/lib/build.gradle b/subutil/lib/build.gradle
index 9dcbe0b542..f3140b4f0b 100644
--- a/subutil/lib/build.gradle
+++ b/subutil/lib/build.gradle
@@ -14,7 +14,7 @@ readme {
dependencies {
compileOnly gradle.ext.dep.support_appcompat_v7
- compileOnly gradle.ext.dep.support_design
+ compileOnly gradle.ext.dep.support_material
api(gradle.ext.dep.glide) {
exclude group: "com.android.support"
}
diff --git a/subutil/lib/src/main/java/com/blankj/subutil/util/LocationUtils.java b/subutil/lib/src/main/java/com/blankj/subutil/util/LocationUtils.java
index 7ee8747902..0c177b534c 100755
--- a/subutil/lib/src/main/java/com/blankj/subutil/util/LocationUtils.java
+++ b/subutil/lib/src/main/java/com/blankj/subutil/util/LocationUtils.java
@@ -11,7 +11,7 @@
import android.location.LocationProvider;
import android.os.Bundle;
import android.provider.Settings;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.RequiresPermission;
import android.util.Log;
import java.io.IOException;
diff --git a/subutil/lib/src/main/java/com/blankj/subutil/util/PinyinUtils.java b/subutil/lib/src/main/java/com/blankj/subutil/util/PinyinUtils.java
index 22486b3a91..934408c65e 100644
--- a/subutil/lib/src/main/java/com/blankj/subutil/util/PinyinUtils.java
+++ b/subutil/lib/src/main/java/com/blankj/subutil/util/PinyinUtils.java
@@ -1,6 +1,6 @@
package com.blankj.subutil.util;
-import android.support.v4.util.SimpleArrayMap;
+import androidx.collection.SimpleArrayMap;
/**
*
diff --git a/subutil/lib/src/main/java/com/blankj/subutil/util/Utils.java b/subutil/lib/src/main/java/com/blankj/subutil/util/Utils.java
index 9cbf4e06fd..91b336abcf 100644
--- a/subutil/lib/src/main/java/com/blankj/subutil/util/Utils.java
+++ b/subutil/lib/src/main/java/com/blankj/subutil/util/Utils.java
@@ -7,8 +7,8 @@
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import java.lang.reflect.InvocationTargetException;
diff --git a/subutil/lib/src/main/java/com/blankj/subutil/util/http/ExecutorFactory.java b/subutil/lib/src/main/java/com/blankj/subutil/util/http/ExecutorFactory.java
index f5583397d9..2f26fb9c24 100644
--- a/subutil/lib/src/main/java/com/blankj/subutil/util/http/ExecutorFactory.java
+++ b/subutil/lib/src/main/java/com/blankj/subutil/util/http/ExecutorFactory.java
@@ -2,7 +2,8 @@
import android.os.Handler;
import android.os.Looper;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
import java.util.concurrent.Executor;
import java.util.concurrent.LinkedBlockingQueue;
diff --git a/subutil/lib/src/main/java/com/blankj/subutil/util/http/HttpUtils.java b/subutil/lib/src/main/java/com/blankj/subutil/util/http/HttpUtils.java
index b952f318cb..bdd4174486 100644
--- a/subutil/lib/src/main/java/com/blankj/subutil/util/http/HttpUtils.java
+++ b/subutil/lib/src/main/java/com/blankj/subutil/util/http/HttpUtils.java
@@ -1,7 +1,8 @@
package com.blankj.subutil.util.http;
import android.accounts.NetworkErrorException;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
diff --git a/subutil/lib/src/main/java/com/blankj/subutil/util/http/Request.java b/subutil/lib/src/main/java/com/blankj/subutil/util/http/Request.java
index fe39b1299c..c6eddf9b96 100644
--- a/subutil/lib/src/main/java/com/blankj/subutil/util/http/Request.java
+++ b/subutil/lib/src/main/java/com/blankj/subutil/util/http/Request.java
@@ -1,6 +1,7 @@
package com.blankj.subutil.util.http;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
diff --git a/subutil/lib/src/main/java/com/blankj/subutil/util/http/SSLConfig.java b/subutil/lib/src/main/java/com/blankj/subutil/util/http/SSLConfig.java
index b8624af490..0cf43662f2 100644
--- a/subutil/lib/src/main/java/com/blankj/subutil/util/http/SSLConfig.java
+++ b/subutil/lib/src/main/java/com/blankj/subutil/util/http/SSLConfig.java
@@ -2,7 +2,8 @@
import android.annotation.SuppressLint;
import android.os.Build;
-import android.support.annotation.NonNull;
+
+import androidx.annotation.NonNull;
import java.io.IOException;
import java.net.InetAddress;
diff --git a/subutil/pkg/build.gradle b/subutil/pkg/build.gradle
index 9fe360a5dd..881637b34a 100644
--- a/subutil/pkg/build.gradle
+++ b/subutil/pkg/build.gradle
@@ -4,5 +4,5 @@ apply {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- api project(':lib:base')
+ api gradle.ext.dep.lib_base
}
\ No newline at end of file
diff --git a/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.kt b/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.kt
index 45e67a4a0d..9eba25c622 100644
--- a/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.kt
+++ b/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/DialogHelper.kt
@@ -1,6 +1,6 @@
package com.blankj.subutil.pkg.helper
-import android.support.v7.app.AlertDialog
+import androidx.appcompat.app.AlertDialog
import com.blankj.subutil.pkg.R
import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.PermissionUtils
diff --git a/utilcode/README-CN.md b/utilcode/README-CN.md
index 445f206121..0bdb622940 100644
--- a/utilcode/README-CN.md
+++ b/utilcode/README-CN.md
@@ -5,7 +5,7 @@ Gradle:
implementation 'com.blankj:utilcode:1.24.0'
// if u use AndroidX, use the following
-implementation 'com.blankj:utilcodex:1.23.7'
+implementation 'com.blankj:utilcodex:1.24.0'
```
diff --git a/utilcode/README.md b/utilcode/README.md
index f449736061..5a6a295b4c 100644
--- a/utilcode/README.md
+++ b/utilcode/README.md
@@ -5,7 +5,7 @@ Gradle:
implementation 'com.blankj:utilcode:1.24.0'
// if u use AndroidX, use the following
-implementation 'com.blankj:utilcodex:1.23.7'
+implementation 'com.blankj:utilcodex:1.24.0'
```
diff --git a/utilcode/app/build.gradle b/utilcode/app/build.gradle
index 5616386892..ea5c172cd7 100644
--- a/utilcode/app/build.gradle
+++ b/utilcode/app/build.gradle
@@ -4,5 +4,5 @@ apply {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation project(':utilcode:pkg')
+ implementation gradle.ext.dep.utilcode_pkg
}
\ No newline at end of file
diff --git a/utilcode/lib/build.gradle b/utilcode/lib/build.gradle
index e4dd3a6716..6d6c599298 100644
--- a/utilcode/lib/build.gradle
+++ b/utilcode/lib/build.gradle
@@ -18,7 +18,7 @@ dependencies {
compile gradle.ext.dep.gson
compileOnly gradle.ext.dep.support_appcompat_v7
- compileOnly gradle.ext.dep.support_design
+ compileOnly gradle.ext.dep.support_material
testImplementation gradle.ext.dep.junit
testImplementation gradle.ext.dep.robolectric
diff --git a/utilcode/lib/project.properties b/utilcode/lib/project.properties
index 22ae3b8603..d238eda740 100644
--- a/utilcode/lib/project.properties
+++ b/utilcode/lib/project.properties
@@ -1,9 +1,9 @@
#project
-project.name=UtilCode
+project.name=UtilCodeX
project.groupId=com.blankj
-project.artifactId=utilcode
+project.artifactId=utilcodex
project.packaging=aar
project.siteUrl=https://github.com/Blankj/AndroidUtilCode
project.gitUrl=https://github.com/Blankj/AndroidUtilCode.git
#javadoc
-javadoc.name=UtilCode
\ No newline at end of file
+javadoc.name=UtilCodeX
\ No newline at end of file
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java
index b68bfcb113..5c05c0163e 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/MemoryConstants.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.constant;
-import android.support.annotation.IntDef;
+import androidx.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java
index 76f7e9a217..6db826e4ab 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/PermissionConstants.java
@@ -4,7 +4,7 @@
import android.Manifest.permission;
import android.annotation.SuppressLint;
import android.os.Build;
-import android.support.annotation.StringDef;
+import androidx.annotation.StringDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/TimeConstants.java b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/TimeConstants.java
index 9932037bf8..45090576e3 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/constant/TimeConstants.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/constant/TimeConstants.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.constant;
-import android.support.annotation.IntDef;
+import androidx.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ActivityUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ActivityUtils.java
index d6a671e4fe..de1bfeb005 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ActivityUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ActivityUtils.java
@@ -10,14 +10,15 @@
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
-import android.support.annotation.AnimRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v4.util.Pair;
import android.util.Log;
import android.view.View;
+import androidx.annotation.AnimRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.app.ActivityOptionsCompat;
+import androidx.core.util.Pair;
+
import java.util.List;
/**
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java
index 7e87e73474..ca9036225e 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java
@@ -1,9 +1,10 @@
package com.blankj.utilcode.util;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
import android.view.View;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+
/**
*
* author: blankj
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 a9368be59f..5a9194ce66 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
@@ -17,8 +17,6 @@
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.v4.content.FileProvider;
import android.util.Log;
import java.io.File;
@@ -27,6 +25,9 @@
import java.util.ArrayList;
import java.util.List;
+import androidx.annotation.NonNull;
+import androidx.core.content.FileProvider;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java
index 7b5509b2b5..22178a5c20 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java
@@ -8,11 +8,6 @@
import android.graphics.Color;
import android.graphics.Point;
import android.os.Build;
-import android.support.annotation.ColorInt;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresApi;
-import android.support.annotation.RequiresPermission;
-import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
@@ -27,6 +22,12 @@
import java.lang.reflect.Method;
+import androidx.annotation.ColorInt;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RequiresPermission;
+import androidx.drawerlayout.widget.DrawerLayout;
+
import static android.Manifest.permission.EXPAND_STATUS_BAR;
/**
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BrightnessUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BrightnessUtils.java
index f9344b0a59..bacc519540 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BrightnessUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BrightnessUtils.java
@@ -2,11 +2,12 @@
import android.content.ContentResolver;
import android.provider.Settings;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
import android.view.Window;
import android.view.WindowManager;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BusUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BusUtils.java
index f04202043e..d272c99b98 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/BusUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/BusUtils.java
@@ -16,11 +16,12 @@
import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
import android.text.TextUtils;
import android.util.Log;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskStaticUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskStaticUtils.java
index bb48a4b5cf..c5a9a17a6d 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskStaticUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskStaticUtils.java
@@ -3,13 +3,14 @@
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.Serializable;
+import androidx.annotation.NonNull;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskUtils.java
index 67e6b3fb0e..a8ae8afa5b 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDiskUtils.java
@@ -8,9 +8,10 @@
import android.graphics.drawable.Drawable;
import android.os.Parcel;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
import android.util.Log;
+import androidx.annotation.NonNull;
+
import com.blankj.utilcode.constant.CacheConstants;
import org.json.JSONArray;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleStaticUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleStaticUtils.java
index 2ef267bd01..6dbb9f7475 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleStaticUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleStaticUtils.java
@@ -3,13 +3,14 @@
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.Serializable;
+import androidx.annotation.NonNull;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleUtils.java
index c800423c78..aca1c25837 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheDoubleUtils.java
@@ -3,7 +3,7 @@
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.blankj.utilcode.constant.CacheConstants;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryStaticUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryStaticUtils.java
index 56abfba117..aedcfa7fc4 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryStaticUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryStaticUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryUtils.java
index d0e06e394d..ddaa2baed9 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CacheMemoryUtils.java
@@ -1,7 +1,7 @@
package com.blankj.utilcode.util;
-import android.support.annotation.NonNull;
-import android.support.v4.util.LruCache;
+import androidx.annotation.NonNull;
+import androidx.collection.LruCache;
import com.blankj.utilcode.constant.CacheConstants;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java
index 4c0c22232b..a6603cfc44 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java
@@ -1,12 +1,12 @@
package com.blankj.utilcode.util;
import android.graphics.Color;
-import android.support.annotation.ColorInt;
-import android.support.annotation.ColorRes;
-import android.support.annotation.FloatRange;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.ColorRes;
+import androidx.annotation.FloatRange;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CrashUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CrashUtils.java
index 18b5f814a3..081dd09761 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/CrashUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/CrashUtils.java
@@ -5,8 +5,8 @@
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Environment;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresPermission;
import android.util.Log;
import java.io.BufferedWriter;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/DeviceUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/DeviceUtils.java
index e6b1910cfc..c641c9bdae 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/DeviceUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/DeviceUtils.java
@@ -11,11 +11,12 @@
import android.os.Debug;
import android.os.PowerManager;
import android.provider.Settings;
-import android.support.annotation.RequiresApi;
-import android.support.annotation.RequiresPermission;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
+import androidx.annotation.RequiresApi;
+import androidx.annotation.RequiresPermission;
+
import java.io.File;
import java.net.InetAddress;
import java.net.NetworkInterface;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/FragmentUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/FragmentUtils.java
index 43b8537e75..9e8ae14ef1 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/FragmentUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/FragmentUtils.java
@@ -3,16 +3,6 @@
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
-import android.support.annotation.AnimRes;
-import android.support.annotation.AnimatorRes;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.IdRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.View;
@@ -20,6 +10,17 @@
import java.util.Collections;
import java.util.List;
+import androidx.annotation.AnimRes;
+import androidx.annotation.AnimatorRes;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.IdRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
/**
*
* author: Blankj
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ImageUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ImageUtils.java
index 83e01eb1ad..cbee7dd4bd 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ImageUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ImageUtils.java
@@ -27,13 +27,13 @@
import android.renderscript.Element;
import android.renderscript.RenderScript;
import android.renderscript.ScriptIntrinsicBlur;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.FloatRange;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresApi;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.FloatRange;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.core.content.ContextCompat;
import android.view.View;
import java.io.BufferedOutputStream;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/IntentUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/IntentUtils.java
index 6faa37d043..1e26dc8a9a 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/IntentUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/IntentUtils.java
@@ -8,8 +8,8 @@
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.Settings;
-import android.support.annotation.RequiresPermission;
-import android.support.v4.content.FileProvider;
+import androidx.annotation.RequiresPermission;
+import androidx.core.content.FileProvider;
import java.io.File;
import java.util.ArrayList;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/KeyboardUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/KeyboardUtils.java
index cfa568fa7c..de3eb285cc 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/KeyboardUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/KeyboardUtils.java
@@ -7,7 +7,6 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.ResultReceiver;
-import android.support.annotation.NonNull;
import android.util.Log;
import android.view.View;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
@@ -16,6 +15,8 @@
import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
+import androidx.annotation.NonNull;
+
import java.lang.reflect.Field;
/**
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java
index 1372ecd40b..9a7e11cbf5 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/LogUtils.java
@@ -10,10 +10,10 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
-import android.support.annotation.IntDef;
-import android.support.annotation.IntRange;
-import android.support.annotation.RequiresApi;
-import android.support.v4.util.SimpleArrayMap;
+import androidx.annotation.IntDef;
+import androidx.annotation.IntRange;
+import androidx.annotation.RequiresApi;
+import androidx.collection.SimpleArrayMap;
import android.util.Log;
import com.google.gson.Gson;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/MetaDataUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/MetaDataUtils.java
index 6f6cf85b80..bd4b8da935 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/MetaDataUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/MetaDataUtils.java
@@ -8,7 +8,7 @@
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java
index d59eb28240..24a05a26b7 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/NetworkUtils.java
@@ -7,13 +7,14 @@
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresPermission;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.text.format.Formatter;
import android.util.Log;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresPermission;
+
import java.lang.reflect.Method;
import java.net.InetAddress;
import java.net.InterfaceAddress;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/NotificationUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/NotificationUtils.java
index b8163d2e66..73a900b465 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/NotificationUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/NotificationUtils.java
@@ -5,9 +5,9 @@
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.support.annotation.Nullable;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.NotificationManagerCompat;
+import androidx.annotation.Nullable;
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ObjectUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ObjectUtils.java
index be5491ece0..3c0c087a39 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ObjectUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ObjectUtils.java
@@ -1,9 +1,9 @@
package com.blankj.utilcode.util;
import android.os.Build;
-import android.support.annotation.RequiresApi;
-import android.support.v4.util.LongSparseArray;
-import android.support.v4.util.SimpleArrayMap;
+import androidx.annotation.RequiresApi;
+import androidx.collection.LongSparseArray;
+import androidx.collection.SimpleArrayMap;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/PermissionUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/PermissionUtils.java
index d35cbcc620..602efcb5db 100755
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/PermissionUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/PermissionUtils.java
@@ -9,10 +9,10 @@
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+import androidx.core.content.ContextCompat;
import android.util.Log;
import android.view.MotionEvent;
import android.view.WindowManager;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/PhoneUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/PhoneUtils.java
index 99068781a4..f407f81b5f 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/PhoneUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/PhoneUtils.java
@@ -7,7 +7,7 @@
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.RequiresPermission;
import android.telephony.SmsManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ProcessUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ProcessUtils.java
index adcd265f72..619b175549 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ProcessUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ProcessUtils.java
@@ -10,8 +10,8 @@
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresPermission;
import android.util.Log;
import java.util.Arrays;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/RegexUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/RegexUtils.java
index ba57fab956..817a94149f 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/RegexUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/RegexUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.v4.util.SimpleArrayMap;
+import androidx.collection.SimpleArrayMap;
import com.blankj.utilcode.constant.RegexConstants;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ResourceUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ResourceUtils.java
index 81d10f08cf..3fb515c06b 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ResourceUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ResourceUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.annotation.RawRes;
+import androidx.annotation.RawRes;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPStaticUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPStaticUtils.java
index d3e21fb873..21274c3023 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPStaticUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPStaticUtils.java
@@ -1,7 +1,7 @@
package com.blankj.utilcode.util;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import java.util.Map;
import java.util.Set;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPUtils.java
index 554a2ed586..a9d18a1a55 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SPUtils.java
@@ -3,7 +3,7 @@
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import java.util.Collections;
import java.util.HashMap;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ScreenUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ScreenUtils.java
index 7390fceed0..3245eb115c 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ScreenUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ScreenUtils.java
@@ -10,8 +10,8 @@
import android.graphics.Point;
import android.os.Build;
import android.provider.Settings;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresPermission;
import android.util.DisplayMetrics;
import android.view.Surface;
import android.view.View;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ShellUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ShellUtils.java
index b7ad2fa9d2..fc10a601ae 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ShellUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ShellUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import java.io.BufferedReader;
import java.io.DataOutputStream;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
index b164e6154e..eab1990d29 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
@@ -1,12 +1,12 @@
package com.blankj.utilcode.util;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.IntDef;
-import android.support.annotation.IntRange;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.NonNull;
-import android.support.design.widget.Snackbar;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.IntDef;
+import androidx.annotation.IntRange;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import com.google.android.material.snackbar.Snackbar;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SpanUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SpanUtils.java
index b8d9d53aed..4d49451ec0 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/SpanUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/SpanUtils.java
@@ -14,14 +14,14 @@
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.FloatRange;
-import android.support.annotation.IntDef;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.v4.content.ContextCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.FloatRange;
+import androidx.annotation.IntDef;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
import android.text.Layout;
import android.text.Layout.Alignment;
import android.text.SpannableStringBuilder;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/StringUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/StringUtils.java
index c3254e3d32..70f0defe50 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/StringUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/StringUtils.java
@@ -1,8 +1,8 @@
package com.blankj.utilcode.util;
import android.content.res.Resources;
-import android.support.annotation.ArrayRes;
-import android.support.annotation.StringRes;
+import androidx.annotation.ArrayRes;
+import androidx.annotation.StringRes;
/**
*
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ThreadUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ThreadUtils.java
index 0545a27fa0..19de94ca33 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/ThreadUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/ThreadUtils.java
@@ -2,10 +2,11 @@
import android.os.Handler;
import android.os.Looper;
-import android.support.annotation.IntRange;
-import android.support.annotation.NonNull;
import android.util.Log;
+import androidx.annotation.IntRange;
+import androidx.annotation.NonNull;
+
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Executor;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/TimeUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/TimeUtils.java
index adaa920474..a5286b0fbe 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/TimeUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/TimeUtils.java
@@ -1,6 +1,6 @@
package com.blankj.utilcode.util;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.blankj.utilcode.constant.TimeConstants;
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 150425cdba..0dd47cfa3e 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
@@ -12,11 +12,11 @@
import android.os.Build;
import android.os.Handler;
import android.os.Message;
-import android.support.annotation.ColorInt;
-import android.support.annotation.DrawableRes;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.StringRes;
-import android.support.v4.app.NotificationManagerCompat;
+import androidx.annotation.ColorInt;
+import androidx.annotation.DrawableRes;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.StringRes;
+import androidx.core.app.NotificationManagerCompat;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/UriUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/UriUtils.java
index 9ad408912a..20fdc39b81 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/UriUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/UriUtils.java
@@ -8,12 +8,14 @@
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
-import android.support.annotation.NonNull;
-import android.support.v4.content.FileProvider;
+import android.text.TextUtils;
import android.util.Log;
import java.io.File;
+import androidx.annotation.NonNull;
+import androidx.core.content.FileProvider;
+
/**
*
* author: Blankj
@@ -75,12 +77,19 @@ public static File uri2File(@NonNull final Uri uri) {
Log.d("UriUtils", uri.toString() + " parse failed. -> 1");
return null;
} else if ("com.android.providers.downloads.documents".equals(authority)) {
- final String id = DocumentsContract.getDocumentId(uri);
- final Uri contentUri = ContentUris.withAppendedId(
- Uri.parse("content://downloads/public_downloads"),
- Long.valueOf(id)
- );
- return getFileFromUri(contentUri, 2);
+ String id = DocumentsContract.getDocumentId(uri);
+ if (!TextUtils.isEmpty(id)) {
+ if (id.startsWith("raw:")) {
+ return new File(id.substring(4));
+ }
+ final Uri contentUri = ContentUris.withAppendedId(
+ Uri.parse(Environment.DIRECTORY_DOWNLOADS),
+ Long.valueOf(id)
+ );
+ return getFileFromUri(contentUri, 2);
+ }
+ Log.d("UriUtils", uri.toString() + " parse failed. -> 3");
+ return null;
} else if ("com.android.providers.media.documents".equals(authority)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
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 d0c98afc96..1992a2c902 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
@@ -13,13 +13,14 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
-import android.support.v4.content.FileProvider;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
+import androidx.core.content.FileProvider;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
diff --git a/utilcode/lib/src/main/java/com/blankj/utilcode/util/VibrateUtils.java b/utilcode/lib/src/main/java/com/blankj/utilcode/util/VibrateUtils.java
index a57bbb8241..622d657817 100644
--- a/utilcode/lib/src/main/java/com/blankj/utilcode/util/VibrateUtils.java
+++ b/utilcode/lib/src/main/java/com/blankj/utilcode/util/VibrateUtils.java
@@ -2,7 +2,7 @@
import android.content.Context;
import android.os.Vibrator;
-import android.support.annotation.RequiresPermission;
+import androidx.annotation.RequiresPermission;
import static android.Manifest.permission.VIBRATE;
diff --git a/utilcode/lib/src/test/java/com/blankj/utilcode/util/BaseTest.java b/utilcode/lib/src/test/java/com/blankj/utilcode/util/BaseTest.java
index 85bc9d8ac2..2dadedff8c 100644
--- a/utilcode/lib/src/test/java/com/blankj/utilcode/util/BaseTest.java
+++ b/utilcode/lib/src/test/java/com/blankj/utilcode/util/BaseTest.java
@@ -1,8 +1,5 @@
package com.blankj.utilcode.util;
-
-import android.support.annotation.NonNull;
-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -29,7 +26,7 @@ public BaseTest() {
ShadowLog.stream = System.out;
ThreadUtils.setDeliver(new Executor() {
@Override
- public void execute(@NonNull Runnable command) {
+ public void execute(Runnable command) {
command.run();
}
});
@@ -201,8 +198,8 @@ public void onFail(Throwable t) {
static class Person implements Comparable {
String name;
- int age;
- int time;
+ int age;
+ int time;
public Person(String name) {
this.name = name;
@@ -220,7 +217,7 @@ public String toString() {
}
@Override
- public int compareTo(@NonNull Person o) {
+ public int compareTo(Person o) {
int res = o.age - age;
if (res != 0) {
return res;
diff --git a/utilcode/lib/src/test/java/com/blankj/utilcode/util/ObjectUtilsTest.java b/utilcode/lib/src/test/java/com/blankj/utilcode/util/ObjectUtilsTest.java
index a0203f78fc..ed12c24d8d 100644
--- a/utilcode/lib/src/test/java/com/blankj/utilcode/util/ObjectUtilsTest.java
+++ b/utilcode/lib/src/test/java/com/blankj/utilcode/util/ObjectUtilsTest.java
@@ -1,7 +1,5 @@
package com.blankj.utilcode.util;
-import android.support.v4.util.LongSparseArray;
-import android.support.v4.util.SimpleArrayMap;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
@@ -12,6 +10,9 @@
import java.util.HashMap;
import java.util.LinkedList;
+import androidx.collection.LongSparseArray;
+import androidx.collection.SimpleArrayMap;
+
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
diff --git a/utilcode/pkg/build.gradle b/utilcode/pkg/build.gradle
index 9fe360a5dd..881637b34a 100644
--- a/utilcode/pkg/build.gradle
+++ b/utilcode/pkg/build.gradle
@@ -4,5 +4,5 @@ apply {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- api project(':lib:base')
+ api gradle.ext.dep.lib_base
}
\ No newline at end of file
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
index e784f98401..9982c948b7 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/ActivityActivity.kt
@@ -6,7 +6,7 @@ import android.graphics.Bitmap
import android.graphics.drawable.BitmapDrawable
import android.os.Build
import android.os.Bundle
-import android.support.v4.app.ActivityOptionsCompat
+import androidx.core.app.ActivityOptionsCompat
import android.view.View
import android.view.Window
import com.blankj.lib.base.BaseTitleActivity
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
index 0c63773639..abf0151bbc 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/activity/SubActivityActivity.kt
@@ -2,7 +2,7 @@ package com.blankj.utilcode.pkg.feature.activity
import android.os.Build
import android.os.Bundle
-import android.support.v4.app.ActivityCompat
+import androidx.core.app.ActivityCompat
import android.view.View
import android.view.Window
import com.blankj.lib.base.BaseTitleActivity
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusFragmentActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusFragmentActivity.kt
index d4f0d60530..fc8020b3e5 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusFragmentActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusFragmentActivity.kt
@@ -3,10 +3,10 @@ package com.blankj.utilcode.pkg.feature.bar
import android.content.Context
import android.content.Intent
import android.os.Bundle
-import android.support.design.widget.BottomNavigationView
-import android.support.v4.app.Fragment
-import android.support.v4.app.FragmentPagerAdapter
-import android.support.v4.view.ViewPager
+import com.google.android.material.bottomnavigation.BottomNavigationView
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentPagerAdapter
+import androidx.viewpager.widget.ViewPager
import android.view.View
import com.blankj.lib.base.BaseActivity
import com.blankj.utilcode.pkg.R
@@ -37,7 +37,7 @@ class BarStatusFragmentActivity : BaseActivity() {
R.id.barStatusFragmentNavigationCustom
)
- private val mFragmentList = ArrayList()
+ private val mFragmentList = ArrayList()
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener l@{ item ->
when (item.itemId) {
@@ -78,8 +78,8 @@ class BarStatusFragmentActivity : BaseActivity() {
mFragmentList.add(BarStatusCustomFragment.newInstance())
barStatusFragmentVp.offscreenPageLimit = 3
- barStatusFragmentVp.adapter = object : FragmentPagerAdapter(supportFragmentManager) {
- override fun getItem(position: Int): Fragment {
+ barStatusFragmentVp.adapter = object : androidx.fragment.app.FragmentPagerAdapter(supportFragmentManager) {
+ override fun getItem(position: Int): androidx.fragment.app.Fragment {
return mFragmentList[position]
}
@@ -88,7 +88,7 @@ class BarStatusFragmentActivity : BaseActivity() {
}
}
- barStatusFragmentVp.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
+ barStatusFragmentVp.addOnPageChangeListener(object : androidx.viewpager.widget.ViewPager.OnPageChangeListener {
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
override fun onPageSelected(position: Int) {
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
index ada9dd0d10..86972c449d 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/ContainerFragment.kt
@@ -2,8 +2,8 @@ package com.blankj.utilcode.pkg.feature.fragment
import android.os.Build
import android.os.Bundle
-import android.support.annotation.RequiresApi
-import android.support.v4.app.Fragment
+import androidx.annotation.RequiresApi
+import androidx.fragment.app.Fragment
import android.transition.*
import android.view.View
import com.blankj.lib.base.BaseLazyFragment
@@ -128,7 +128,7 @@ class ContainerFragment : BaseLazyFragment(), FragmentUtils.OnBackClickListener
}
}
- private fun addSharedElement(fragment: Fragment): Fragment {
+ private fun addSharedElement(fragment: androidx.fragment.app.Fragment): androidx.fragment.app.Fragment {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
fragment.sharedElementEnterTransition = DetailTransition()
fragment.enterTransition = Fade()
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
index 446271b366..b18a2e236b 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/fragment/FragmentActivity.kt
@@ -4,8 +4,8 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.os.PersistableBundle
-import android.support.design.widget.BottomNavigationView
-import android.support.v4.app.Fragment
+import com.google.android.material.bottomnavigation.BottomNavigationView
+import androidx.fragment.app.Fragment
import android.view.View
import com.blankj.lib.base.BaseActivity
import com.blankj.utilcode.pkg.R
@@ -29,7 +29,7 @@ class FragmentActivity : BaseActivity() {
}
}
- private val mFragments = arrayListOf()
+ private val mFragments = arrayListOf()
private var curIndex: Int = 0
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt
index 0e092e0062..2c6656f220 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/image/ImageActivity.kt
@@ -6,12 +6,12 @@ import android.graphics.Bitmap
import android.graphics.Color
import android.os.Build
import android.os.Bundle
-import android.support.annotation.StringRes
-import android.support.v7.widget.LinearLayoutManager
import android.view.View
import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
+import androidx.annotation.StringRes
+import androidx.recyclerview.widget.LinearLayoutManager
import com.blankj.lib.base.BaseTaskActivity
import com.blankj.lib.base.rv.BaseAdapter
import com.blankj.lib.base.rv.BaseCell
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
index a0ea36d528..cd1c1b0d99 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/snackbar/SnackbarActivity.kt
@@ -4,7 +4,7 @@ import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
-import android.support.annotation.StringRes
+import androidx.annotation.StringRes
import android.text.SpannableStringBuilder
import android.view.View
import android.view.ViewGroup
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
index d84ced168c..202069ed61 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/span/SpanActivity.kt
@@ -5,7 +5,7 @@ import android.content.Context
import android.content.Intent
import android.graphics.*
import android.os.Bundle
-import android.support.annotation.ColorInt
+import androidx.annotation.ColorInt
import android.text.Layout
import android.text.SpannableStringBuilder
import android.text.TextPaint
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
index 314ba33d59..458ecbb3fb 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/CustomToast.kt
@@ -2,7 +2,7 @@ package com.blankj.utilcode.pkg.feature.toast
import android.os.Handler
import android.os.Looper
-import android.support.annotation.StringRes
+import androidx.annotation.StringRes
import android.widget.TextView
import android.widget.Toast
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
index 51c9e53774..47f91e826e 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/toast/ToastActivity.kt
@@ -4,7 +4,7 @@ import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
-import android.support.v4.content.ContextCompat
+import androidx.core.content.ContextCompat
import android.view.Gravity
import android.view.View
import com.blankj.lib.base.BaseTitleActivity
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
index 344a69e448..a495a13013 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/DialogHelper.kt
@@ -3,7 +3,6 @@ package com.blankj.utilcode.pkg.helper
import android.app.Dialog
import android.graphics.Bitmap
import android.graphics.drawable.ColorDrawable
-import android.support.v7.app.AlertDialog
import android.text.method.ScrollingMovementMethod
import android.view.Gravity
import android.view.LayoutInflater
@@ -12,9 +11,9 @@ import android.widget.Button
import android.widget.EditText
import android.widget.ImageView
import android.widget.TextView
+import androidx.appcompat.app.AlertDialog
import com.blankj.utilcode.pkg.R
import com.blankj.utilcode.util.*
-import com.blankj.utilcode.util.PermissionUtils.OnRationaleListener.ShouldRequest
/**
* ```
@@ -26,7 +25,7 @@ import com.blankj.utilcode.util.PermissionUtils.OnRationaleListener.ShouldReques
*/
object DialogHelper {
- fun showRationaleDialog(shouldRequest: ShouldRequest) {
+ fun showRationaleDialog(shouldRequest: PermissionUtils.OnRationaleListener.ShouldRequest) {
val topActivity = ActivityUtils.getTopActivity()
AlertDialog.Builder(topActivity)
.setTitle(android.R.string.dialog_alert_title)
diff --git a/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml b/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml
index 792ae5672e..9be8749952 100644
--- a/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_adaptscreen.xml
@@ -1,5 +1,5 @@
-
-
+
diff --git a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_close.xml b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_close.xml
index ccc88dddb6..1522b0741b 100644
--- a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_close.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_close.xml
@@ -8,7 +8,7 @@
android:fillViewport="true"
tools:context=".feature.adaptScreen.AdaptCloseActivity">
-
@@ -43,6 +43,6 @@
android:textSize="30pt"
app:layout_constraintTop_toBottomOf="@id/adaptScreenCloseAdaptDpTv" />
-
+
\ No newline at end of file
diff --git a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_height.xml b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_height.xml
index 350921b04d..75fa87e8e5 100644
--- a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_height.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_height.xml
@@ -1,13 +1,12 @@
-
-
@@ -94,6 +93,6 @@
android:textSize="30pt" />
-
+
\ No newline at end of file
diff --git a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_width.xml b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_width.xml
index 121415e1b6..dd9f9f40c7 100644
--- a/utilcode/pkg/src/main/res/layout/activity_adaptscreen_width.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_adaptscreen_width.xml
@@ -8,7 +8,7 @@
android:fillViewport="true"
tools:context=".feature.adaptScreen.AdaptWidthActivity">
-
@@ -149,6 +149,6 @@
-
+
\ No newline at end of file
diff --git a/utilcode/pkg/src/main/res/layout/activity_bar_status_fragment.xml b/utilcode/pkg/src/main/res/layout/activity_bar_status_fragment.xml
index 3ce196004b..bd6e43e7a7 100644
--- a/utilcode/pkg/src/main/res/layout/activity_bar_status_fragment.xml
+++ b/utilcode/pkg/src/main/res/layout/activity_bar_status_fragment.xml
@@ -6,7 +6,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
-
-
-
Date: Mon, 3 Jun 2019 23:04:53 +0800
Subject: [PATCH 005/207] see 06/03 log
---
gradle/config/config.gradle | 2 +-
.../src/main/java/com/blankj/lib/base/BaseActivity.java | 2 +-
.../blankj/utilcode/pkg/feature/screen/ScreenActivity.kt | 6 +++++-
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/gradle/config/config.gradle b/gradle/config/config.gradle
index e455c4dba6..13d2d8c99b 100644
--- a/gradle/config/config.gradle
+++ b/gradle/config/config.gradle
@@ -36,7 +36,7 @@ gradle.ext {
subutil_lib : new DepConfig(":subutil:lib"),
subutil_pkg : new DepConfig(":subutil:pkg"),
utilcode_app : new DepConfig(":utilcode:app"),
- utilcode_lib : new DepConfig(false, ":utilcode:lib", "com.blankj:utilcode:$versionName"),
+ utilcode_lib : new DepConfig(true/*是否本地调试*/, ":utilcode:lib", "com.blankj:utilcode:$versionName"),
utilcode_pkg : new DepConfig(":utilcode:pkg"),
support_appcompat_v7 : new DepConfig("com.android.support:appcompat-v7:$support_version"),
diff --git a/lib/base/src/main/java/com/blankj/lib/base/BaseActivity.java b/lib/base/src/main/java/com/blankj/lib/base/BaseActivity.java
index caae1d45cf..f3c0a9821c 100644
--- a/lib/base/src/main/java/com/blankj/lib/base/BaseActivity.java
+++ b/lib/base/src/main/java/com/blankj/lib/base/BaseActivity.java
@@ -85,7 +85,7 @@ private void initSwipeBack() {
final SwipePanel swipeLayout = new SwipePanel(this);
swipeLayout.setLeftDrawable(R.drawable.base_back);
swipeLayout.setLeftEdgeSize(SizeUtils.dp2px(100));
- swipeLayout.wrapView(mContentView);
+ swipeLayout.wrapView(findViewById(android.R.id.content));
swipeLayout.setOnFullSwipeListener(new SwipePanel.OnFullSwipeListener() {
@Override
public void onFullSwipe(int direction) {
diff --git a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/screen/ScreenActivity.kt b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/screen/ScreenActivity.kt
index 33d6f57db3..31c2186d9f 100644
--- a/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/screen/ScreenActivity.kt
+++ b/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/screen/ScreenActivity.kt
@@ -88,7 +88,11 @@ class ScreenActivity : BaseTitleActivity() {
R.id.screenScreenshotBtn -> DialogHelper.showScreenshotDialog(ScreenUtils.screenShot(this))
R.id.screenSetSleepDurationBtn -> ScreenUtils.setSleepDuration(100000)
}
- updateAboutScreen()
+ Utils.runOnUiThreadDelayed(object: Runnable {
+ override fun run() {
+ updateAboutScreen()
+ }
+ }, 36)
}
private fun updateAboutScreen() {
From c27ba55aadfe1dcc617d765590473f3773ac5157 Mon Sep 17 00:00:00 2001
From: Blankj <625783482@qq.com>
Date: Tue, 4 Jun 2019 21:47:33 +0800
Subject: [PATCH 006/207] see 06/04 log
---
.gitignore | 2 +-
gradle.properties | 2 +-
gradle/config/config.gradle | 4 ++--
gradle/config/configBuild.gradle | 1 +
4 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/.gitignore b/.gitignore
index 201b88771a..193619553c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,4 @@
.externalNativeBuild
/apk
*.phrof
-/maven
+/busMaven
diff --git a/gradle.properties b/gradle.properties
index 8f4efeb23e..13c65e97f8 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -19,7 +19,7 @@
#org.gradle.jvmargs=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
-org.gradle.jvmargs=-Xmx8192m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+org.gradle.jvmargs=-Xmx8192m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -XX:-UseGCOverheadLimit -Dfile.encoding=UTF-8
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.parallel=true
\ No newline at end of file
diff --git a/gradle/config/config.gradle b/gradle/config/config.gradle
index 13d2d8c99b..02827c9dc0 100644
--- a/gradle/config/config.gradle
+++ b/gradle/config/config.gradle
@@ -25,10 +25,10 @@ gradle.ext {
plugin_bintray : new DepConfig("com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4"),// 上传到 bintray
plugin_traute : new DepConfig("tech.harmonysoft:traute-gradle:1.1.10"),// 注解转非空判断
- plugin_bus : new DepConfig(false/*是否本地调试*/, "", "com.blankj:bus-gradle-plugin:1.8", true),
+ plugin_bus : new DepConfig(true/*是否本地调试*/, "", "com.blankj:bus-gradle-plugin:1.8", true),
buildSrc : new DepConfig(":buildSrc"),
- bus_gradle_plugin : new DepConfig(":bus-gradle-plugin", false),
+ bus_gradle_plugin : new DepConfig(":bus-gradle-plugin", true),
launcher_app : new DepConfig(":launcher:app"),
launcher_pkg : new DepConfig(":launcher:pkg"),
lib_base : new DepConfig(":lib:base"),
diff --git a/gradle/config/configBuild.gradle b/gradle/config/configBuild.gradle
index 516cc5f0ad..a223a3ea6e 100644
--- a/gradle/config/configBuild.gradle
+++ b/gradle/config/configBuild.gradle
@@ -79,6 +79,7 @@ class CustomListener implements BuildListener {
gradle.depConfig.each { name, config ->
if (!config.isApply) return
if (config.useLocal) {
+ if (config.localPath == "") return
gradle.ext.dep[name] = gradle.rootProject.findProject(config.localPath)
} else {
gradle.ext.dep[name] = config.remotePath
From 0d3390ce04c03025e7cb58b0f1b9cf71f4e0098f Mon Sep 17 00:00:00 2001
From: Blankj <625783482@qq.com>
Date: Wed, 5 Jun 2019 03:01:25 +0800
Subject: [PATCH 007/207] see 06/05 log
---
.gitignore | 1 -
.../bus-gradle-plugin-1.7.0-groovydoc.jar | Bin 69018 -> 0 bytes
.../bus-gradle-plugin-1.7.0-groovydoc.jar.md5 | 1 -
...bus-gradle-plugin-1.7.0-groovydoc.jar.sha1 | 1 -
.../1.7.0/bus-gradle-plugin-1.7.0-javadoc.jar | Bin 32863 -> 0 bytes
.../bus-gradle-plugin-1.7.0-javadoc.jar.md5 | 1 -
.../bus-gradle-plugin-1.7.0-javadoc.jar.sha1 | 1 -
.../1.7.0/bus-gradle-plugin-1.7.0-sources.jar | Bin 22945 -> 0 bytes
.../bus-gradle-plugin-1.7.0-sources.jar.md5 | 1 -
.../bus-gradle-plugin-1.7.0-sources.jar.sha1 | 1 -
.../1.7.0/bus-gradle-plugin-1.7.0.jar | Bin 56549 -> 0 bytes
.../1.7.0/bus-gradle-plugin-1.7.0.jar.md5 | 1 -
.../1.7.0/bus-gradle-plugin-1.7.0.jar.sha1 | 1 -
.../1.7.0/bus-gradle-plugin-1.7.0.pom | 40 ---------------
.../1.7.0/bus-gradle-plugin-1.7.0.pom.md5 | 1 -
.../1.7.0/bus-gradle-plugin-1.7.0.pom.sha1 | 1 -
.../bus-gradle-plugin/maven-metadata.xml | 12 -----
.../bus-gradle-plugin/maven-metadata.xml.md5 | 1 -
.../bus-gradle-plugin/maven-metadata.xml.sha1 | 1 -
gradle/config/config.gradle | 1 +
launcher/app/build.gradle | 6 +--
launcher/app/src/main/AndroidManifest.xml | 2 +-
.../app/{UtilsApp.java => LauncherApp.java} | 8 +--
launcher/pkg/build.gradle | 2 +-
.../com/blankj/launcher/pkg/MainActivity.kt | 4 +-
.../com/blankj/launcher/pkg/SplashActivity.kt | 4 +-
.../com/blankj/lib/base/BaseActivity.java | 48 ------------------
.../com/blankj/lib/base/BaseApplication.java | 11 ++--
lib/common/.gitignore | 1 +
lib/common/build.gradle | 8 +++
lib/common/proguard-rules.pro | 21 ++++++++
lib/common/src/main/AndroidManifest.xml | 1 +
.../blankj/lib/common/CommonApplication.java | 19 +++++++
.../blankj/lib/common/CommonBackActivity.java | 44 ++++++++++++++++
.../com/blankj/lib/common/CommonConfig.java | 14 +++++
.../lib/common/CommonDrawerActivity.java} | 7 +--
.../lib/common/CommonTaskActivity.java} | 40 +++++++++------
.../lib/common/CommonTitleActivity.java} | 7 +--
.../src/main/res/anim/slide_in_left.xml | 0
.../src/main/res/anim/slide_in_right.xml | 0
.../src/main/res/anim/slide_out_left.xml | 0
.../src/main/res/anim/slide_out_right.xml | 0
.../src/main/res/drawable/base_back.png | Bin
.../main/res/drawable/base_sel_button_bg.xml | 0
.../drawable/base_sel_button_txt_color.xml | 0
.../main/res/drawable/main_avatar_round.png | Bin
.../src/main/res/drawable/main_bg_header.jpeg | Bin
.../src/main/res/drawable/main_menu_blog.xml | 0
.../main/res/drawable/main_menu_github.xml | 0
.../res/layout/common_activity_drawer.xml} | 2 +-
.../common_activity_drawer_nav_header.xml} | 0
.../res/layout/common_activity_title.xml} | 4 +-
.../common_activity_title_stub_no_scroll.xml} | 0
.../common_activity_title_stub_scroll.xml} | 0
.../src/main/res/menu/main_drawer.xml | 0
.../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin
.../src/main/res/values/colors.xml | 0
.../src/main/res/values/dimens.xml | 0
.../src/main/res/values/strings.xml | 0
.../src/main/res/values/styles.xml | 0
subutil/app/build.gradle | 2 +-
.../java/com/blankj/subutil/app/SubUtilApp.kt | 5 +-
subutil/pkg/build.gradle | 2 +-
.../subutil/pkg/feature/SubUtilActivity.kt | 4 +-
.../pkg/feature/location/LocationActivity.kt | 5 +-
.../pkg/feature/pinyin/PinyinActivity.kt | 5 +-
utilcode/app/build.gradle | 2 +-
.../com/blankj/utilcode/app/UtilCodeApp.kt | 4 +-
.../com/blankj/utilcode/util/ThreadUtils.java | 28 ++++++++++
utilcode/pkg/build.gradle | 2 +-
.../utilcode/pkg/feature/CoreUtilActivity.kt | 4 +-
.../pkg/feature/activity/ActivityActivity.kt | 6 +--
.../feature/activity/SubActivityActivity.kt | 4 +-
.../feature/adaptScreen/AdaptCloseActivity.kt | 4 +-
.../adaptScreen/AdaptHeightActivity.kt | 4 +-
.../adaptScreen/AdaptScreenActivity.kt | 5 +-
.../feature/adaptScreen/AdaptWidthActivity.kt | 4 +-
.../utilcode/pkg/feature/app/AppActivity.kt | 5 +-
.../utilcode/pkg/feature/bar/BarActivity.kt | 5 +-
.../pkg/feature/bar/BarNavActivity.kt | 5 +-
.../feature/bar/BarNotificationActivity.kt | 5 +-
.../pkg/feature/bar/BarStatusActivity.kt | 5 +-
.../pkg/feature/bar/BarStatusAlphaActivity.kt | 4 +-
.../pkg/feature/bar/BarStatusColorActivity.kt | 4 +-
.../feature/bar/BarStatusCustomActivity.kt | 4 +-
.../feature/bar/BarStatusDrawerActivity.kt | 4 +-
.../feature/bar/BarStatusFragmentActivity.kt | 4 +-
.../feature/bar/BarStatusImageViewActivity.kt | 4 +-
.../feature/brightness/BrightnessActivity.kt | 5 +-
.../utilcode/pkg/feature/bus/BusActivity.kt | 5 +-
.../pkg/feature/bus/BusRemoteActivity.kt | 5 +-
.../pkg/feature/clean/CleanActivity.kt | 5 +-
.../pkg/feature/device/DeviceActivity.kt | 6 +--
.../feature/flashlight/FlashlightActivity.kt | 5 +-
.../pkg/feature/fragment/FragmentActivity.kt | 4 +-
.../pkg/feature/image/ImageActivity.kt | 5 +-
.../pkg/feature/keyboard/KeyboardActivity.kt | 5 +-
.../utilcode/pkg/feature/log/LogActivity.kt | 5 +-
.../pkg/feature/metaData/MetaDataActivity.kt | 5 +-
.../pkg/feature/network/NetworkActivity.kt | 5 +-
.../utilcode/pkg/feature/path/PathActivity.kt | 5 +-
.../feature/permission/PermissionActivity.kt | 5 +-
.../pkg/feature/phone/PhoneActivity.kt | 5 +-
.../pkg/feature/process/ProcessActivity.kt | 5 +-
.../pkg/feature/reflect/ReflectActivity.kt | 5 +-
.../pkg/feature/resource/ResourceActivity.kt | 5 +-
.../utilcode/pkg/feature/rom/RomActivity.kt | 5 +-
.../pkg/feature/screen/ScreenActivity.kt | 5 +-
.../pkg/feature/sdcard/SDCardActivity.kt | 5 +-
.../pkg/feature/snackbar/SnackbarActivity.kt | 5 +-
.../pkg/feature/spStatic/SPStaticActivity.kt | 5 +-
.../utilcode/pkg/feature/span/SpanActivity.kt | 5 +-
.../pkg/feature/toast/ToastActivity.kt | 5 +-
.../pkg/feature/vibrate/VibrateActivity.kt | 5 +-
114 files changed, 294 insertions(+), 294 deletions(-)
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-groovydoc.jar
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-groovydoc.jar.md5
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-groovydoc.jar.sha1
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-javadoc.jar
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-javadoc.jar.md5
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-javadoc.jar.sha1
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-sources.jar
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-sources.jar.md5
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-sources.jar.sha1
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0.jar
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0.jar.md5
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0.jar.sha1
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0.pom
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0.pom.md5
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0.pom.sha1
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/maven-metadata.xml
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/maven-metadata.xml.md5
delete mode 100644 busMaven/com/blankj/bus-gradle-plugin/maven-metadata.xml.sha1
rename launcher/app/src/main/java/com/blankj/launcher/app/{UtilsApp.java => LauncherApp.java} (70%)
create mode 100644 lib/common/.gitignore
create mode 100644 lib/common/build.gradle
create mode 100644 lib/common/proguard-rules.pro
create mode 100644 lib/common/src/main/AndroidManifest.xml
create mode 100644 lib/common/src/main/java/com/blankj/lib/common/CommonApplication.java
create mode 100644 lib/common/src/main/java/com/blankj/lib/common/CommonBackActivity.java
create mode 100644 lib/common/src/main/java/com/blankj/lib/common/CommonConfig.java
rename lib/{base/src/main/java/com/blankj/lib/base/BaseDrawerActivity.java => common/src/main/java/com/blankj/lib/common/CommonDrawerActivity.java} (91%)
rename lib/{base/src/main/java/com/blankj/lib/base/BaseTaskActivity.java => common/src/main/java/com/blankj/lib/common/CommonTaskActivity.java} (65%)
rename lib/{base/src/main/java/com/blankj/lib/base/BaseTitleActivity.java => common/src/main/java/com/blankj/lib/common/CommonTitleActivity.java} (92%)
rename lib/{base => common}/src/main/res/anim/slide_in_left.xml (100%)
rename lib/{base => common}/src/main/res/anim/slide_in_right.xml (100%)
rename lib/{base => common}/src/main/res/anim/slide_out_left.xml (100%)
rename lib/{base => common}/src/main/res/anim/slide_out_right.xml (100%)
rename lib/{base => common}/src/main/res/drawable/base_back.png (100%)
rename lib/{base => common}/src/main/res/drawable/base_sel_button_bg.xml (100%)
rename lib/{base => common}/src/main/res/drawable/base_sel_button_txt_color.xml (100%)
rename lib/{base => common}/src/main/res/drawable/main_avatar_round.png (100%)
rename lib/{base => common}/src/main/res/drawable/main_bg_header.jpeg (100%)
rename lib/{base => common}/src/main/res/drawable/main_menu_blog.xml (100%)
rename lib/{base => common}/src/main/res/drawable/main_menu_github.xml (100%)
rename lib/{base/src/main/res/layout/activity_drawer.xml => common/src/main/res/layout/common_activity_drawer.xml} (93%)
rename lib/{base/src/main/res/layout/activity_drawer_nav_header.xml => common/src/main/res/layout/common_activity_drawer_nav_header.xml} (100%)
rename lib/{base/src/main/res/layout/activity_base_title.xml => common/src/main/res/layout/common_activity_title.xml} (91%)
rename lib/{base/src/main/res/layout/activity_base_title_stub_no_scroll.xml => common/src/main/res/layout/common_activity_title_stub_no_scroll.xml} (100%)
rename lib/{base/src/main/res/layout/activity_base_title_stub_scroll.xml => common/src/main/res/layout/common_activity_title_stub_scroll.xml} (100%)
rename lib/{base => common}/src/main/res/menu/main_drawer.xml (100%)
rename lib/{base => common}/src/main/res/mipmap-xhdpi/ic_launcher.png (100%)
rename lib/{base => common}/src/main/res/values/colors.xml (100%)
rename lib/{base => common}/src/main/res/values/dimens.xml (100%)
rename lib/{base => common}/src/main/res/values/strings.xml (100%)
rename lib/{base => common}/src/main/res/values/styles.xml (100%)
diff --git a/.gitignore b/.gitignore
index 193619553c..b9d244be48 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,3 @@
.externalNativeBuild
/apk
*.phrof
-/busMaven
diff --git a/busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-groovydoc.jar b/busMaven/com/blankj/bus-gradle-plugin/1.7.0/bus-gradle-plugin-1.7.0-groovydoc.jar
deleted file mode 100644
index 7670b105589206281d2d0aef0b72e1ec74b20a52..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 69018
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