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/159] 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/159] 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/159] 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/159] 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 @@ - - + + 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; + /** *- + +- - - - @@ -69,5 +69,5 @@ android:text="@string/sub_util" /> - -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 @@ -- \ 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"> -@@ -94,6 +93,6 @@ android:textSize="30pt" /> - +@@ -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: Sat, 29 Jun 2019 19:59:42 +0800 Subject: [PATCH 005/159] see 06/29 log --- .../test/java/com/blankj/utilcode/util/TimeUtilsTest.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/utilcode/lib/src/test/java/com/blankj/utilcode/util/TimeUtilsTest.java b/utilcode/lib/src/test/java/com/blankj/utilcode/util/TimeUtilsTest.java index 2ba0a41586..5ab8ee17eb 100644 --- a/utilcode/lib/src/test/java/com/blankj/utilcode/util/TimeUtilsTest.java +++ b/utilcode/lib/src/test/java/com/blankj/utilcode/util/TimeUtilsTest.java @@ -42,15 +42,14 @@ public class TimeUtilsTest { public void millis2String() { assertEquals(timeString, TimeUtils.millis2String(timeMillis)); assertEquals(timeStringFormat, TimeUtils.millis2String(timeMillis, mFormat)); - assertEquals("2017年05月04日", TimeUtils.millis2String(timeMillis, "yyyy年MM月dd日")); - assertEquals("16时37分", TimeUtils.millis2String(timeMillis, "HH时mm分")); + assertEquals(timeStringFormat, TimeUtils.millis2String(timeMillis, "yyyy MM dd HH:mm:ss")); } @Test public void string2Millis() { assertEquals(timeMillis, TimeUtils.string2Millis(timeString)); assertEquals(timeMillis, TimeUtils.string2Millis(timeStringFormat, mFormat)); - assertEquals(timeMillis, TimeUtils.string2Millis(timeStringFormat, "yyyy年MM月dd日HH时mm分")); + assertEquals(timeMillis, TimeUtils.string2Millis(timeStringFormat, "yyyy MM dd HH:mm:ss")); } @Test From c0dd366b78475336407c9eed645156e9f27951fc Mon Sep 17 00:00:00 2001 From: Blankj <625783482@qq.com> Date: Thu, 8 Aug 2019 04:19:33 +0800 Subject: [PATCH 006/159] see 08/08 log --- CHANGELOG.md | 3 + README-CN.md | 2 +- README.md | 2 +- buildApp.gradle | 1 + buildSrc/src/main/groovy/Config.groovy | 10 +- .../subutil/pkg/src/main/AndroidManifest.xml | 1 + .../feature/dangerous/DangerousActivity.kt | 7 +- .../subutil/pkg/helper/PermissionHelper.kt | 6 +- .../main/res/layout/activity_dangerous.xml | 9 +- .../pkg/src/main/res/values/strings.xml | 1 + .../utilcode/pkg/src/main/AndroidManifest.xml | 2 - .../utilcode/pkg/feature/bus/BusActivity.kt | 9 + .../pkg/feature/keyboard/KeyboardActivity.kt | 7 +- .../pkg/feature/phone/PhoneActivity.kt | 6 +- .../utilcode/pkg/helper/PermissionHelper.kt | 6 +- .../src/main/res/layout/activity_phone.xml | 7 - .../pkg/src/main/res/values/strings.xml | 1 - gradle.properties | 5 +- .../com/blankj/common/CommonBackActivity.java | 1 + .../blankj/subutil/util/DangerousUtils.java | 27 +++ lib/utilcode/README-CN.md | 4 +- lib/utilcode/README.md | 4 +- .../com/blankj/utilcode/util/BusUtils.java | 111 ++++++----- .../blankj/utilcode/util/EncryptUtils.java | 74 ++++---- .../blankj/utilcode/util/KeyboardUtils.java | 6 +- .../com/blankj/utilcode/util/PhoneUtils.java | 22 --- .../com/blankj/utilcode/util/ThreadUtils.java | 54 +++++- .../com/blankj/utilcode/util/BaseTest.java | 2 - .../blankj/utilcode/util/BusUtilsTest.java | 31 +++ .../utilcode/util/EncryptUtilsTest.java | 58 +++--- .../blankj/utilcode/util/ThreadUtilsTest.java | 28 +++ plugin/api-gradle-plugin/CHANGELOG.md | 2 +- plugin/api-gradle-plugin/README.md | 5 +- plugin/bus-gradle-plugin/CHANGELOG.md | 3 + plugin/bus-gradle-plugin/README.md | 13 +- .../java/com/blankj/bus/BusClassVisitor.java | 12 +- .../src/main/java/com/blankj/bus/BusInfo.java | 8 +- .../java/com/blankj/bus/BusTransform.groovy | 36 ++-- .../com/blankj/bus/BusUtilsClassVisitor.java | 33 ++-- .../src/test/java/com/blankj/bus/BusTest.java | 13 +- .../test/java/com/blankj/bus/BusUtils.java | 176 +++++++++++++----- 41 files changed, 535 insertions(+), 273 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc6b83293b..a8a8366d64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +* `19/08/08` [add] BusUtils#post tag support one-to-many. Publish v1.25.6. +* `19/08/04` [add] ThreadUtils#Task support timeout. +* `19/08/01` [upd] EncryptUtils#rsa. * `19/07/31` [add] DeviceUtils#getUniqueDeviceId, DeviceUtils#isSameDevice. Publish v1.25.5. * `19/07/30` [fix] ThreadUtils's task can only be executed once. PhoneUtils#getIMEI wrong. * `19/07/29` [fix] BusUtils post father class useless. KeyboardUtils#hideSoft bug. Publish v1.25.4. diff --git a/README-CN.md b/README-CN.md index 9d987223dd..84b461e817 100644 --- a/README-CN.md +++ b/README-CN.md @@ -45,7 +45,7 @@ [frame]: https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/auc_frame.png -[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.25.5-brightgreen.svg +[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.25.6-brightgreen.svg [auc]: https://github.com/Blankj/AndroidUtilCode [apiSvg]: https://img.shields.io/badge/API-14+-brightgreen.svg diff --git a/README.md b/README.md index ac7e693288..2390d7e667 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If this project helps you a lot and you want to support the project's developmen [frame]: https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/auc_frame.png -[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.25.5-brightgreen.svg +[aucSvg]: https://img.shields.io/badge/AndroidUtilCode-v1.25.6-brightgreen.svg [auc]: https://github.com/Blankj/AndroidUtilCode [apiSvg]: https://img.shields.io/badge/API-14+-brightgreen.svg diff --git a/buildApp.gradle b/buildApp.gradle index 1c87fdae14..a04514f1cd 100644 --- a/buildApp.gradle +++ b/buildApp.gradle @@ -29,6 +29,7 @@ android { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + applicationIdSuffix ".debug" } release { minifyEnabled true diff --git a/buildSrc/src/main/groovy/Config.groovy b/buildSrc/src/main/groovy/Config.groovy index 057aa69945..3a78bd7056 100644 --- a/buildSrc/src/main/groovy/Config.groovy +++ b/buildSrc/src/main/groovy/Config.groovy @@ -14,8 +14,8 @@ class Config { static compileSdkVersion = 28 static minSdkVersion = 14 static targetSdkVersion = 28 - static versionCode = 1_025_005 - static versionName = '1.25.5'// E.g. 1.9.72 => 1,009,072 + static versionCode = 1_025_006 + static versionName = '1.25.6'// E.g. 1.9.72 => 1,009,072 // lib version static kotlin_version = '1.3.10' @@ -29,7 +29,7 @@ class Config { static depConfig = [ plugin : [ - gradle : new DepConfig("com.android.tools.build:gradle:3.3.0"), + gradle : new DepConfig("com.android.tools.build:gradle:3.4.0"), kotlin : new DepConfig("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"), maven : new DepConfig("com.github.dcendents:android-maven-gradle-plugin:2.1"),// 上传到 maven bintray: new DepConfig("com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4"),// 上传到 bintray @@ -37,9 +37,9 @@ class Config { // 本地第一次上传插件新的版本需设置 useLocal = true, isApply = false // 本地上传成功之后 isApply = true 即可应用插件来调试,后续版本更新无需设置 isApply = false - // 发布版本的话把 useLocal = false, isApply = false,发布成功后 isApply = true 即可使用远程库版本 + // 发布版本的话把 useLocal = false, isApply = false,更新版本号,发布成功后 isApply = true 即可使用远程库版本 api : new DepConfig(false/*是否本地调试*/, "com.blankj:api-gradle-plugin:1.0", true/*是否使用插件*/), - bus : new DepConfig(false/*是否本地调试*/, "com.blankj:bus-gradle-plugin:2.0", true/*是否使用插件*/), + bus : new DepConfig(false/*是否本地调试*/, "com.blankj:bus-gradle-plugin:2.1", true/*是否使用插件*/), ], api_gradle_plugin: new DepConfig(":plugin:api-gradle-plugin", false), diff --git a/feature/subutil/pkg/src/main/AndroidManifest.xml b/feature/subutil/pkg/src/main/AndroidManifest.xml index ee03971457..3e6ea66c69 100644 --- a/feature/subutil/pkg/src/main/AndroidManifest.xml +++ b/feature/subutil/pkg/src/main/AndroidManifest.xml @@ -6,6 +6,7 @@ + diff --git a/feature/subutil/pkg/src/main/java/com/blankj/subutil/pkg/feature/dangerous/DangerousActivity.kt b/feature/subutil/pkg/src/main/java/com/blankj/subutil/pkg/feature/dangerous/DangerousActivity.kt index 627416e255..23022f378a 100644 --- a/feature/subutil/pkg/src/main/java/com/blankj/subutil/pkg/feature/dangerous/DangerousActivity.kt +++ b/feature/subutil/pkg/src/main/java/com/blankj/subutil/pkg/feature/dangerous/DangerousActivity.kt @@ -24,7 +24,7 @@ class DangerousActivity : CommonTitleActivity() { companion object { fun start(context: Context) { - PermissionHelper.requestStorage(object : PermissionHelper.OnPermissionGrantedListener { + PermissionHelper.requestStorageAndSms(object : PermissionHelper.OnPermissionGrantedListener { override fun onPermissionGranted() { val starter = Intent(context, DangerousActivity::class.java) context.startActivity(starter) @@ -64,7 +64,8 @@ class DangerousActivity : CommonTitleActivity() { dangerousShutdownBtn, dangerousRebootBtn, dangerousReboot2RecoveryBtn, - dangerousReboot2BootloaderBtn + dangerousReboot2BootloaderBtn, + dangerousSendSmsSilentBtn ) if (AppUtils.isAppSystem()) { @@ -111,6 +112,8 @@ class DangerousActivity : CommonTitleActivity() { R.id.dangerousRebootBtn -> DangerousUtils.reboot() R.id.dangerousReboot2RecoveryBtn -> DangerousUtils.reboot2Recovery() R.id.dangerousReboot2BootloaderBtn -> DangerousUtils.reboot2Bootloader() + R.id.dangerousReboot2BootloaderBtn -> DangerousUtils.reboot2Bootloader() + R.id.dangerousSendSmsSilentBtn -> DangerousUtils.sendSmsSilent("10000", "sendSmsSilent") } } } diff --git a/feature/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/PermissionHelper.kt b/feature/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/PermissionHelper.kt index 04864ce6d1..0ace31c34a 100644 --- a/feature/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/PermissionHelper.kt +++ b/feature/subutil/pkg/src/main/java/com/blankj/subutil/pkg/helper/PermissionHelper.kt @@ -14,9 +14,9 @@ import com.blankj.utilcode.util.PermissionUtils */ object PermissionHelper { - fun requestStorage(listener: OnPermissionGrantedListener, - deniedListener: OnPermissionDeniedListener) { - request(listener, deniedListener, PermissionConstants.STORAGE) + fun requestStorageAndSms(listener: OnPermissionGrantedListener, + deniedListener: OnPermissionDeniedListener) { + request(listener, deniedListener, PermissionConstants.STORAGE, PermissionConstants.SMS) } fun requestLocation(listener: OnPermissionGrantedListener, diff --git a/feature/subutil/pkg/src/main/res/layout/activity_dangerous.xml b/feature/subutil/pkg/src/main/res/layout/activity_dangerous.xml index 3d588ea326..8382fcadd1 100644 --- a/feature/subutil/pkg/src/main/res/layout/activity_dangerous.xml +++ b/feature/subutil/pkg/src/main/res/layout/activity_dangerous.xml @@ -55,11 +55,18 @@ android:layout_height="wrap_content" android:text="@string/dangerous_reboot_to_bootloader" /> + + + android:text="@string/dangerous_send_sms_silent" /> diff --git a/feature/subutil/pkg/src/main/res/values/strings.xml b/feature/subutil/pkg/src/main/res/values/strings.xml index f1b6807964..7e2ee1e5a0 100644 --- a/feature/subutil/pkg/src/main/res/values/strings.xml +++ b/feature/subutil/pkg/src/main/res/values/strings.xml @@ -21,5 +21,6 @@ Reboot Reboot To Recovery Reboot To Bootloader +Send SMS Silent Mobile Data Enabled \ No newline at end of file diff --git a/feature/utilcode/pkg/src/main/AndroidManifest.xml b/feature/utilcode/pkg/src/main/AndroidManifest.xml index 74d84c6d6d..26f28c9a8f 100644 --- a/feature/utilcode/pkg/src/main/AndroidManifest.xml +++ b/feature/utilcode/pkg/src/main/AndroidManifest.xml @@ -239,8 +239,6 @@- - diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt index 313389cc08..ec61faefdc 100644 --- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt +++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bus/BusActivity.kt @@ -1,5 +1,6 @@ package com.blankj.utilcode.pkg.feature.bus +import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.os.Bundle @@ -32,6 +33,14 @@ class BusActivity : CommonTitleActivity() { busAboutTv.text = param } + @SuppressLint("SetTextI18n") + @BusUtils.Bus(tag = TAG_BUS, priority = 1) + fun testSameTag(param: String) { + if (busAboutTv.text.toString().equals(TAG_BUS)) { + busAboutTv.text = "${busAboutTv.text} * 2" + } + } + @BusUtils.Bus(tag = TAG_STICKY_BUS, sticky = true) fun testSticky(callback: Callback?) { busAboutTv.text = callback?.call() diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/keyboard/KeyboardActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/keyboard/KeyboardActivity.kt index 22517a200b..ca5eec3f04 100644 --- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/keyboard/KeyboardActivity.kt +++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/keyboard/KeyboardActivity.kt @@ -3,7 +3,10 @@ package com.blankj.utilcode.pkg.feature.keyboard import android.content.Context import android.content.Intent import android.os.Bundle +import android.view.MotionEvent import android.view.View +import android.view.inputmethod.InputMethodManager +import android.widget.EditText import com.blankj.common.CommonTitleActivity import com.blankj.utilcode.pkg.R import com.blankj.utilcode.pkg.helper.DialogHelper @@ -82,9 +85,7 @@ class KeyboardActivity : CommonTitleActivity() { // if (ev.action == MotionEvent.ACTION_DOWN) { // val v = currentFocus // if (isShouldHideKeyboard(v, ev)) { -// val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager -// ?: return super.dispatchTouchEvent(ev) -// imm.hideSoftInputFromWindow(v.windowToken, InputMethodManager.HIDE_NOT_ALWAYS) +// KeyboardUtils.hideSoftInput(this); // } // } // return super.dispatchTouchEvent(ev) diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/phone/PhoneActivity.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/phone/PhoneActivity.kt index 86097a834a..f3dd07ff22 100644 --- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/phone/PhoneActivity.kt +++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/phone/PhoneActivity.kt @@ -23,7 +23,7 @@ class PhoneActivity : CommonTitleActivity() { companion object { fun start(context: Context) { - PermissionHelper.requestPhoneAndSms(object : PermissionHelper.OnPermissionGrantedListener { + PermissionHelper.requestPhone(object : PermissionHelper.OnPermissionGrantedListener { override fun onPermissionGranted() { val starter = Intent(context, PhoneActivity::class.java) context.startActivity(starter) @@ -64,8 +64,7 @@ class PhoneActivity : CommonTitleActivity() { applyDebouncingClickListener( phoneDialBtn, phoneCallBtn, - phoneSendSmsBtn, - phoneSendSmsSilentBtn + phoneSendSmsBtn ) } @@ -76,7 +75,6 @@ class PhoneActivity : CommonTitleActivity() { R.id.phoneDialBtn -> PhoneUtils.dial("10000") R.id.phoneCallBtn -> PhoneUtils.call("10000") R.id.phoneSendSmsBtn -> PhoneUtils.sendSms("10000", "sendSms") - R.id.phoneSendSmsSilentBtn -> PhoneUtils.sendSmsSilent("10000", "sendSmsSilent") } } } diff --git a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/PermissionHelper.kt b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/PermissionHelper.kt index b4c7af3d69..22c7483f54 100644 --- a/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/PermissionHelper.kt +++ b/feature/utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/helper/PermissionHelper.kt @@ -24,9 +24,9 @@ object PermissionHelper { request(listener, deniedListener, PermissionConstants.STORAGE) } - fun requestPhoneAndSms(listener: OnPermissionGrantedListener, - deniedListener: OnPermissionDeniedListener) { - request(listener, deniedListener, PermissionConstants.PHONE, PermissionConstants.SMS) + fun requestPhone(listener: OnPermissionGrantedListener, + deniedListener: OnPermissionDeniedListener) { + request(listener, deniedListener, PermissionConstants.PHONE) } private fun request(grantedListener: OnPermissionGrantedListener, diff --git a/feature/utilcode/pkg/src/main/res/layout/activity_phone.xml b/feature/utilcode/pkg/src/main/res/layout/activity_phone.xml index b319813eeb..22b3c19b38 100644 --- a/feature/utilcode/pkg/src/main/res/layout/activity_phone.xml +++ b/feature/utilcode/pkg/src/main/res/layout/activity_phone.xml @@ -33,11 +33,4 @@ android:layout_height="wrap_content" android:text="@string/phone_send_sms" /> - - diff --git a/feature/utilcode/pkg/src/main/res/values/strings.xml b/feature/utilcode/pkg/src/main/res/values/strings.xml index 8b1ae9144c..fc1aff1b3e 100644 --- a/feature/utilcode/pkg/src/main/res/values/strings.xml +++ b/feature/utilcode/pkg/src/main/res/values/strings.xml @@ -261,7 +261,6 @@ Dial Call Send SMS -Send SMS Silent Kill All Background Processes diff --git a/gradle.properties b/gradle.properties index 932a98194f..0b47c0ce81 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,4 +18,7 @@ org.gradle.daemon=true #org.gradle.configureondemand=true #org.gradle.parallel=true -#-Dorg.gradle.debug=true --no-daemon \ No newline at end of file +#-Dorg.gradle.debug=true --no-daemon + +gradle.publish.key=MJwR6d1wZZRgwtOpVAKIrwbJwEfOHZeT +gradle.publish.secret=quROE9JGWjAY8UP3wyEOuPZ5qtmwjG2w \ No newline at end of file diff --git a/lib/common/src/main/java/com/blankj/common/CommonBackActivity.java b/lib/common/src/main/java/com/blankj/common/CommonBackActivity.java index d070b7c886..e5e0fc9794 100644 --- a/lib/common/src/main/java/com/blankj/common/CommonBackActivity.java +++ b/lib/common/src/main/java/com/blankj/common/CommonBackActivity.java @@ -30,6 +30,7 @@ private void initSwipeBack() { final SwipePanel swipeLayout = new SwipePanel(this); swipeLayout.setLeftDrawable(R.drawable.base_back); swipeLayout.setLeftEdgeSize(SizeUtils.dp2px(100)); + swipeLayout.setLeftSwipeColor(getResources().getColor(R.color.colorPrimary)); swipeLayout.wrapView(findViewById(android.R.id.content)); swipeLayout.setOnFullSwipeListener(new SwipePanel.OnFullSwipeListener() { @Override diff --git a/lib/subutil/src/main/java/com/blankj/subutil/util/DangerousUtils.java b/lib/subutil/src/main/java/com/blankj/subutil/util/DangerousUtils.java index 3160b42282..771e5a1a04 100644 --- a/lib/subutil/src/main/java/com/blankj/subutil/util/DangerousUtils.java +++ b/lib/subutil/src/main/java/com/blankj/subutil/util/DangerousUtils.java @@ -1,11 +1,14 @@ package com.blankj.subutil.util; +import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.PowerManager; import android.support.annotation.RequiresPermission; +import android.telephony.SmsManager; import android.telephony.TelephonyManager; +import android.text.TextUtils; import android.util.Log; import com.blankj.utilcode.util.ShellUtils; @@ -13,8 +16,10 @@ import java.io.File; import java.lang.reflect.Method; +import java.util.List; import static android.Manifest.permission.MODIFY_PHONE_STATE; +import static android.Manifest.permission.SEND_SMS; /** *@@ -300,4 +305,26 @@ public static boolean setMobileDataEnabled(final boolean enabled) { } return false; } + + /** + * Send sms silently. + *Must hold {@code
+ * + * @param phoneNumber The phone number. + * @param content The content. + */ + @RequiresPermission(SEND_SMS) + public static void sendSmsSilent(final String phoneNumber, final String content) { + if (TextUtils.isEmpty(content)) return; + PendingIntent sentIntent = PendingIntent.getBroadcast(Utils.getApp(), 0, new Intent("send"), 0); + SmsManager smsManager = SmsManager.getDefault(); + if (content.length() >= 70) { + List} ms = smsManager.divideMessage(content); + for (String str : ms) { + smsManager.sendTextMessage(phoneNumber, null, str, sentIntent, null); + } + } else { + smsManager.sendTextMessage(phoneNumber, null, content, sentIntent, null); + } + } } diff --git a/lib/utilcode/README-CN.md b/lib/utilcode/README-CN.md index 94e0225ba8..3474129a95 100644 --- a/lib/utilcode/README-CN.md +++ b/lib/utilcode/README-CN.md @@ -2,10 +2,10 @@ Gradle: ```groovy -implementation 'com.blankj:utilcode:1.25.5' +implementation 'com.blankj:utilcode:1.25.6' // if u use AndroidX, use the following -implementation 'com.blankj:utilcodex:1.25.5' +implementation 'com.blankj:utilcodex:1.25.6' ``` diff --git a/lib/utilcode/README.md b/lib/utilcode/README.md index 0dd92dd69f..16a7f44628 100644 --- a/lib/utilcode/README.md +++ b/lib/utilcode/README.md @@ -2,10 +2,10 @@ Gradle: ```groovy -implementation 'com.blankj:utilcode:1.25.5' +implementation 'com.blankj:utilcode:1.25.6' // if u use AndroidX, use the following -implementation 'com.blankj:utilcodex:1.25.5' +implementation 'com.blankj:utilcodex:1.25.6' ``` diff --git a/lib/utilcode/src/main/java/com/blankj/utilcode/util/BusUtils.java b/lib/utilcode/src/main/java/com/blankj/utilcode/util/BusUtils.java index 899401cde2..269c384d3b 100644 --- a/lib/utilcode/src/main/java/com/blankj/utilcode/util/BusUtils.java +++ b/lib/utilcode/src/main/java/com/blankj/utilcode/util/BusUtils.java @@ -31,7 +31,7 @@ public final class BusUtils { private static final Object NULL = "nULl"; private static final String TAG = "BusUtils"; - private final Map mTag_BusInfoMap = new HashMap<>(); + private final Map > mTag_BusInfoListMap = new HashMap<>(); private final Map > mClassName_BusesMap = new ConcurrentHashMap<>(); private final Map > mClassName_TagsMap = new HashMap<>(); @@ -50,7 +50,18 @@ private void init() {/*inject*/} private void registerBus(String tag, String className, String funName, String paramType, String paramName, boolean sticky, String threadMode) { - mTag_BusInfoMap.put(tag, new BusInfo(className, funName, paramType, paramName, sticky, threadMode)); + registerBus(tag, className, funName, paramType, paramName, sticky, threadMode, 0); + } + + private void registerBus(String tag, + String className, String funName, String paramType, String paramName, + boolean sticky, String threadMode, int priority) { + List busInfoList = mTag_BusInfoListMap.get(tag); + if (busInfoList == null) { + busInfoList = new ArrayList<>(); + mTag_BusInfoListMap.put(tag, busInfoList); + } + busInfoList.add(new BusInfo(className, funName, paramType, paramName, sticky, threadMode, priority)); } public static void register(final Object bus) { @@ -87,7 +98,7 @@ public static String toString_() { @Override public String toString() { - return "BusUtils: " + mTag_BusInfoMap; + return "BusUtils: " + mTag_BusInfoListMap; } private static BusUtils getInstance() { @@ -112,15 +123,16 @@ private void registerInner(final Object bus) { tags = mClassName_TagsMap.get(className); if (tags == null) { tags = new ArrayList<>(); - for (Map.Entry entry : mTag_BusInfoMap.entrySet()) { - BusInfo value = entry.getValue(); - try { - if (Class.forName(value.className).isAssignableFrom(aClass)) { - tags.add(entry.getKey()); - value.classNames.add(className); + for (Map.Entry > entry : mTag_BusInfoListMap.entrySet()) { + for (BusInfo busInfo : entry.getValue()) { + try { + if (Class.forName(busInfo.className).isAssignableFrom(aClass)) { + tags.add(entry.getKey()); + busInfo.classNames.add(className); + } + } catch (ClassNotFoundException e) { + e.printStackTrace(); } - } catch (ClassNotFoundException e) { - e.printStackTrace(); } } mClassName_TagsMap.put(className, tags); @@ -158,19 +170,21 @@ private void postInner(final String tag, final Object arg) { } private void postInner(final String tag, final Object arg, final boolean sticky) { - BusInfo busInfo = mTag_BusInfoMap.get(tag); - if (busInfo == null) { + List busInfoList = mTag_BusInfoListMap.get(tag); + if (busInfoList == null) { Log.e(TAG, "The bus of tag <" + tag + "> is not exists."); return; } - if (busInfo.method == null) { - Method method = getMethodByBusInfo(busInfo); - if (method == null) { - return; + for (BusInfo busInfo : busInfoList) { + if (busInfo.method == null) { + Method method = getMethodByBusInfo(busInfo); + if (method == null) { + return; + } + busInfo.method = method; } - busInfo.method = method; + invokeMethod(tag, arg, busInfo, sticky); } - invokeMethod(tag, arg, busInfo, sticky); } private Method getMethodByBusInfo(BusInfo busInfo) { @@ -273,43 +287,47 @@ private void realInvokeMethod(final String tag, Object arg, BusInfo busInfo, boo } private void postStickyInner(final String tag, final Object arg) { - BusInfo busInfo = mTag_BusInfoMap.get(tag); - if (busInfo == null) { + List busInfoList = mTag_BusInfoListMap.get(tag); + if (busInfoList == null) { Log.e(TAG, "The bus of tag <" + tag + "> is not exists."); return; } - if (!busInfo.sticky) { // not sticky bus will post directly. - postInner(tag, arg); - return; - } - synchronized (mClassName_Tag_Arg4StickyMap) { - Map tagArgMap = mClassName_Tag_Arg4StickyMap.get(busInfo.className); - if (tagArgMap == null) { - tagArgMap = new HashMap<>(); - mClassName_Tag_Arg4StickyMap.put(busInfo.className, tagArgMap); + for (BusInfo busInfo : busInfoList) { + if (!busInfo.sticky) { // not sticky bus will post directly. + postInner(tag, arg); + return; + } + synchronized (mClassName_Tag_Arg4StickyMap) { + Map tagArgMap = mClassName_Tag_Arg4StickyMap.get(busInfo.className); + if (tagArgMap == null) { + tagArgMap = new HashMap<>(); + mClassName_Tag_Arg4StickyMap.put(busInfo.className, tagArgMap); + } + tagArgMap.put(tag, arg); } - tagArgMap.put(tag, arg); + postInner(tag, arg, true); } - postInner(tag, arg, true); } private void removeStickyInner(final String tag) { - BusInfo busInfo = mTag_BusInfoMap.get(tag); - if (busInfo == null) { + List busInfoList = mTag_BusInfoListMap.get(tag); + if (busInfoList == null) { Log.e(TAG, "The bus of tag <" + tag + "> is not exists."); return; } - if (!busInfo.sticky) { - Log.e(TAG, "The bus of tag <" + tag + "> is not sticky."); - return; - } - synchronized (mClassName_Tag_Arg4StickyMap) { - Map tagArgMap = mClassName_Tag_Arg4StickyMap.get(busInfo.className); - if (tagArgMap == null || !tagArgMap.containsKey(tag)) { - Log.e(TAG, "The sticky bus of tag <" + tag + "> didn't post."); + for (BusInfo busInfo : busInfoList) { + if (!busInfo.sticky) { + Log.e(TAG, "The bus of tag <" + tag + "> is not sticky."); return; } - tagArgMap.remove(tag); + synchronized (mClassName_Tag_Arg4StickyMap) { + Map tagArgMap = mClassName_Tag_Arg4StickyMap.get(busInfo.className); + if (tagArgMap == null || !tagArgMap.containsKey(tag)) { + Log.e(TAG, "The sticky bus of tag <" + tag + "> didn't post."); + return; + } + tagArgMap.remove(tag); + } } } @@ -321,17 +339,19 @@ private static final class BusInfo { String paramName; boolean sticky; String threadMode; + int priority; Method method; List classNames; BusInfo(String className, String funName, String paramType, String paramName, - boolean sticky, String threadMode) { + boolean sticky, String threadMode, int priority) { this.className = className; this.funName = funName; this.paramType = paramType; this.paramName = paramName; this.sticky = sticky; this.threadMode = threadMode; + this.priority = priority; this.classNames = new CopyOnWriteArrayList<>(); } @@ -342,6 +362,7 @@ public String toString() { ", sticky: " + sticky + ", threadMode: " + threadMode + ", method: " + method + + ", priority: " + priority + " }"; } } @@ -358,6 +379,8 @@ public enum ThreadMode { boolean sticky() default false; ThreadMode threadMode() default ThreadMode.POSTING; + + int priority() default 0; } private static class LazyHolder { diff --git a/lib/utilcode/src/main/java/com/blankj/utilcode/util/EncryptUtils.java b/lib/utilcode/src/main/java/com/blankj/utilcode/util/EncryptUtils.java index c7bf8a1ed9..d20ee711ad 100644 --- a/lib/utilcode/src/main/java/com/blankj/utilcode/util/EncryptUtils.java +++ b/lib/utilcode/src/main/java/com/blankj/utilcode/util/EncryptUtils.java @@ -975,96 +975,96 @@ private static byte[] symmetricTemplate(final byte[] data, * Return the Base64-encode bytes of RSA encryption. * * @param data The data. - * @param key The key. - * @param isPublicKey True to use public key, false to use private key. + * @param publicKey The public key. + * @param keySize The size of key, e.g. 1024, 2048... * @param transformation The name of the transformation, e.g., RSA/CBC/PKCS1Padding. * @return the Base64-encode bytes of RSA encryption */ public static byte[] encryptRSA2Base64(final byte[] data, - final byte[] key, - final boolean isPublicKey, + final byte[] publicKey, + final int keySize, final String transformation) { - return base64Encode(encryptRSA(data, key, isPublicKey, transformation)); + return base64Encode(encryptRSA(data, publicKey, keySize, transformation)); } /** * Return the hex string of RSA encryption. * * @param data The data. - * @param key The key. - * @param isPublicKey True to use public key, false to use private key. + * @param publicKey The public key. + * @param keySize The size of key, e.g. 1024, 2048... * @param transformation The name of the transformation, e.g., RSA/CBC/PKCS1Padding. * @return the hex string of RSA encryption */ public static String encryptRSA2HexString(final byte[] data, - final byte[] key, - final boolean isPublicKey, + final byte[] publicKey, + final int keySize, final String transformation) { - return bytes2HexString(encryptRSA(data, key, isPublicKey, transformation)); + return bytes2HexString(encryptRSA(data, publicKey, keySize, transformation)); } /** * Return the bytes of RSA encryption. * * @param data The data. - * @param key The key. - * @param isPublicKey True to use public key, false to use private key. + * @param publicKey The public key. + * @param keySize The size of key, e.g. 1024, 2048... * @param transformation The name of the transformation, e.g., RSA/CBC/PKCS1Padding. * @return the bytes of RSA encryption */ public static byte[] encryptRSA(final byte[] data, - final byte[] key, - final boolean isPublicKey, + final byte[] publicKey, + final int keySize, final String transformation) { - return rsaTemplate(data, key, isPublicKey, transformation, true); + return rsaTemplate(data, publicKey, keySize, transformation, true); } /** * Return the bytes of RSA decryption for Base64-encode bytes. * * @param data The data. - * @param key The key. - * @param isPublicKey True to use public key, false to use private key. + * @param privateKey The private key. + * @param keySize The size of key, e.g. 1024, 2048... * @param transformation The name of the transformation, e.g., RSA/CBC/PKCS1Padding. * @return the bytes of RSA decryption for Base64-encode bytes */ public static byte[] decryptBase64RSA(final byte[] data, - final byte[] key, - final boolean isPublicKey, + final byte[] privateKey, + final int keySize, final String transformation) { - return decryptRSA(base64Decode(data), key, isPublicKey, transformation); + return decryptRSA(base64Decode(data), privateKey, keySize, transformation); } /** * Return the bytes of RSA decryption for hex string. * * @param data The data. - * @param key The key. - * @param isPublicKey True to use public key, false to use private key. + * @param privateKey The private key. + * @param keySize The size of key, e.g. 1024, 2048... * @param transformation The name of the transformation, e.g., RSA/CBC/PKCS1Padding. * @return the bytes of RSA decryption for hex string */ public static byte[] decryptHexStringRSA(final String data, - final byte[] key, - final boolean isPublicKey, + final byte[] privateKey, + final int keySize, final String transformation) { - return decryptRSA(hexString2Bytes(data), key, isPublicKey, transformation); + return decryptRSA(hexString2Bytes(data), privateKey, keySize, transformation); } /** * Return the bytes of RSA decryption. * * @param data The data. - * @param key The key. - * @param isPublicKey True to use public key, false to use private key. + * @param privateKey The private key. + * @param keySize The size of key, e.g. 1024, 2048... * @param transformation The name of the transformation, e.g., RSA/CBC/PKCS1Padding. * @return the bytes of RSA decryption */ public static byte[] decryptRSA(final byte[] data, - final byte[] key, - final boolean isPublicKey, + final byte[] privateKey, + final int keySize, final String transformation) { - return rsaTemplate(data, key, isPublicKey, transformation, false); + return rsaTemplate(data, privateKey, keySize, transformation, false); } /** @@ -1072,14 +1072,14 @@ public static byte[] decryptRSA(final byte[] data, * * @param data The data. * @param key The key. - * @param isPublicKey True to use public key, false to use private key. + * @param keySize The size of key, e.g. 1024, 2048... * @param transformation The name of the transformation, e.g., DES/CBC/PKCS1Padding. * @param isEncrypt True to encrypt, false otherwise. * @return the bytes of RSA encryption or decryption */ private static byte[] rsaTemplate(final byte[] data, final byte[] key, - final boolean isPublicKey, + final int keySize, final String transformation, final boolean isEncrypt) { if (data == null || data.length == 0 || key == null || key.length == 0) { @@ -1087,7 +1087,7 @@ private static byte[] rsaTemplate(final byte[] data, } try { Key rsaKey; - if (isPublicKey) { + if (isEncrypt) { X509EncodedKeySpec keySpec = new X509EncodedKeySpec(key); rsaKey = KeyFactory.getInstance("RSA").generatePublic(keySpec); } else { @@ -1098,7 +1098,13 @@ private static byte[] rsaTemplate(final byte[] data, Cipher cipher = Cipher.getInstance(transformation); cipher.init(isEncrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, rsaKey); int len = data.length; - int maxLen = isEncrypt ? 117 : 128; + int maxLen = keySize / 8; + if (isEncrypt) { + String lowerTrans = transformation.toLowerCase(); + if (lowerTrans.endsWith("pkcs1padding")) { + maxLen -= 11; + } + } int count = len / maxLen; if (count > 0) { byte[] ret = new byte[0]; diff --git a/lib/utilcode/src/main/java/com/blankj/utilcode/util/KeyboardUtils.java b/lib/utilcode/src/main/java/com/blankj/utilcode/util/KeyboardUtils.java index af4d5999b6..28d79d41f8 100644 --- a/lib/utilcode/src/main/java/com/blankj/utilcode/util/KeyboardUtils.java +++ b/lib/utilcode/src/main/java/com/blankj/utilcode/util/KeyboardUtils.java @@ -279,11 +279,7 @@ public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus(); if (isShouldHideKeyboard(v, ev)) { - InputMethodManager imm = - (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(v.getWindowToken(), - InputMethodManager.HIDE_NOT_ALWAYS - ); + KeyboardUtils.hideSoftInput(this); } } return super.dispatchTouchEvent(ev); diff --git a/lib/utilcode/src/main/java/com/blankj/utilcode/util/PhoneUtils.java b/lib/utilcode/src/main/java/com/blankj/utilcode/util/PhoneUtils.java index 74f71db622..9cc13c0102 100644 --- a/lib/utilcode/src/main/java/com/blankj/utilcode/util/PhoneUtils.java +++ b/lib/utilcode/src/main/java/com/blankj/utilcode/util/PhoneUtils.java @@ -359,28 +359,6 @@ public static boolean sendSms(final String phoneNumber, final String content) { return false; } - /** - * Send sms silently. - * Must hold {@code
- * - * @param phoneNumber The phone number. - * @param content The content. - */ - @RequiresPermission(SEND_SMS) - public static void sendSmsSilent(final String phoneNumber, final String content) { - if (TextUtils.isEmpty(content)) return; - PendingIntent sentIntent = PendingIntent.getBroadcast(Utils.getApp(), 0, new Intent("send"), 0); - SmsManager smsManager = SmsManager.getDefault(); - if (content.length() >= 70) { - List} ms = smsManager.divideMessage(content); - for (String str : ms) { - smsManager.sendTextMessage(phoneNumber, null, str, sentIntent, null); - } - } else { - smsManager.sendTextMessage(phoneNumber, null, content, sentIntent, null); - } - } - private static TelephonyManager getTelephonyManager() { return (TelephonyManager) Utils.getApp().getSystemService(Context.TELEPHONY_SERVICE); } diff --git a/lib/utilcode/src/main/java/com/blankj/utilcode/util/ThreadUtils.java b/lib/utilcode/src/main/java/com/blankj/utilcode/util/ThreadUtils.java index f0f2901a25..6af32eb623 100644 --- a/lib/utilcode/src/main/java/com/blankj/utilcode/util/ThreadUtils.java +++ b/lib/utilcode/src/main/java/com/blankj/utilcode/util/ThreadUtils.java @@ -2,6 +2,7 @@ import android.os.Handler; import android.os.Looper; +import android.support.annotation.CallSuper; import android.support.annotation.IntRange; import android.support.annotation.NonNull; import android.util.Log; @@ -1155,12 +1156,15 @@ public abstract static class Task implements Runnable { private static final int COMPLETING = 3; private static final int CANCELLED = 4; private static final int INTERRUPTED = 5; + private static final int TIMEOUT = 6; private final AtomicInteger state = new AtomicInteger(NEW); private volatile boolean isSchedule; private volatile Thread runner; + private Timer mTimer; + private Executor deliver; public abstract T doInBackground() throws Throwable; @@ -1200,19 +1204,19 @@ public void run() { @Override public void run() { onSuccess(result); - removeTask(Task.this); + onDone(); } }); } } catch (InterruptedException ignore) { - state.set(INTERRUPTED); + state.compareAndSet(CANCELLED, INTERRUPTED); } catch (final Throwable throwable) { if (!state.compareAndSet(RUNNING, EXCEPTIONAL)) return; getDeliver().execute(new Runnable() { @Override public void run() { onFail(throwable); - removeTask(Task.this); + onDone(); } }); } @@ -1237,11 +1241,23 @@ public void cancel(boolean mayInterruptIfRunning) { @Override public void run() { onCancel(); - removeTask(Task.this); + onDone(); } }); } + private void timeout() { + synchronized (state) { + if (state.get() > RUNNING) return; + state.set(TIMEOUT); + } + if (runner != null) { + runner.interrupt(); + } + onDone(); + } + + public boolean isCanceled() { return state.get() >= CANCELLED; } @@ -1255,6 +1271,19 @@ public Task setDeliver(Executor deliver) { return this; } + public void setTimeout(final long timeoutMillis, final OnTimeoutListener listener) { + mTimer = new Timer(); + mTimer.schedule(new TimerTask() { + @Override + public void run() { + if (!isDone() && listener != null) { + timeout(); + listener.onTimeout(); + } + } + }, timeoutMillis); + } + private void setSchedule(boolean isSchedule) { this.isSchedule = isSchedule; } @@ -1265,6 +1294,19 @@ private Executor getDeliver() { } return deliver; } + + @CallSuper + protected void onDone() { + TASK_TASKINFO_MAP.remove(this); + if (mTimer != null) { + mTimer.cancel(); + mTimer = null; + } + } + + public interface OnTimeoutListener { + void onTimeout(); + } } private static Executor getGlobalDeliver() { @@ -1281,10 +1323,6 @@ public void execute(@NonNull Runnable command) { return sDeliver; } - private static void removeTask(final Task task) { - TASK_TASKINFO_MAP.remove(task); - } - private static class TaskInfo { private TimerTask mTimerTask; private ExecutorService mService; diff --git a/lib/utilcode/src/test/java/com/blankj/utilcode/util/BaseTest.java b/lib/utilcode/src/test/java/com/blankj/utilcode/util/BaseTest.java index 29bd357c46..0f551202aa 100644 --- a/lib/utilcode/src/test/java/com/blankj/utilcode/util/BaseTest.java +++ b/lib/utilcode/src/test/java/com/blankj/utilcode/util/BaseTest.java @@ -38,8 +38,6 @@ public void execute(@NonNull Runnable command) { } }); Utils.init(RuntimeEnvironment.application); - ReflectUtils getInstance = ReflectUtils.reflect(BusUtils.class).method("getInstance"); - getInstance.method("registerBus", "base", BaseTest.class.getName(), "noParamFun", "int", "i", false, "POSTING"); } @Test diff --git a/lib/utilcode/src/test/java/com/blankj/utilcode/util/BusUtilsTest.java b/lib/utilcode/src/test/java/com/blankj/utilcode/util/BusUtilsTest.java index 77f91e8775..89877a1314 100644 --- a/lib/utilcode/src/test/java/com/blankj/utilcode/util/BusUtilsTest.java +++ b/lib/utilcode/src/test/java/com/blankj/utilcode/util/BusUtilsTest.java @@ -3,7 +3,12 @@ import org.junit.Before; import org.junit.Test; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; /** * @@ -30,6 +35,11 @@ public void noParamFun() { System.out.println("noParam"); } + @BusUtils.Bus(tag = TAG_NO_PARAM) + public void noParamSameTagFun() { + System.out.println("sameTag: noParam"); + } + @BusUtils.Bus(tag = TAG_ONE_PARAM) public void oneParamFun(String param) { System.out.println(param); @@ -96,6 +106,8 @@ public void testMultiThread() { // } // }).start(); // } +// CountDownLatch countDownLatch = new CountDownLatch(1); +// BusUtils.register(test); // for (int i = 0; i < 100; i++) { // new Thread(new Runnable() { // @Override @@ -104,6 +116,12 @@ public void testMultiThread() { // } // }).start(); // } +// try { +// countDownLatch.await(1, TimeUnit.SECONDS); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } +// BusUtils.unregister(test); // for (int i = 0; i < 100; i++) { // new Thread(new Runnable() { // @Override @@ -241,12 +259,25 @@ public void toString_() { @Test public void testBase() { + ReflectUtils getInstance = ReflectUtils.reflect(BusUtils.class).method("getInstance"); + getInstance.method("registerBus", "base", BaseTest.class.getName(), "noParamFun", "int", "i", false, "POSTING"); + BaseTest t = new BusUtilsTest(); BusUtils.register(t); BusUtils.post("base", 1); BusUtils.unregister(t); } + @Test + public void testSameTag() { + ReflectUtils.reflect(BusUtils.class).method("getInstance") + .method("registerBus", TAG_NO_PARAM, BusUtilsTest.class.getName(), "noParamSameTagFun", "", "", false, "POSTING", 2); + BusUtilsTest test = new BusUtilsTest(); + BusUtils.register(test); + BusUtils.post(TAG_NO_PARAM); + BusUtils.unregister(test); + } + public interface Callback { String call(); } diff --git a/lib/utilcode/src/test/java/com/blankj/utilcode/util/EncryptUtilsTest.java b/lib/utilcode/src/test/java/com/blankj/utilcode/util/EncryptUtilsTest.java index b18d692573..60ac8d4911 100644 --- a/lib/utilcode/src/test/java/com/blankj/utilcode/util/EncryptUtilsTest.java +++ b/lib/utilcode/src/test/java/com/blankj/utilcode/util/EncryptUtilsTest.java @@ -1,6 +1,7 @@ package com.blankj.utilcode.util; import android.util.Base64; +import android.util.Pair; import org.junit.Assert; import org.junit.Test; @@ -376,27 +377,34 @@ public void decryptAES() { ); } - private String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWuAuSCrzUXC1l4ixXBeBfotUtkALrAjLM5UHiVfOFHrRJHM41HSeHVm56UZHgJlwk80R8juu1ykuhkgrilTv7H+3MpZdIunvndDElgdgk8aI2Ip4GUlemUDvCtWd3ychWEh4kYQ8CeInQvNM08imoLFldvbjWt/IkGK+BcGzamQIDAQAB"; - private String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJa4C5IKvNRcLWXiLFcF4F+i1S2QAusCMszlQeJV84UetEkczjUdJ4dWbnpRkeAmXCTzRHyO67XKS6GSCuKVO/sf7cyll0i6e+d0MSWB2CTxojYingZSV6ZQO8K1Z3fJyFYSHiRhDwJ4idC80zTyKagsWV29uNa38iQYr4FwbNqZAgMBAAECgYAxV1k6W1eMMg0OsKeRabQVuwoNG3tJEnQtDdSu0zKg3vdohAyh6MR7EvmiA7g86HH8CsPd/y/9WJe/8j6sBO0Ye9gt7eyQ2NiwWvlTuwNmngcSTapVvVI6NEyJFMfQt9PB1EHLNAXlz8jtJUyA7C48jReQD9p/SzAP0VxG7lwyMQJBAOjE7hAZ/6fyP3DB1fG7jr9gONZcz3TUaqx6BUn4GKZnckW08ht9Xqcqft5Hthu8BbLM9ptQ0U8QZekrJwD6ya0CQQClwstZMPu8jLhsgugVwodcG1mPEOiw9Yjnmt9+WTI07Ll2uFv//hRXBnahBBnZbucUYEbUY3kqUX9b3e9TmEodAkEAybPMbxt4VDoxCy6Mi/pxChkBZ4/pHV3sSiU6bAyWn6vIc+sGWRfca5MBePA/N+1IKtY9Y/02QwL8rH5+P/URyQJAL/hdjORGFdzLimuf6pwvPBKWKncEQCHuisghIZmClBpl2duklELddAnkztg2+tvDd/wcw14+NGb9aoKhvhl2aQJAbvcgoPU+xs0CjeexH+TS2S/jKkTRpvP2CpPK/k71m13xWdE8RtMkYY1measRmlIwOfWze7ll/PGT4dxWf31FNg=="; - private String dataRSA = "BlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBla12345678"; - @Test - public void encryptDecryptRSA() { - try { - genKeyPair(); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } + public void encryptDecryptRSA() throws Exception { + int keySize = 1024; + PairpublicPrivateKey = genKeyPair(keySize); + + String publicKey = publicPrivateKey.first; + String privateKey = publicPrivateKey.second; + String dataRSA = "BlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBlankjBl"; + System.out.println("publicKeyBase64:" + publicKey); + System.out.println("privateKeyBase64:" + privateKey); + + System.out.println(EncryptUtils.encryptRSA2HexString( + dataRSA.getBytes(), + base64Decode(publicKey.getBytes()), + keySize, + "RSA/None/PKCS1Padding" + )); + assertArrayEquals(EncryptUtils.decryptRSA( EncryptUtils.encryptRSA( dataRSA.getBytes(), base64Decode(publicKey.getBytes()), - true, - "RSA/ECB/PKCS1Padding" + keySize, + "RSA/None/PKCS1Padding" ), base64Decode(privateKey.getBytes()), - false, - "RSA/ECB/PKCS1Padding" + keySize, + "RSA/None/PKCS1Padding" ), dataRSA.getBytes()); } @@ -443,13 +451,25 @@ private static int hex2Int(final char hexChar) { } } - private static void genKeyPair() throws NoSuchAlgorithmException { + private Pair genKeyPair(int size) throws NoSuchAlgorithmException { + + if (size == 1024) { + return Pair.create( + "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYHGvdORdwsK5i+s9rKaMPL1O5eDK2XwNHRUWaxmGB/cxLxeinJrrqdAN+mME7XtGN9bklnOR3MUBQLVnWIn/IU0pnIJY9DpPTVc7x+1zFb8UUq1N0BBo/NpUG5olxuQULuAAHZOg28pnP/Pcb5XVEvpNKL0HaWjN8pu/Dzf8gZwIDAQAB", + "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJgca905F3CwrmL6z2spow8vU7l4MrZfA0dFRZrGYYH9zEvF6Kcmuup0A36YwTte0Y31uSWc5HcxQFAtWdYif8hTSmcglj0Ok9NVzvH7XMVvxRSrU3QEGj82lQbmiXG5BQu4AAdk6Dbymc/89xvldUS+k0ovQdpaM3ym78PN/yBnAgMBAAECgYAFdX+pgNMGiFC53KZ1AhmIAfrPPTEUunQzqpjE5Tm6oJEkZwXiedFbeK5nbLQCnXSH07nBT9AjNvFH71i6BqLvT1l3/ezPq9pmRPriHfWQQ3/J3ASf1O9F9CkYbq/s/qqkXEFcl8PdYQV0xU/kS4jZPP+60Lv3sPkLg2DpkhM+AQJBANTl+/v6sBqqQSS0Anl5nE15Ck3XGBcq0nvATHfFkJYtG9rrXz3ZoRATLxF1iJYwGSAtirhev9W7qFayjci0ztcCQQC25/kkFbeMEWT6/kyV8wcPIog1mKy8RVB9+2l6C8AzbWBPZYtLlB7uaGSJeZBTEGfvRYzpFm5xO0JqwCfDddjxAkBmxtgM3wqg9MwaAeSn6/Nu2x4EUfBJTtzp7P19XJzeQsyNtM73ttYwQnKYhRr5FiMrC5FKTENj1QIBSJV17QNlAkAL5cUAAuWgl9UQuo/yxQ81fdKMYfUCfiPBPiRbSv5imf/Eyl8oOGdWrLW1d5HaxVttZgHHe60NcoRce0la3oSRAkAe8OqLsm9ryXNvBtZxSG+1JUvePVxpRSlJdZIAUKxN6XQE0S9aEe/IkNDBgVeiUEtop76R2NkkGtGTwzbzl0gm" + ); + } else if (size == 2048) { + return Pair.create( + "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjLLeJZIO7dfQKb6tHE+TlhvD1m3UdTefKvl4uNQboDXy2ztgPcksjLDXxsT+znxMBh4RpXxfVPgnrcSLewGVhTb3uXh9sWo6tvvshNaMKBTebaZePhE7grq+LHH3NILscVssK24rDSvIquZ4nUbDipF/Iscge4LwnypcCuun/3RCn4HYzXW+0YFFZC8Vq4zabIxtzzkvgZlAlvuD6tT76Uuo5kD8b36yYNALI+ZStOj283wlL8PgyyitRGaqCH+MjWYqDb5C0DN31kcoSU7ARTGWgNNAoexAdNujkBvVRFyR2cH9FpjJDu18Oa8v9uSjlRftVWPj0OQXE7vRUsrrawIDAQAB", + "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCMst4lkg7t19Apvq0cT5OWG8PWbdR1N58q+Xi41BugNfLbO2A9ySyMsNfGxP7OfEwGHhGlfF9U+CetxIt7AZWFNve5eH2xajq2++yE1owoFN5tpl4+ETuCur4scfc0guxxWywrbisNK8iq5nidRsOKkX8ixyB7gvCfKlwK66f/dEKfgdjNdb7RgUVkLxWrjNpsjG3POS+BmUCW+4Pq1PvpS6jmQPxvfrJg0Asj5lK06PbzfCUvw+DLKK1EZqoIf4yNZioNvkLQM3fWRyhJTsBFMZaA00Ch7EB026OQG9VEXJHZwf0WmMkO7Xw5ry/25KOVF+1VY+PQ5BcTu9FSyutrAgMBAAECggEAHJQ4i2kfnzA3GEOi5h1D3TnGjcfBYA3sRs5ltyVedyx+KAnngqVaZzmEmtto5ohY6OUysGqS8q91X9aMfm/T7zs7FnFjFqZ9Rq3lXRY3YezbQWqJuhHGBMfp2R1NGV1+qYfbcPbvx70dBZnK5id5kKv9JxNLhcsTFUGFcLJtbXXixY2CGiS/dIbFvFHGMbAz3+9l9HXaL4AS7KQXvnauwJW1a5vIAVFYZVBj0qY9Viy2vq6ShH+9pdxOSsWBt08WpxIhjkTr+ZkFck67la2Jn0SBlClB0FIygTqbAmsM3p1nqcR55jdx3hfs31rIfM1Rx5epMm48KYErb2ktowngAQKBgQDL9FEumMMagPy4+EjR1puFHNvADlAi8tIUNt1W5zKKnd+T6gYGn8nqiiy5pvwLLUp8JISmq50tMC3cgAPw+G4kIe5zoBO2EU9X6aPhMd/ScUlVdk0IzEMXa3kMAOjOInWvoevJ4cwWcBPH2aRuDg5wZdh3TpB9LQP4uQ0QHwmE3wKBgQCwmkL6rJDrNo1GNUsjw+WIsXkuS3PYJahbg/uhRdGSsX2BRIPQVCRJP7MkgaUMhZRilt1ROfQy4d2BPxTxvUiGJcKfpsW8xi39PrYWZC5TvEA839q39Uak+ISCsYtZaHk5dvzmE9nF5gv0ivjCr81N2/1KwXO8VmNofzWUqNd+9QKBgQCs39QICRgm2Ppd1qXyp1N/SuzBJ+CpHuUOmUqXpLRkZljiSVT+PGar1J8AZhfxaVxfSZzeoUxCxzm4UxIEKK9DFTfG7gKHKrj0LWfpM5siB0A/nlzBflHIAiLCF+s8/lx+mGMB5dBVnH5HwaTsXCHFB66pwgAa+hMJueDmr0gkRQKBgDKhd1Rwxvd4Y1ZejxVI43SmFOzt2t98JGFgXHLnFmdtFWNLJlNC3EhXx99Of+gwH9OIFxljeRxhXuTgFfwcXT+AceTdplExrBuvr/qJbDK7hNsu/oDBBCjlyu/BQQc4CZEtCOJZjJTNGF5avWjrh/urd1nITosPZV6fIdhl86pFAoGAfOwK0Wte6gO5glAHP9RNktDeyFJCfFH1KUFiAG7XUww6bRpL2fEAqBIcDVgsS565ihxDSbUjgQgg/Ckh2+iBrwf1K9ViO4XUuwWqRS26rn4Is/W5kbPtnC4HS5cQIH1aWi3xUMJcWxV4ZrwiMVdw91leYWC0IbXC/yrc/PBW+sE=" + ); + } SecureRandom secureRandom = new SecureRandom(); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); - keyPairGenerator.initialize(1024, secureRandom); + keyPairGenerator.initialize(size, secureRandom); KeyPair keyPair = keyPairGenerator.generateKeyPair(); @@ -463,10 +483,6 @@ private static void genKeyPair() throws NoSuchAlgorithmException { String publicKeyBase64 = EncodeUtils.base64Encode2String(publicKeyBytes); String privateKeyBase64 = EncodeUtils.base64Encode2String(privateKeyBytes); - System.out.println("publicKeyBase64.length():" + publicKeyBase64.length()); - System.out.println("publicKeyBase64:" + publicKeyBase64); - - System.out.println("privateKeyBase64.length():" + privateKeyBase64.length()); - System.out.println("privateKeyBase64:" + privateKeyBase64); + return Pair.create(publicKeyBase64, privateKeyBase64); } } \ No newline at end of file diff --git a/lib/utilcode/src/test/java/com/blankj/utilcode/util/ThreadUtilsTest.java b/lib/utilcode/src/test/java/com/blankj/utilcode/util/ThreadUtilsTest.java index 1041022f53..e49e0b0f1f 100644 --- a/lib/utilcode/src/test/java/com/blankj/utilcode/util/ThreadUtilsTest.java +++ b/lib/utilcode/src/test/java/com/blankj/utilcode/util/ThreadUtilsTest.java @@ -402,6 +402,34 @@ public void onFail(Throwable t) { countDownLatch.await(); } + @Test + public void testTimeout() throws InterruptedException { + CountDownLatch latch = new CountDownLatch(1); + ThreadUtils.SimpleTask task = new ThreadUtils.SimpleTask () { + @Override + public Boolean doInBackground() throws Throwable { + System.out.println("doInBackground start"); + Thread.sleep(2000); + System.out.println("doInBackground end"); + return null; + } + + @Override + public void onSuccess(Boolean result) { + System.out.println("onSuccess"); + } + }; + task.setTimeout(1000, new ThreadUtils.Task.OnTimeoutListener() { + @Override + public void onTimeout() { + System.out.println("onTimeout"); + } + }); + ThreadUtils.executeByCached(task); + + latch.await(3, TimeUnit.SECONDS); + } + abstract static class TestScheduledTask extends ThreadUtils.Task { private static final AtomicInteger ATOMIC_INTEGER = new AtomicInteger(); diff --git a/plugin/api-gradle-plugin/CHANGELOG.md b/plugin/api-gradle-plugin/CHANGELOG.md index 18e81dfdb9..6dc7341833 100644 --- a/plugin/api-gradle-plugin/CHANGELOG.md +++ b/plugin/api-gradle-plugin/CHANGELOG.md @@ -1,4 +1,4 @@ # Change Log -## v1.0(2019/07/) +## v1.0(2019/07/20) 发布初版本 \ No newline at end of file diff --git a/plugin/api-gradle-plugin/README.md b/plugin/api-gradle-plugin/README.md index 80ab54dc90..516145f0af 100644 --- a/plugin/api-gradle-plugin/README.md +++ b/plugin/api-gradle-plugin/README.md @@ -351,4 +351,7 @@ public abstract static class BaseApi { 这段代码很好理解,而且加了同步锁操作,防止多线程生成多个 `impl`,然后,根据传进来的 `api` 的 class,我们通过注入的 `map` 中找到具体的 `impl` 的 class,如果缓存中有就取缓存中的,没有的话就通过 `newInstance` 来实例化一个 `impl`,并放入缓存中,最终返回其 `impl`。因为是通过 `newInstance` 来实例化 `impl`,这也解释了为什么 `impl` 中需保留无参构造函数,而且只有在使用时才会初始化,而不是一股脑把所有的 `api` 都初始化。 -简易实用,不到 100 行代码实现模块间跳转的 `ApiUtils` 已介绍完毕,接下来你就可以小试牛刀了。 \ No newline at end of file +简易实用,不到 100 行代码实现模块间跳转的 `ApiUtils` 已介绍完毕,接下来你就可以小试牛刀了。 + + +## [Change Log](https://github.com/Blankj/AndroidUtilCode/blob/master/plugin/api-gradle-plugin/CHANGELOG.md) \ No newline at end of file diff --git a/plugin/bus-gradle-plugin/CHANGELOG.md b/plugin/bus-gradle-plugin/CHANGELOG.md index 765a05ace6..19885a70c7 100644 --- a/plugin/bus-gradle-plugin/CHANGELOG.md +++ b/plugin/bus-gradle-plugin/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log +## v2.1 +支持 Tag 一对多,同 Tag 可设置事件优先级 + ## v2.0 更改为 EventBus 模式 diff --git a/plugin/bus-gradle-plugin/README.md b/plugin/bus-gradle-plugin/README.md index 2843f3fb21..ed5d87567e 100644 --- a/plugin/bus-gradle-plugin/README.md +++ b/plugin/bus-gradle-plugin/README.md @@ -19,7 +19,7 @@ buildscript { dependencies { ... - classpath 'com.blankj:bus-gradle-plugin:2.0' + classpath 'com.blankj:bus-gradle-plugin:2.1' } } ``` @@ -36,10 +36,10 @@ apply plugin: "com.blankj.bus" api "com.blankj:utilcode:latest_version ``` -如果你单纯只想引入 `BusUtils` 也是可以的,需要你自己拷贝一份这个类放到你工程里,记得还要拷贝 `ThreadUtils` 哦,然后在 app 下的 `build.gradle` 中 配置 bus 的 SDL 域如下所示: +如果你单纯只想引入 `BusUtils` 也是可以的,需要你自己拷贝一份这个类放到你工程里,记得还要拷贝 `ThreadUtils` 哦,然后在 app 下的 `build.gradle` 中 配置 bus 的 DSL 域如下所示: ```groovy -api { +bus { busUtilsClass "com.xxx.xxx.BusUtils" } @@ -425,7 +425,7 @@ public void compareUnregister10000Times() { } ``` -同理,如果两个 bus 的 `Tag` 相同了,也会编译不过,提示你项目中存在 `Tag` 相同的 bus。 +~~同理,如果两个 bus 的 `Tag` 相同了,也会编译不过,提示你项目中存在 `Tag` 相同的 bus。~~(2.1 版本已支持 Tag 一对多及事件优先级) 所以,`BusUtils` 比 `EventBus` 更友好。 @@ -749,4 +749,7 @@ private void unregisterInner(final Object bus) { } ``` -`unregister` 和 `register` 相反,就是从 `mClassName_BusesMap` 的 value 集合中移除,同样需要对 `mClassName_BusesMap` 加锁哦。 \ No newline at end of file +`unregister` 和 `register` 相反,就是从 `mClassName_BusesMap` 的 value 集合中移除,同样需要对 `mClassName_BusesMap` 加锁哦。 + + +## [Change Log](https://github.com/Blankj/AndroidUtilCode/blob/master/plugin/bus-gradle-plugin/CHANGELOG.md) \ No newline at end of file diff --git a/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusClassVisitor.java b/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusClassVisitor.java index d36ef54253..e72130d14f 100644 --- a/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusClassVisitor.java +++ b/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusClassVisitor.java @@ -62,6 +62,8 @@ public void visit(String name, Object value) {// 可获取注解的值 tag = (String) value; } else if ("sticky".equals(name) && (Boolean) value) { busInfo.sticky = true; + } else if ("priority".equals(name)) { + busInfo.priority = (int) value; } } @@ -84,7 +86,6 @@ public void visitLocalVariable(String name, String desc, String signature, Label if ("this".equals(name)) { return; } - System.out.println("funParamDesc: " + funParamDesc + ", desc: " + desc); funParamDesc = funParamDesc.substring(desc.length());// 每次去除参数直到为 "",那么之后的就不是参数了 busInfo.paramsInfo.add(new BusInfo.ParamsInfo(Type.getType(desc).getClassName(), name)); if (busInfo.isParamSizeNoMoreThanOne && busInfo.paramsInfo.size() > 1) { @@ -101,15 +102,6 @@ public void visitEnd() { if (infoList == null) { infoList = new ArrayList<>(); mBusMap.put(tag, infoList); - } else if (infoList.size() == 0) { - mBusMap.put(tag, infoList); - } else if (infoList.size() == 1) { - BusInfo info0 = infoList.get(0); - info0.isTagRepeat = true; - - busInfo.isTagRepeat = true; - } else { - busInfo.isTagRepeat = true; } infoList.add(busInfo); } diff --git a/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusInfo.java b/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusInfo.java index f272d7e971..060c5b866e 100644 --- a/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusInfo.java +++ b/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusInfo.java @@ -18,8 +18,8 @@ public class BusInfo { public List paramsInfo; // 参数列表信息 public boolean sticky; // 是否粘性 public String threadMode; // 线程模式 + public int priority; // 优先级 public boolean isParamSizeNoMoreThanOne; // 参数是否不多于 1 个 - public boolean isTagRepeat; // 是否存在相同的 tag public BusInfo(String className, String funName) { this.className = className; @@ -27,8 +27,8 @@ public BusInfo(String className, String funName) { paramsInfo = new ArrayList<>(); sticky = false; threadMode = "POSTING"; + priority = 0; isParamSizeNoMoreThanOne = true; - isTagRepeat = false; } @Override @@ -37,8 +37,8 @@ public String toString() { return "{ desc: " + className + "#" + funName + "(" + paramsInfoString.substring(1, paramsInfoString.length() - 1) + ")" + (!sticky ? "" : ", sticky: true") + - ", threadMode: " + threadMode + - (!isTagRepeat ? "" : ", isTagRepeat: true") + + (threadMode.equals("POSTING") ? "" : ", threadMode: " + threadMode) + + (priority == 0 ? "" : ", priority: " + priority) + (isParamSizeNoMoreThanOne ? "" : ", paramSize: " + paramsInfo.size()) + " }"; } diff --git a/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusTransform.groovy b/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusTransform.groovy index 76b252c7b3..cfe7b54313 100755 --- a/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusTransform.groovy +++ b/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusTransform.groovy @@ -101,22 +101,32 @@ class BusTransform extends Transform { if (busScan.busMap.isEmpty()) { LogUtils.l("no bus.") } else { - Map rightBus = [:] - Map wrongBus = [:] busScan.busMap.each { String tag, List infoList -> - if (infoList.size() == 1) { - BusInfo busInfo = infoList.get(0) - if (busInfo.isParamSizeNoMoreThanOne) { - rightBus.put(tag, busInfo.toString()) - } else { - wrongBus.put(tag, busInfo.toString()) + infoList.sort(new Comparator () { + @Override + int compare(BusInfo t0, BusInfo t1) { + return t1.priority - t0.priority } - } else { - List infoString = [] - infoList.each { BusInfo info -> - infoString.add(info.toString()) + }) + } + + Map > rightBus = [:] + Map > wrongBus = [:] + busScan.busMap.each { String tag, List infoList -> + List rightInfoString = [] + List wrongInfoString = [] + infoList.each { BusInfo info -> + if (info.isParamSizeNoMoreThanOne) { + rightInfoString.add(info.toString()) + } else { + wrongInfoString.add(info.toString()) } - wrongBus.put(tag, infoString) + } + if (!rightInfoString.isEmpty()) { + rightBus.put(tag, rightInfoString) + } + if (!wrongInfoString.isEmpty()) { + wrongBus.put(tag, wrongInfoString) } } Map busDetails = [:] diff --git a/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusUtilsClassVisitor.java b/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusUtilsClassVisitor.java index 46544dbe8e..97523cd645 100644 --- a/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusUtilsClassVisitor.java +++ b/plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusUtilsClassVisitor.java @@ -53,23 +53,24 @@ protected void onMethodExit(int opcode) { super.onMethodExit(opcode); for (Map.Entry > busEntry : mBusMap.entrySet()) { List infoList = busEntry.getValue(); - if (infoList.size() != 1) continue; - BusInfo busInfo = infoList.get(0); - if (!busInfo.isParamSizeNoMoreThanOne) continue; - mv.visitVarInsn(ALOAD, 0); - mv.visitLdcInsn(busEntry.getKey()); - mv.visitLdcInsn(busInfo.className); - mv.visitLdcInsn(busInfo.funName); - if (busInfo.paramsInfo.size() == 1) { - mv.visitLdcInsn(busInfo.paramsInfo.get(0).className); - mv.visitLdcInsn(busInfo.paramsInfo.get(0).name); - } else { - mv.visitLdcInsn(""); - mv.visitLdcInsn(""); + for (BusInfo busInfo : infoList) { + if (!busInfo.isParamSizeNoMoreThanOne) continue; + mv.visitVarInsn(ALOAD, 0); + mv.visitLdcInsn(busEntry.getKey()); + mv.visitLdcInsn(busInfo.className); + mv.visitLdcInsn(busInfo.funName); + if (busInfo.paramsInfo.size() == 1) { + mv.visitLdcInsn(busInfo.paramsInfo.get(0).className); + mv.visitLdcInsn(busInfo.paramsInfo.get(0).name); + } else { + mv.visitLdcInsn(""); + mv.visitLdcInsn(""); + } + mv.visitInsn(busInfo.sticky ? ICONST_1 : ICONST_0); + mv.visitLdcInsn(busInfo.threadMode); + mv.visitIntInsn(SIPUSH, busInfo.priority); + mv.visitMethodInsn(INVOKESPECIAL, mBusUtilsClass, "registerBus", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;I)V", false); } - mv.visitInsn(busInfo.sticky ? ICONST_1 : ICONST_0); - mv.visitLdcInsn(busInfo.threadMode); - mv.visitMethodInsn(INVOKESPECIAL, mBusUtilsClass, "registerBus", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)V", false); } } }; diff --git a/plugin/bus-gradle-plugin/src/test/java/com/blankj/bus/BusTest.java b/plugin/bus-gradle-plugin/src/test/java/com/blankj/bus/BusTest.java index 27d8b0dea6..d253d2a4d4 100644 --- a/plugin/bus-gradle-plugin/src/test/java/com/blankj/bus/BusTest.java +++ b/plugin/bus-gradle-plugin/src/test/java/com/blankj/bus/BusTest.java @@ -9,6 +9,7 @@ import java.io.File; import java.io.IOException; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -33,8 +34,8 @@ public void noParamFun() { System.out.println("noParam"); } - @BusUtils.Bus(tag = TAG_NO_PARAM) - public void sameTagFun() { + @BusUtils.Bus(tag = TAG_NO_PARAM, priority = 1) + public void sameTagP1Fun() { System.out.println("noParam"); } @@ -89,6 +90,14 @@ private static Map > getBuses() throws IOException { ClassVisitor cv = new BusClassVisitor(cw, busMap, BusUtils.class.getName()); cr.accept(cv, ClassReader.SKIP_FRAMES); + for (List value : busMap.values()) { + value.sort(new Comparator () { + @Override + public int compare(BusInfo t0, BusInfo t1) { + return t1.priority - t0.priority; + } + }); + } System.out.println("busMap = " + busMap); return busMap; } diff --git a/plugin/bus-gradle-plugin/src/test/java/com/blankj/bus/BusUtils.java b/plugin/bus-gradle-plugin/src/test/java/com/blankj/bus/BusUtils.java index e37688eab9..4f7dfd37ff 100644 --- a/plugin/bus-gradle-plugin/src/test/java/com/blankj/bus/BusUtils.java +++ b/plugin/bus-gradle-plugin/src/test/java/com/blankj/bus/BusUtils.java @@ -6,10 +6,14 @@ import java.lang.annotation.Target; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; /** @@ -25,8 +29,10 @@ public final class BusUtils { private static final Object NULL = "nULl"; private static final String TAG = "BusUtils"; + private final Map > mTag_BusInfoListMap = new HashMap<>(); + private final Map > mClassName_BusesMap = new ConcurrentHashMap<>(); - private final Map mTag_BusInfoMap = new HashMap<>(); + private final Map > mClassName_TagsMap = new HashMap<>(); private final Map > mClassName_Tag_Arg4StickyMap = new ConcurrentHashMap<>(); private BusUtils() { @@ -42,7 +48,18 @@ private void init() {/*inject*/} private void registerBus(String tag, String className, String funName, String paramType, String paramName, boolean sticky, String threadMode) { - mTag_BusInfoMap.put(tag, new BusInfo(className, funName, paramType, paramName, sticky, threadMode)); + registerBus(tag, className, funName, paramType, paramName, sticky, threadMode, 0); + } + + private void registerBus(String tag, + String className, String funName, String paramType, String paramName, + boolean sticky, String threadMode, int priority) { + List busInfoList = mTag_BusInfoListMap.get(tag); + if (busInfoList == null) { + busInfoList = new ArrayList<>(); + mTag_BusInfoListMap.put(tag, busInfoList); + } + busInfoList.add(new BusInfo(className, funName, paramType, paramName, sticky, threadMode, priority)); } public static void register(final Object bus) { @@ -79,7 +96,7 @@ public static String toString_() { @Override public String toString() { - return "BusUtils: " + mTag_BusInfoMap; + return "BusUtils: " + mTag_BusInfoListMap; } private static BusUtils getInstance() { @@ -88,7 +105,8 @@ private static BusUtils getInstance() { private void registerInner(final Object bus) { if (bus == null) return; - String className = bus.getClass().getName(); + Class aClass = bus.getClass(); + String className = aClass.getName(); synchronized (mClassName_BusesMap) { Set