From 1e350cfd0f81870c36780b1a6d08b5db9d80bb41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Wed, 7 Jan 2026 18:53:42 +0800 Subject: [PATCH 01/28] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=8B=E7=9B=9F=20SD?= =?UTF-8?q?K=20=E7=9A=84=E7=99=BB=E5=BD=95=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/hjq/umeng/sdk/UmengClient.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/library/umengSdk/src/main/java/com/hjq/umeng/sdk/UmengClient.java b/library/umengSdk/src/main/java/com/hjq/umeng/sdk/UmengClient.java index 07d55421..db5cacb9 100644 --- a/library/umengSdk/src/main/java/com/hjq/umeng/sdk/UmengClient.java +++ b/library/umengSdk/src/main/java/com/hjq/umeng/sdk/UmengClient.java @@ -97,10 +97,12 @@ public static void login(@NonNull Activity activity, @NonNull Platform platform, } try { - // 删除旧的第三方登录授权 - UMShareAPI.get(activity).deleteOauth(activity, platform.getThirdParty(), null); - // 要先等上面的代码执行完毕之后 - Thread.sleep(200); + if (UMShareAPI.get(activity).isAuthorize(activity, platform.getThirdParty())) { + // 删除旧的第三方登录授权 + UMShareAPI.get(activity).deleteOauth(activity, platform.getThirdParty(), null); + // 要先等上面的代码执行完毕之后 + Thread.sleep(200); + } // 开启新的第三方登录授权 UMShareAPI.get(activity).getPlatformInfo(activity, platform.getThirdParty(), new UmengLogin.LoginListenerWrapper(platform.getThirdParty(), listener)); } catch (InterruptedException e) { From 0bd00e3601add8cdf3c8147c13ebc706bdc73c0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Wed, 4 Feb 2026 19:15:41 +0800 Subject: [PATCH 02/28] =?UTF-8?q?=E8=A1=A5=E5=85=85=20AndroidCmdTools=20?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=9A=84=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9d48ea6e..5da3fd1c 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,8 @@ * 嵌套滚动布局框架:[NestedScrollLayout](https://github.com/getActivity/NestedScrollLayout) ![](https://img.shields.io/github/stars/getActivity/NestedScrollLayout.svg) ![](https://img.shields.io/github/forks/getActivity/NestedScrollLayout.svg) +* Android 命令行工具集:[AndroidCmdTools](https://github.com/getActivity/AndroidCmdTools) ![](https://img.shields.io/github/stars/getActivity/AndroidCmdTools.svg) ![](https://img.shields.io/github/forks/getActivity/AndroidCmdTools.svg) + * Android 版本适配:[AndroidVersionAdapter](https://github.com/getActivity/AndroidVersionAdapter) ![](https://img.shields.io/github/stars/getActivity/AndroidVersionAdapter.svg) ![](https://img.shields.io/github/forks/getActivity/AndroidVersionAdapter.svg) * Android 代码规范:[AndroidCodeStandard](https://github.com/getActivity/AndroidCodeStandard) ![](https://img.shields.io/github/stars/getActivity/AndroidCodeStandard.svg) ![](https://img.shields.io/github/forks/getActivity/AndroidCodeStandard.svg) From a5d6501408f1459f6de0b507c52efd65b12a7ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Sat, 7 Feb 2026 20:41:00 +0800 Subject: [PATCH 03/28] =?UTF-8?q?=E5=85=B3=E9=97=AD=20R8=20=E5=85=A8?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E9=81=BF=E5=85=8D=E5=8F=8D=E5=B0=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=A2=AB=E8=BF=87=E5=BA=A6=E4=BC=98=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 10158240..c324c2de 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,4 +21,7 @@ android.useAndroidX = true android.enableJetifier = true # Use transitive R class for backward compatibility with old code -android.nonTransitiveRClass=false \ No newline at end of file +android.nonTransitiveRClass=false + +# Turn off the full mode of R8 to prevent the reflection code from being overly optimized +android.enableR8.fullMode=false \ No newline at end of file From 3e102b581b9d9f98d96e55080a219e8a3a8e2264 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Mon, 9 Feb 2026 13:48:25 +0800 Subject: [PATCH 04/28] =?UTF-8?q?=E4=BC=98=E5=8C=96=20Git=20=E5=AF=B9?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E6=96=87=E4=BB=B6=E7=9A=84=E6=8D=A2=E8=A1=8C?= =?UTF-8?q?=E7=AC=A6=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..e4801e66 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +*.sh text eol=lf +*.command text eol=lf +*.bat text eol=crlf \ No newline at end of file From 954eb968606a2580b9a0416e7680224ced8e6cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Sun, 29 Mar 2026 18:33:04 +0800 Subject: [PATCH 05/28] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=97=AA=E5=B1=8F?= =?UTF-8?q?=E9=A1=B5=E6=A0=87=E7=AD=BE=E6=8E=A7=E4=BB=B6=E7=9A=84=E5=91=BD?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hjq/demo/ui/activity/SplashActivity.java | 10 +++++----- app/src/main/res/layout/splash_activity.xml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/hjq/demo/ui/activity/SplashActivity.java b/app/src/main/java/com/hjq/demo/ui/activity/SplashActivity.java index 2e1078e6..8e6f3fd1 100644 --- a/app/src/main/java/com/hjq/demo/ui/activity/SplashActivity.java +++ b/app/src/main/java/com/hjq/demo/ui/activity/SplashActivity.java @@ -33,7 +33,7 @@ public final class SplashActivity extends AppActivity { private LottieAnimationView mLottieView; - private SlantedTextView mDebugView; + private SlantedTextView mBuildTypeView; @Override protected int getLayoutId() { @@ -43,7 +43,7 @@ protected int getLayoutId() { @Override protected void initView() { mLottieView = findViewById(R.id.lav_splash_lottie); - mDebugView = findViewById(R.id.iv_splash_debug); + mBuildTypeView = findViewById(R.id.iv_splash_build_type); // 设置动画监听 mLottieView.addAnimatorListener(new AnimatorListenerAdapter() { @@ -78,11 +78,11 @@ public void onCancel(@NonNull BaseDialog dialog) { @Override protected void initData() { - mDebugView.setText(AppConfig.getBuildType().toUpperCase()); if (AppConfig.isDebug()) { - mDebugView.setVisibility(View.VISIBLE); + mBuildTypeView.setVisibility(View.VISIBLE); + mBuildTypeView.setText(AppConfig.getBuildType().toUpperCase()); } else { - mDebugView.setVisibility(View.INVISIBLE); + mBuildTypeView.setVisibility(View.INVISIBLE); } if (true) { diff --git a/app/src/main/res/layout/splash_activity.xml b/app/src/main/res/layout/splash_activity.xml index 9fb07ea9..64e2fd7b 100644 --- a/app/src/main/res/layout/splash_activity.xml +++ b/app/src/main/res/layout/splash_activity.xml @@ -19,7 +19,7 @@ app:lottie_rawRes="@raw/welcome" /> Date: Thu, 30 Apr 2026 16:58:30 +0800 Subject: [PATCH 06/28] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=BC=94=E7=A4=BA?= =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E4=B8=AD=E8=A7=86=E9=A2=91=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=92=AD=E6=94=BE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hjq/demo/ui/fragment/home/HomeMineFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/hjq/demo/ui/fragment/home/HomeMineFragment.java b/app/src/main/java/com/hjq/demo/ui/fragment/home/HomeMineFragment.java index 604c35b7..887d2638 100644 --- a/app/src/main/java/com/hjq/demo/ui/fragment/home/HomeMineFragment.java +++ b/app/src/main/java/com/hjq/demo/ui/fragment/home/HomeMineFragment.java @@ -189,8 +189,8 @@ public void onCancel() { } new VideoPlayActivity.Builder() - .setVideoTitle("速度与激情特别行动") - .setVideoSource("http://vfx.mtime.cn/Video/2019/06/29/mp4/190629004821240734.mp4") + .setVideoTitle("动物世界") + .setVideoSource("http://vjs.zencdn.net/v/oceans.mp4") .setActivityOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) .start(activity); From 84dcc55cd68b2cd442e2ffd91152e841f12190f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 17:00:36 +0800 Subject: [PATCH 07/28] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E7=95=8C=E9=9D=A2=E5=9C=A8=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E6=8C=96=E5=AD=94=E6=9C=BA=E5=9E=8B=E7=9A=84=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res-common/layout/widget_player_view.xml | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/app/src/main/res-common/layout/widget_player_view.xml b/app/src/main/res-common/layout/widget_player_view.xml index b3b1dc35..54d454ab 100644 --- a/app/src/main/res-common/layout/widget_player_view.xml +++ b/app/src/main/res-common/layout/widget_player_view.xml @@ -16,7 +16,6 @@ - + android:fitsSystemWindows="true"> + + + @@ -125,7 +131,7 @@ android:id="@+id/tv_player_view_total_time" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingHorizontal="@dimen/dp_5" + android:layout_marginEnd="@dimen/dp_15" android:textColor="@color/white" android:textSize="@dimen/sp_14" tools:text="10:00" /> From 25f13807aaccee539d7bbb5d9ba4ab62a202362b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 17:02:51 +0800 Subject: [PATCH 08/28] =?UTF-8?q?=E5=88=A0=E9=99=A4=20gradle-wrapper.prope?= =?UTF-8?q?rties=20=E6=96=87=E4=BB=B6=E4=B8=AD=E7=9A=84=E6=97=A0=E6=95=88?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/wrapper/gradle-wrapper.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 70c3ec21..01a808cd 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,5 +3,4 @@ zipStorePath=wrapper/dists distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists #distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-all.zip -# ??????????????????????????? Gradle ?????????????????????? distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-9.2.1-all.zip \ No newline at end of file From 87fcdc6b6746d5cb0e6d90f284d90cf171eaddbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 17:32:50 +0800 Subject: [PATCH 09/28] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9C=81=E5=B8=82?= =?UTF-8?q?=E5=8C=BA=20Json=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res-common/raw/province.json | 29 ++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/app/src/main/res-common/raw/province.json b/app/src/main/res-common/raw/province.json index 96bba259..d7be929f 100644 --- a/app/src/main/res-common/raw/province.json +++ b/app/src/main/res-common/raw/province.json @@ -5092,6 +5092,7 @@ "岳普湖县", "伽师县", "巴楚县", + "岑岭县", "塔什库尔干塔吉克自治县" ] }, @@ -5105,7 +5106,9 @@ "洛浦县", "策勒县", "于田县", - "民丰县" + "民丰县", + "和康县", + "和安县" ] }, { @@ -5288,6 +5291,30 @@ "一三一团", "一三七团" ] + }, + { + "name": "新星市", + "area": [ + "新星市核心区", + "二道湖镇", + "骆驿镇", + "黄田镇" + ] + }, + { + "name": "白杨市", + "area": [ + "一六一团小白杨镇", + "一六三团富兴镇镇", + "一六四团金玉", + "一六五团锦绣镇" + ] + }, + { + "name": "草湖市", + "area": [ + "草湖镇" + ] } ] }, From 5a2783e09d5dd28b186b9747bff65fa691c126fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 17:37:24 +0800 Subject: [PATCH 10/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20Toaster=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=88=B0=2015.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 23c08f62..39b6a0a2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ material = "1.13.0" deviceCompat = "2.5" xxPermissions = "28.0" titleBar = "10.8" -toaster = "13.8" +toaster = "15.0" easyHttp = "13.5" okHttp = "5.3.0" gsonFactory = "10.5" From e06637d20f2ee128b641cddb7c4fcd7bc230c7b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 17:40:23 +0800 Subject: [PATCH 11/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20XXPermissions=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=88=B0=2028.2=20=E5=8D=87=E7=BA=A7=20Devic?= =?UTF-8?q?eCompat=20=E7=89=88=E6=9C=AC=E5=88=B0=202.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 39b6a0a2..0ca68160 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,8 +6,8 @@ easyLauncher = "6.4.1" appCompat = "1.7.1" material = "1.13.0" -deviceCompat = "2.5" -xxPermissions = "28.0" +deviceCompat = "2.6" +xxPermissions = "28.2" titleBar = "10.8" toaster = "15.0" easyHttp = "13.5" From e374a98b9f227ed3ae3d95a270f5a4360c189d6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 17:52:49 +0800 Subject: [PATCH 12/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20Glide=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=88=B0=205.0.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0ca68160..51df80f8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ gson = "2.13.2" shapeView = "10.0" shapeDrawable = "3.3" nestedScrollLayout = "2.0" -glide = "5.0.5" +glide = "5.0.7" immersionBar = "3.2.2" photoView = "2.3.0" bugly = "4.4.7.3" From 6195421398ae283ebe781267174cfe3b3f3b97c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 17:56:59 +0800 Subject: [PATCH 13/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20Bugly=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=88=B0=204.4.7.8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 51df80f8..97bc5a4d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ nestedScrollLayout = "2.0" glide = "5.0.7" immersionBar = "3.2.2" photoView = "2.3.0" -bugly = "4.4.7.3" +bugly = "4.4.7.8" lottie = "6.7.1" refreshLayout = "3.0.0-alpha" timber = "4.7.1" From 543469b3ec129571d667e0d6da33620433ca1d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 18:00:12 +0800 Subject: [PATCH 14/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20MMKV=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=88=B0=202.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 97bc5a4d..aceb9e40 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,7 +25,7 @@ lottie = "6.7.1" refreshLayout = "3.0.0-alpha" timber = "4.7.1" circleIndicator = "2.1.6" -mmkv = "2.3.0" +mmkv = "2.4.0" leakCanary = "3.0-alpha-8" chucker = "4.2.0" softInputEvent = "1.0.9" From 6c89437f340ed92620731719697736936269f72d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 18:03:19 +0800 Subject: [PATCH 15/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20Chucker=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=88=B0=204.3.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index aceb9e40..a7952033 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ timber = "4.7.1" circleIndicator = "2.1.6" mmkv = "2.4.0" leakCanary = "3.0-alpha-8" -chucker = "4.2.0" +chucker = "4.3.1" softInputEvent = "1.0.9" umengCommon = "9.8.8" umengAsms = "1.8.7.2" From 49a1599168faea86d08120ab3b7b643c04b64828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 18:10:30 +0800 Subject: [PATCH 16/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20UmengCommon=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=88=B0=209.9.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a7952033..4928e767 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,7 +29,7 @@ mmkv = "2.4.0" leakCanary = "3.0-alpha-8" chucker = "4.3.1" softInputEvent = "1.0.9" -umengCommon = "9.8.8" +umengCommon = "9.9.1" umengAsms = "1.8.7.2" umengShareCore = "7.3.7" umengShareWX = "7.3.7" From 2372485011c4fb6d3184096bca433ce38678cbde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Thu, 30 Apr 2026 18:22:13 +0800 Subject: [PATCH 17/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20Kotlin=20=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E7=89=88=E6=9C=AC=E5=88=B0=202.3.21?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4928e767..b599878f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] agp = "8.13.2" -kotlin = "2.2.21" +kotlin = "2.3.21" androidAop = "2.7.4" easyLauncher = "6.4.1" From 87bd15636a5dd1d8c8ddc33558d93d72c8605180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Fri, 1 May 2026 16:11:19 +0800 Subject: [PATCH 18/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20NestedScrollLayout?= =?UTF-8?q?=20=E7=89=88=E6=9C=AC=E5=88=B0=203.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b599878f..72a9d480 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,7 +16,7 @@ gsonFactory = "10.5" gson = "2.13.2" shapeView = "10.0" shapeDrawable = "3.3" -nestedScrollLayout = "2.0" +nestedScrollLayout = "3.0" glide = "5.0.7" immersionBar = "3.2.2" photoView = "2.3.0" From 92a38b16d1ce25ec3f2d9f571d25b61c62f102da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Fri, 1 May 2026 19:20:20 +0800 Subject: [PATCH 19/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20ShapeView=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=88=B0=2011.0=20=E5=8D=87=E7=BA=A7=20Shape?= =?UTF-8?q?Drawable=20=E7=89=88=E6=9C=AC=E5=88=B0=205.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 72a9d480..d73874f2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,8 +14,8 @@ easyHttp = "13.5" okHttp = "5.3.0" gsonFactory = "10.5" gson = "2.13.2" -shapeView = "10.0" -shapeDrawable = "3.3" +shapeView = "11.0" +shapeDrawable = "5.0" nestedScrollLayout = "3.0" glide = "5.0.7" immersionBar = "3.2.2" From d91c2d2ff5c063d561a338becaecb2225613e6da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Sat, 2 May 2026 00:55:34 +0800 Subject: [PATCH 20/28] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=88=B0=20Glide=205.0.5=20=E5=8F=8A=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=BC=9A=E6=8A=A5=E6=9F=90=E4=B8=AA=20JDK=20?= =?UTF-8?q?=E7=B1=BB=E6=89=BE=E4=B8=8D=E5=88=B0=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common.gradle | 12 +++++++++--- gradle/libs.versions.toml | 4 ++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/common.gradle b/common.gradle index 5524f6b4..fc01edcc 100644 --- a/common.gradle +++ b/common.gradle @@ -12,10 +12,14 @@ android { versionCode 10 } - // 支持 Java JDK 8 compileOptions { - targetCompatibility JavaVersion.VERSION_1_8 - sourceCompatibility JavaVersion.VERSION_1_8 + // 允许项目代码使用 Java 21 的新语法 + sourceCompatibility JavaVersion.VERSION_21 + // 编译后的字节码适配 Java 21 虚拟机,为了兼容安卓低版本系统 ART + targetCompatibility JavaVersion.VERSION_21 + // 开启 JDK 核心库脱糖:把高版本 JDK 新增的类 (如 java.time) 打包进 apk,让安卓低版本手机也能正常运行不闪退 + // https://developer.android.google.cn/studio/write/java8-support-table?hl=zh-cn + coreLibraryDesugaringEnabled true } // 设置存放 so 文件的目录 @@ -69,4 +73,6 @@ dependencies { implementation libs.appCompat implementation libs.material + + coreLibraryDesugaring libs.desugarJdkLibs } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d73874f2..ea921eb0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,6 +6,7 @@ easyLauncher = "6.4.1" appCompat = "1.7.1" material = "1.13.0" +desugarJdkLibs = "2.0.4" deviceCompat = "2.6" xxPermissions = "28.2" titleBar = "10.8" @@ -57,6 +58,9 @@ appCompat = { module = "androidx.appcompat:appcompat", version.ref = "appCompat" # 项目主页:https://github.com/material-components/material-components-android material = { module = "com.google.android.material:material", version.ref = "material" } +# JDK 8+ API 反向兼容库:https://developer.android.com/studio/write/java8-support +desugarJdkLibs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugarJdkLibs" } + # 设备兼容框架:统一设备品牌、系统等差异 https://github.com/getActivity/DeviceCompat deviceCompat = { module = "com.github.getActivity:DeviceCompat", version.ref = "deviceCompat" } # 权限请求框架:https://github.com/getActivity/XXPermissions From a6892e5ca19d9c26a17a812e4a79c865112c6e7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Sat, 2 May 2026 01:06:13 +0800 Subject: [PATCH 21/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20AOP=20=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E7=89=88=E6=9C=AC=E5=88=B0=202.7.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ea921eb0..c2a6fdd6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] agp = "8.13.2" kotlin = "2.3.21" -androidAop = "2.7.4" +androidAop = "2.7.5" easyLauncher = "6.4.1" appCompat = "1.7.1" From cc8cc94dc139461663c858031bdbef778745520d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Wed, 6 May 2026 21:29:29 +0800 Subject: [PATCH 22/28] =?UTF-8?q?=E4=BC=98=E5=8C=96=20PermissionDescriptio?= =?UTF-8?q?n=20=E7=B1=BB=E5=BB=B6=E8=BF=9F=E6=89=A7=E8=A1=8C=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hjq/demo/permission/PermissionDescription.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/hjq/demo/permission/PermissionDescription.java b/app/src/main/java/com/hjq/demo/permission/PermissionDescription.java index abaf5681..8f2a40a8 100644 --- a/app/src/main/java/com/hjq/demo/permission/PermissionDescription.java +++ b/app/src/main/java/com/hjq/demo/permission/PermissionDescription.java @@ -5,9 +5,6 @@ import android.content.Context; import android.content.res.Configuration; import android.graphics.Point; -import android.os.Handler; -import android.os.Looper; -import android.os.SystemClock; import android.util.DisplayMetrics; import android.view.Display; import android.view.Gravity; @@ -22,6 +19,7 @@ import com.hjq.permissions.OnPermissionDescription; import com.hjq.permissions.permission.PermissionPageType; import com.hjq.permissions.permission.base.IPermission; +import com.hjq.permissions.tools.PermissionTaskHandler; import java.util.List; /** @@ -32,9 +30,6 @@ */ public final class PermissionDescription implements OnPermissionDescription { - /** 消息处理 Handler 对象 */ - public static final Handler HANDLER = new Handler(Looper.getMainLooper()); - /** 权限请求描述弹窗显示类型:Dialog */ private static final int DESCRIPTION_WINDOW_TYPE_DIALOG = 0; /** 权限请求描述弹窗显示类型:PopupWindow */ @@ -103,13 +98,13 @@ public void onRequestPermissionStart(@NonNull Activity activity, @NonNull List requestList) { // 移除跟这个 Token 有关但是没有还没有执行的消息 - HANDLER.removeCallbacksAndMessages(mHandlerToken); + PermissionTaskHandler.cancelTask(mHandlerToken); // 销毁当前正在显示的弹窗 dismissPopupWindow(); dismissDialog(); From 831239c50bcf705d13b17edefbdb8f01b178019a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Tue, 30 Jun 2026 12:47:26 +0800 Subject: [PATCH 23/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20Kotlin=20=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E7=89=88=E6=9C=AC=E5=88=B0=202.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c2a6fdd6..ddee4c46 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] agp = "8.13.2" -kotlin = "2.3.21" +kotlin = "2.4.0" androidAop = "2.7.5" easyLauncher = "6.4.1" From 2bd7b56e110abab015a6856ddeee05cd01952000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Tue, 30 Jun 2026 12:56:14 +0800 Subject: [PATCH 24/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20XXPermissions=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=88=B0=2028.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hjq/demo/permission/PermissionInterceptor.java | 4 ++-- gradle/libs.versions.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/hjq/demo/permission/PermissionInterceptor.java b/app/src/main/java/com/hjq/demo/permission/PermissionInterceptor.java index 00c97f21..00a59889 100644 --- a/app/src/main/java/com/hjq/demo/permission/PermissionInterceptor.java +++ b/app/src/main/java/com/hjq/demo/permission/PermissionInterceptor.java @@ -33,7 +33,7 @@ public void onRequestPermissionEnd(@NonNull Activity activity, boolean skipReque @NonNull List deniedList, @Nullable OnPermissionCallback callback) { if (callback != null) { - callback.onResult(grantedList, deniedList); + callback.onPermissionResult(grantedList, deniedList); } if (deniedList.isEmpty()) { @@ -80,7 +80,7 @@ private void showPermissionSettingDialog(@NonNull Activity activity, return; } // 用户全部授权了,回调成功给外层监听器,免得用户还要再发起权限申请 - callback.onResult(requestList, latestDeniedList); + callback.onPermissionResult(requestList, latestDeniedList); }); }) .show(); diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ddee4c46..31fb2def 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ appCompat = "1.7.1" material = "1.13.0" desugarJdkLibs = "2.0.4" deviceCompat = "2.6" -xxPermissions = "28.2" +xxPermissions = "28.3" titleBar = "10.8" toaster = "15.0" easyHttp = "13.5" From e2a02723cfb9b347f86031095606a21af88c5ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Tue, 30 Jun 2026 13:05:12 +0800 Subject: [PATCH 25/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20AOP=20=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E7=89=88=E6=9C=AC=E5=88=B0=202.7.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 31fb2def..c69f0930 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] agp = "8.13.2" kotlin = "2.4.0" -androidAop = "2.7.5" +androidAop = "2.7.6" easyLauncher = "6.4.1" appCompat = "1.7.1" From 2e527bb13ff6b3d0d03975f7201513eea6adeae7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Tue, 30 Jun 2026 13:16:56 +0800 Subject: [PATCH 26/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=8F=8B=E7=9B=9F?= =?UTF-8?q?=E5=85=AC=E5=85=B1=E5=BA=93=E7=89=88=E6=9C=AC=E5=88=B0=209.9.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c69f0930..ec9ec0cf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,7 @@ mmkv = "2.4.0" leakCanary = "3.0-alpha-8" chucker = "4.3.1" softInputEvent = "1.0.9" -umengCommon = "9.9.1" +umengCommon = "9.9.2" umengAsms = "1.8.7.2" umengShareCore = "7.3.7" umengShareWX = "7.3.7" From cd250849502af6dcedbfc694fedf77dbdbbe9619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Mon, 6 Jul 2026 00:32:33 +0800 Subject: [PATCH 27/28] =?UTF-8?q?=E5=88=A0=E9=99=A4=20StatusAdapter=20?= =?UTF-8?q?=E7=B1=BB=E6=AE=8B=E7=95=99=E7=9A=84=E6=B5=8B=E8=AF=95=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/hjq/demo/ui/adapter/StatusAdapter.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/app/src/main/java/com/hjq/demo/ui/adapter/StatusAdapter.java b/app/src/main/java/com/hjq/demo/ui/adapter/StatusAdapter.java index 624a9312..1b78005b 100644 --- a/app/src/main/java/com/hjq/demo/ui/adapter/StatusAdapter.java +++ b/app/src/main/java/com/hjq/demo/ui/adapter/StatusAdapter.java @@ -1,7 +1,6 @@ package com.hjq.demo.ui.adapter; import android.content.Context; -import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; @@ -38,13 +37,6 @@ private ViewHolder() { @Override public void onBindView(int position) { mTextView.setText(getItem(position)); - getItemView().setOnLongClickListener(new View.OnLongClickListener() { - @Override - public boolean onLongClick(View v) { - removeItem(position); - return false; - } - }); } } } \ No newline at end of file From 24fc98fd4026dde3ace8a7acaec364f994f741f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Android=20=E8=BD=AE=E5=AD=90=E5=93=A5?= Date: Wed, 8 Jul 2026 16:31:15 +0800 Subject: [PATCH 28/28] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20ImmersionBar=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=88=B0=203.3.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hjq/demo/app/AppActivity.java | 21 ++++++++++++------- .../com/hjq/demo/app/TitleBarFragment.java | 21 ++++++++++++------- gradle/libs.versions.toml | 2 +- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/hjq/demo/app/AppActivity.java b/app/src/main/java/com/hjq/demo/app/AppActivity.java index 53b7db67..a18e74b1 100644 --- a/app/src/main/java/com/hjq/demo/app/AppActivity.java +++ b/app/src/main/java/com/hjq/demo/app/AppActivity.java @@ -174,13 +174,20 @@ public ImmersionBar getStatusBarConfig() { */ @NonNull protected ImmersionBar createStatusBarConfig() { - return ImmersionBar.with(this) - // 默认状态栏字体颜色为黑色 - .statusBarDarkFont(isStatusBarDarkFont()) - // 指定导航栏背景颜色 - .navigationBarColor(R.color.white) - // 状态栏字体和导航栏内容自动变色,必须指定状态栏颜色和导航栏颜色才可以自动变色 - .autoDarkModeEnable(true, 0.2f); + ImmersionBar immersionBar = ImmersionBar.with(this) + // 默认状态栏字体颜色为黑色 + .statusBarDarkFont(isStatusBarDarkFont()) + // 状态栏字体和导航栏内容自动变色,必须指定状态栏颜色和导航栏颜色才可以自动变色 + .autoDarkModeEnable(true, 0.2f); + // 适配 Android 15 EdgeToEdge 特性 + if (AndroidVersion.isAndroid15()) { + // 设置透明的导航栏 + immersionBar.transparentNavigationBar(); + } else { + // 指定导航栏背景颜色 + immersionBar.navigationBarColor(R.color.white); + } + return immersionBar; } /** diff --git a/app/src/main/java/com/hjq/demo/app/TitleBarFragment.java b/app/src/main/java/com/hjq/demo/app/TitleBarFragment.java index 7f6212ff..c9750146 100644 --- a/app/src/main/java/com/hjq/demo/app/TitleBarFragment.java +++ b/app/src/main/java/com/hjq/demo/app/TitleBarFragment.java @@ -109,13 +109,20 @@ protected ImmersionBar getStatusBarConfig() { */ @NonNull protected ImmersionBar createStatusBarConfig() { - return ImmersionBar.with(this) - // 默认状态栏字体颜色为黑色 - .statusBarDarkFont(isStatusBarDarkFont()) - // 指定导航栏背景颜色 - .navigationBarColor(R.color.white) - // 状态栏字体和导航栏内容自动变色,必须指定状态栏颜色和导航栏颜色才可以自动变色 - .autoDarkModeEnable(true, 0.2f); + ImmersionBar immersionBar = ImmersionBar.with(this) + // 默认状态栏字体颜色为黑色 + .statusBarDarkFont(isStatusBarDarkFont()) + // 状态栏字体和导航栏内容自动变色,必须指定状态栏颜色和导航栏颜色才可以自动变色 + .autoDarkModeEnable(true, 0.2f); + // 适配 Android 15 EdgeToEdge 特性 + if (AndroidVersion.isAndroid15()) { + // 设置透明的导航栏 + immersionBar.transparentNavigationBar(); + } else { + // 指定导航栏背景颜色 + immersionBar.navigationBarColor(R.color.white); + } + return immersionBar; } /** diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ec9ec0cf..9f7e0a9e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ shapeView = "11.0" shapeDrawable = "5.0" nestedScrollLayout = "3.0" glide = "5.0.7" -immersionBar = "3.2.2" +immersionBar = "3.3.1" photoView = "2.3.0" bugly = "4.4.7.8" lottie = "6.7.1"