mirror of
https://github.com/fankes/ColorOSNotifyIcon.git
synced 2026-03-26 21:35:11 +08:00
Compare commits
380 Commits
master
...
570e5a23ba
| Author | SHA1 | Date | |
|---|---|---|---|
|
570e5a23ba
|
|||
|
90aec5b9fa
|
|||
|
7f3cdba757
|
|||
|
9536b42c2b
|
|||
|
a7582de004
|
|||
|
29b14a811e
|
|||
|
9b9eda8a39
|
|||
|
cfa065b57e
|
|||
|
|
492d0dad67 | ||
|
|
d26f68c1a7 | ||
|
d9520cb484
|
|||
|
884aa87617
|
|||
|
|
51e52f3eba | ||
|
|
9aae48c785 | ||
|
ee77842fbb
|
|||
|
3794035789
|
|||
|
a8c1ba3166
|
|||
|
4d39eb4b9d
|
|||
|
2ffd36cc21
|
|||
|
d95e53f6e4
|
|||
|
115ccf0822
|
|||
|
982f73444a
|
|||
|
93fdd307a2
|
|||
|
75789c0286
|
|||
|
b1ca7be6ed
|
|||
|
c4087db1e6
|
|||
|
|
bf69aed1b4 | ||
|
a0c001b7e4
|
|||
|
|
1b0fcdfce6 | ||
|
8d42d47ab4
|
|||
|
a7c43149e3
|
|||
|
053c8b837c
|
|||
|
1fdaf81560
|
|||
|
67937edd0f
|
|||
|
bb9e965cca
|
|||
|
d7e487c4ce
|
|||
|
11480f6d4a
|
|||
|
a09d039b48
|
|||
|
95b49168cb
|
|||
|
49b942efda
|
|||
|
025183d8f0
|
|||
|
78205b2c6c
|
|||
|
c3ac4d4be1
|
|||
|
a22d36c79d
|
|||
|
8889d6fa5f
|
|||
|
8662637e6a
|
|||
|
b88b7b6907
|
|||
|
ae0f163d57
|
|||
|
757313ee14
|
|||
|
|
0ee83ff83a | ||
|
|
29c3a839f4 | ||
|
faf443960c
|
|||
|
41cf6a209a
|
|||
|
71a37d8bf3
|
|||
|
4afddae4e1
|
|||
|
3714c3f06d
|
|||
|
6d624b3992
|
|||
|
b3a3e0993c
|
|||
|
c34f121145
|
|||
|
b2a65a4f3c
|
|||
|
799d758671
|
|||
|
9f323f466a
|
|||
|
713d5bc008
|
|||
|
e0f50984b0
|
|||
|
1e0efe8f86
|
|||
|
358fc16b0e
|
|||
|
fc69d7b544
|
|||
|
5e37c1b7dc
|
|||
|
147a33d8ee
|
|||
|
75ec1317fa
|
|||
|
62d4e727ff
|
|||
|
c4573d221b
|
|||
|
b74adce241
|
|||
|
bd57f76232
|
|||
|
e67110fd65
|
|||
|
2c48401d21
|
|||
|
bcac9a3752
|
|||
|
656fc0446c
|
|||
|
b4f0b65264
|
|||
|
a577c49e56
|
|||
|
1431457e37
|
|||
|
4edf7a2df2
|
|||
|
171bbae16b
|
|||
|
c1d6a85927
|
|||
|
ea77b3631f
|
|||
|
8b906032f2
|
|||
|
6cd9cb79ac
|
|||
|
8bdff8d558
|
|||
|
3ccde65af6
|
|||
|
7503a64efd
|
|||
|
0d564258c9
|
|||
|
f172b6b1b9
|
|||
|
ecf7ed8653
|
|||
|
1efb18f4e1
|
|||
|
fa99a57027
|
|||
|
4d3106f5bc
|
|||
|
8f735ab23d
|
|||
|
3503cf35b1
|
|||
|
1d5759313b
|
|||
|
7dcd6de33e
|
|||
|
ff941171f9
|
|||
|
eeb7966448
|
|||
|
a1214f0f38
|
|||
|
855f88127d
|
|||
|
d589ef2cd0
|
|||
|
c95c36c76a
|
|||
|
2eec2022d1
|
|||
|
4b00d84d8b
|
|||
|
89767143bd
|
|||
|
e119fd0bf7
|
|||
|
bd08b2ce1d
|
|||
|
a334bf9a8c
|
|||
|
bad773cc2c
|
|||
|
e5a2edb614
|
|||
|
b9a8b6195b
|
|||
|
0cc499e690
|
|||
|
df4694bb56
|
|||
|
c0dbf565e9
|
|||
|
2f0766cc9f
|
|||
|
896322361e
|
|||
|
9e53e0ddba
|
|||
|
41b9127c15
|
|||
|
24a028629d
|
|||
|
70c2f9aa8f
|
|||
|
4ad7acb56c
|
|||
|
bae57c87d8
|
|||
|
7938477bb3
|
|||
|
1253b8c371
|
|||
|
dea19c72ab
|
|||
|
fbce4f9f7a
|
|||
|
3697a9ad18
|
|||
|
aaca48bb8e
|
|||
|
28e579ad0e
|
|||
|
b8973fa15a
|
|||
|
3fa8a3c7e9
|
|||
|
cc2e2df37e
|
|||
|
6725bf14a5
|
|||
|
a896806fa5
|
|||
|
5e56c1bc57
|
|||
|
3c96c30a74
|
|||
|
ca4a594114
|
|||
|
77ff08f6d7
|
|||
|
4fd017fed1
|
|||
|
91b1500ebd
|
|||
|
601ceee89f
|
|||
|
e33c51a320
|
|||
|
9c8df9f173
|
|||
|
1e98c0d431
|
|||
|
8ef9e206a6
|
|||
|
ca5da08bc2
|
|||
|
56da358999
|
|||
|
53e5292f2e
|
|||
|
1b4be321ec
|
|||
|
ddcc475ea1
|
|||
|
65142c3af7
|
|||
|
118104c11c
|
|||
|
1fd9cc6ab0
|
|||
|
889092dd3d
|
|||
|
9d695c61f0
|
|||
|
81a6ada0ee
|
|||
|
5fb4e0ac39
|
|||
|
62a7d87502
|
|||
|
95a9e3253b
|
|||
|
bff047aa48
|
|||
|
975ebe7e49
|
|||
|
eb9c93a2f5
|
|||
|
ff43641d63
|
|||
|
22f5ebc625
|
|||
|
2f302a3c10
|
|||
|
fa2aa675d0
|
|||
|
eb090b11de
|
|||
|
97161f8692
|
|||
|
6159308cbb
|
|||
|
be6447342f
|
|||
|
c0e9ed4673
|
|||
|
45328bd1a1
|
|||
|
|
27fdcfbae7 | ||
|
|
c021b986f5 | ||
|
|
2b5f3e5f88 | ||
|
|
30bdb0582f | ||
|
e4b006afc0
|
|||
|
a21b1382a4
|
|||
|
3e3127adcf
|
|||
|
6aea7ca11f
|
|||
|
6b9e9b5843
|
|||
|
5747fa91ca
|
|||
|
1a73613cd1
|
|||
|
4ee61adb07
|
|||
|
80b402ee40
|
|||
|
c02bc2314a
|
|||
|
d177620784
|
|||
|
354d0e1961
|
|||
|
bc1f379650
|
|||
|
63512254da
|
|||
|
69c5003af1
|
|||
|
ac17f3ae55
|
|||
|
d469adc667
|
|||
|
2bb2218145
|
|||
|
aae8a27fcc
|
|||
|
3b31e2c255
|
|||
|
f111e7d53c
|
|||
|
327f2139b8
|
|||
|
adb1f174ad
|
|||
|
373d5c6cb8
|
|||
|
aba5e3c23c
|
|||
|
8a2f0aca83
|
|||
|
a0a4d08612
|
|||
|
25747b2041
|
|||
|
8de1abf679
|
|||
|
b97de07843
|
|||
|
b497189549
|
|||
|
1ca659dd6a
|
|||
|
117b37b5cf
|
|||
|
967186bd00
|
|||
|
eea7b6d897
|
|||
|
dd75a13970
|
|||
|
66ed43f5ad
|
|||
| 399cfafd29 | |||
| 6ae1d3e726 | |||
| 384e6b657e | |||
| 08b7feeede | |||
| e7fc0bbcd0 | |||
| 1f8022fd7c | |||
|
|
b404543f47 | ||
|
|
ad195d93ea | ||
| 15e7490808 | |||
| 7c906cd2a0 | |||
| 0da5875d64 | |||
| 947ec809e7 | |||
| c07f3e99a1 | |||
| ebba4d2345 | |||
| e60fc6ae7c | |||
| 7688dbb5ca | |||
| e703237a6d | |||
| 01494e8467 | |||
| e08081ae42 | |||
| 758f80d1c1 | |||
| b06ecaa5e0 | |||
| df5090faac | |||
| ffb706864a | |||
| 70eadb83e8 | |||
| 6d7d7290e2 | |||
| 1191c77986 | |||
| 2f4539d8f6 | |||
| 030a1590ae | |||
| 52820c0b07 | |||
| 1f2b1d5046 | |||
| 7896e4836c | |||
| d2ff1fe3ec | |||
| f5722e3e5c | |||
| 44e99cb3da | |||
| 1386833c91 | |||
| 69af0172eb | |||
| 81e66d2da2 | |||
| 73a9142e71 | |||
| 5af6ffb614 | |||
| 230b3b4e38 | |||
| 66f309dc91 | |||
| d4f004894e | |||
| f2e27c2702 | |||
| ab7418931b | |||
| cfb0c06a6a | |||
| efabb726ba | |||
| 40a05dd093 | |||
| 3a1a8e3726 | |||
| 8ad21a6d3b | |||
| 9c6d61c685 | |||
| 8f8c34e532 | |||
| 5281464e4e | |||
| d6f5695711 | |||
| 857eec5b6a | |||
| f85ccd92f3 | |||
| 0c26c0a8cd | |||
| 2619f924f3 | |||
| 6a4e96923e | |||
| 44dee2ff30 | |||
| 05e083f8e6 | |||
| 618fd8af0e | |||
| 287afae3cc | |||
| 81c582ca5c | |||
| 08eb981cc2 | |||
| 9dbd0bc7a8 | |||
| cefe9b6f11 | |||
| 836b4abaf1 | |||
| fad7a6f4cd | |||
| 06fb6243ba | |||
| e962ac2ecf | |||
| a174aa3928 | |||
| 513e17ba6b | |||
| e1cb703196 | |||
| 890923d9bb | |||
| 0307c7c6fd | |||
| a61ed0cd2a | |||
| 2dca9cd9fd | |||
| e7ff1b2b2d | |||
| 3ae5ce1058 | |||
| d3ddbfd3ea | |||
| d0b2ea5f48 | |||
| fd6ac454cf | |||
| 1795addbf3 | |||
| 3ecbe6159b | |||
| edcd81c9e8 | |||
| 55e7256dbb | |||
| c3c249a37d | |||
| 803e09b26c | |||
| 090d8e5f2b | |||
| 751610edaa | |||
| c436615d1b | |||
| c06abdf514 | |||
| 5a501b9846 | |||
| cdeb8735d6 | |||
| a5f7701870 | |||
| b893b201d2 | |||
| a1ca97f1b0 | |||
| 9cc75490d4 | |||
| 11ce9eeede | |||
| 6bd3a5a78a | |||
| ee4da89104 | |||
| f15e48d4a3 | |||
| 360c293c18 | |||
| 0e1f615abd | |||
| 65bd3ee58e | |||
| 7779f5dbe6 | |||
| a0fdf942e6 | |||
| 8bc07e7dfb | |||
| 48a18a1069 | |||
| 6eb7569b76 | |||
| 1834803a5c | |||
| d3053a725b | |||
| 89945962c2 | |||
| 7988fa2535 | |||
| fda47d7b53 | |||
| 1def8ef6f2 | |||
| 0ed7c5655b | |||
| 7300f8e7ee | |||
| f09d422e59 | |||
| 490a70e8ec | |||
| 953c726110 | |||
| a90278c1bc | |||
| a0bf7b2ac7 | |||
| 321273cc77 | |||
| 3c1a4798d0 | |||
| 9faab60aa8 | |||
| 74eb55ab39 | |||
| f7e75931ed | |||
| 856c1c5cab | |||
| fcbf3b0565 | |||
| fa3cddd75f | |||
| d11dfe5167 | |||
| b3be2789a9 | |||
| ea962e1520 | |||
| 3e2b8247c8 | |||
| e529e75bc2 | |||
| cd5f9806a3 | |||
| 4d7891f769 | |||
| cd4b9794c4 | |||
| efbd919482 | |||
|
|
e297dc0b96 | ||
|
|
42c817c90e | ||
| fe31b79d4d | |||
| c8b13ce602 | |||
| 9e7b92fdaa | |||
| dd293a7e33 | |||
| ddda41ab13 | |||
|
|
0c5c2daf74 | ||
| 2b2da7bdb5 | |||
| 3c07fb40d5 | |||
| 21ff3938e3 | |||
| 5fe1598546 | |||
| 018c137d85 | |||
| f066382d4c | |||
| c4f79452d0 | |||
| 4bdb454d3c | |||
| e77f9bf494 | |||
| 86700888ff | |||
| ea10f87a12 | |||
|
|
cefeaea56b | ||
|
|
ffd5bdf84a | ||
| dc9daa1712 | |||
|
|
34ec01743e |
@@ -1,3 +1,4 @@
|
||||
# noinspection EditorConfigKeyCorrectness
|
||||
[{*.kt,*.kts}]
|
||||
ktlint_standard_annotation = disabled
|
||||
ktlint_standard_filename = disabled
|
||||
@@ -24,10 +25,7 @@ ktlint_standard_function-naming = disabled
|
||||
ktlint_standard_chain-method-continuation = disabled
|
||||
ktlint_standard_class-signature = disabled
|
||||
ktlint_standard_condition-wrapping = disabled
|
||||
ktlint_standard_blank-line-between-when-conditions = disabled
|
||||
ktlint_standard_no-trailing-spaces = disabled
|
||||
ktlint_standard_multiline-loop = disabled
|
||||
ktlint_standard_when-entry-bracing = disabled
|
||||
ktlint_standard_class-signature = disabled
|
||||
ij_continuation_indent_size = 2
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
|
||||
10
.gitignore
vendored
10
.gitignore
vendored
@@ -45,11 +45,9 @@
|
||||
|
||||
# Kotlin
|
||||
.kotlin
|
||||
.idea/kotlinc.xml
|
||||
|
||||
# Misc
|
||||
.idea/misc.xml
|
||||
.idea/markdown.xml
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
@@ -93,8 +91,6 @@ fabric.properties
|
||||
.idea/androidTestResultsUserPreferences.xml
|
||||
|
||||
# Android projects
|
||||
.idea/AndroidProjectSystem.xml
|
||||
.idea/deviceManager.xml
|
||||
**/local.properties
|
||||
/captures
|
||||
.externalNativeBuild
|
||||
@@ -110,11 +106,5 @@ site
|
||||
*.bak
|
||||
.idea/appInsightsSettings.xml
|
||||
|
||||
# Discord plugin for IntelliJ
|
||||
.idea/discord.xml
|
||||
|
||||
# Copilot for IntelliJ
|
||||
.idea/copilot**
|
||||
|
||||
# Mac OS
|
||||
.DS_Store
|
||||
6
.idea/AndroidProjectSystem.xml
generated
Normal file
6
.idea/AndroidProjectSystem.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AndroidProjectSystem">
|
||||
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/inspectionProfiles/Project_Default.xml
generated
6
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -2,7 +2,11 @@
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="CheckImageSize" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="UnstableApiUsage" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
|
||||
<option name="processCode" value="true" />
|
||||
<option name="processLiterals" value="true" />
|
||||
<option name="processComments" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="YAMLSchemaValidation" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
</profile>
|
||||
</component>
|
||||
6
.idea/kotlinc.xml
generated
Normal file
6
.idea/kotlinc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="KotlinJpsPluginSettings">
|
||||
<option name="version" value="2.1.10" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -68,6 +68,9 @@ This project will not be adapted i18n, please stay tuned for my new projects in
|
||||
| <img src="https://avatars.githubusercontent.com/u/78217009?s=200&v=4?raw=true" width = "30" height = "30" alt="LOGO"/> | [Xposed-Modules-Repo](https://github.com/Xposed-Modules-Repo/com.fankes.coloros.notify/releases) | 正式版 (稳定版) |
|
||||
|------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|-----------|
|
||||
|
||||
| <img src="https://github.com/fankes/fankes/assets/37344460/82113d3c-aa7b-4dd1-95c7-cda650065c12" width = "30" height = "30" alt="LOGO"/> | [123 云盘 **(密码:al5u)**](https://www.123pan.com/s/5SlUVv-C8DBh.html) | 正式版 (稳定版) |
|
||||
|------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|-----------|
|
||||
|
||||
本模块发布地址仅限于上述所列出的地址,从其他非正规渠道下载到的版本或对您造成任何影响均与我们无关。
|
||||
|
||||
## 注意事项
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.ksp)
|
||||
autowire(libs.plugins.android.application)
|
||||
autowire(libs.plugins.kotlin.android)
|
||||
autowire(libs.plugins.kotlin.ksp)
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = gropify.project.app.packageName
|
||||
compileSdk = gropify.project.android.compileSdk
|
||||
namespace = property.project.app.packageName
|
||||
compileSdk = property.project.android.compileSdk
|
||||
|
||||
signingConfigs {
|
||||
create("universal") {
|
||||
keyAlias = gropify.project.app.signing.keyAlias
|
||||
keyPassword = gropify.project.app.signing.keyPassword
|
||||
storeFile = rootProject.file(gropify.project.app.signing.storeFilePath)
|
||||
storePassword = gropify.project.app.signing.storePassword
|
||||
keyAlias = property.project.app.signing.keyAlias
|
||||
keyPassword = property.project.app.signing.keyPassword
|
||||
storeFile = rootProject.file(property.project.app.signing.storeFilePath)
|
||||
storePassword = property.project.app.signing.storePassword
|
||||
enableV1Signing = true
|
||||
enableV2Signing = true
|
||||
}
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId = gropify.project.app.packageName
|
||||
minSdk = gropify.project.android.minSdk
|
||||
targetSdk = gropify.project.android.targetSdk
|
||||
versionName = gropify.project.app.versionName
|
||||
versionCode = gropify.project.app.versionCode
|
||||
applicationId = property.project.app.packageName
|
||||
minSdk = property.project.android.minSdk
|
||||
targetSdk = property.project.android.targetSdk
|
||||
versionName = property.project.app.versionName
|
||||
versionCode = property.project.app.versionCode
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
buildTypes {
|
||||
@@ -50,32 +50,40 @@ androidComponents {
|
||||
onVariants(selector().all()) {
|
||||
it.outputs.forEach { output ->
|
||||
val currentType = it.buildType
|
||||
val currentSuffix = gropify.github.ci.commit.id.let { suffix ->
|
||||
if (suffix.isNotBlank()) "-$suffix" else ""
|
||||
|
||||
// Workaround for GitHub Actions.
|
||||
// Why? I don't know, but it works.
|
||||
// Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
|
||||
// public inline fun CharSequence.isNotBlank(): Boolean defined in kotlin.text.
|
||||
@Suppress("UNNECESSARY_SAFE_CALL", "RemoveRedundantCallsOfConversionMethods")
|
||||
val currentSuffix = property.github.ci.commit.id?.let { suffix ->
|
||||
// Workaround for GitHub Actions.
|
||||
// Strongly transfer type to [String].
|
||||
val sSuffix = suffix.toString()
|
||||
if (sSuffix.isNotBlank()) "-$sSuffix" else ""
|
||||
}
|
||||
val currentVersion = "${output.versionName.get()}$currentSuffix(${output.versionCode.get()})"
|
||||
if (output is com.android.build.api.variant.impl.VariantOutputImpl)
|
||||
output.outputFileName.set("${gropify.project.name}-v$currentVersion-$currentType.apk")
|
||||
output.outputFileName.set("${property.project.name}-v$currentVersion-$currentType.apk")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly(libs.rovo89.xposed.api)
|
||||
implementation(libs.yukihookapi)
|
||||
ksp(libs.yukihookapi.ksp.xposed)
|
||||
implementation(libs.kavaref.core)
|
||||
implementation(libs.kavaref.extension)
|
||||
implementation(libs.betterandroid.ui.extension)
|
||||
implementation(libs.project.promote)
|
||||
implementation(libs.libsu)
|
||||
implementation(libs.drawabletoolbox)
|
||||
implementation(libs.okhttp)
|
||||
implementation(libs.androidx.core.ktx)
|
||||
implementation(libs.androidx.appcompat)
|
||||
implementation(libs.material)
|
||||
implementation(libs.androidx.constraintlayout)
|
||||
testImplementation(libs.junit)
|
||||
androidTestImplementation(libs.androidx.test.ext.junit)
|
||||
androidTestImplementation(libs.androidx.test.espresso.core)
|
||||
compileOnly(de.robv.android.xposed.api)
|
||||
implementation(com.highcapable.yukihookapi.api)
|
||||
ksp(com.highcapable.yukihookapi.ksp.xposed)
|
||||
implementation(com.highcapable.kavaref.kavaref.core)
|
||||
implementation(com.highcapable.kavaref.kavaref.extension)
|
||||
implementation(com.fankes.projectpromote.project.promote)
|
||||
implementation(com.github.topjohnwu.libsu.core)
|
||||
implementation(com.github.duanhong169.drawabletoolbox)
|
||||
implementation(com.squareup.okhttp3.okhttp)
|
||||
implementation(androidx.core.core.ktx)
|
||||
implementation(androidx.appcompat.appcompat)
|
||||
implementation(com.google.android.material.material)
|
||||
implementation(androidx.constraintlayout.constraintlayout)
|
||||
testImplementation(junit.junit)
|
||||
androidTestImplementation(androidx.test.ext.junit)
|
||||
androidTestImplementation(androidx.test.espresso.espresso.core)
|
||||
}
|
||||
@@ -44,7 +44,6 @@ import android.widget.ImageView
|
||||
import androidx.core.graphics.drawable.toBitmap
|
||||
import androidx.core.graphics.drawable.toDrawable
|
||||
import androidx.core.view.children
|
||||
import androidx.core.view.setPadding
|
||||
import com.fankes.coloros.notify.R
|
||||
import com.fankes.coloros.notify.bean.IconDataBean
|
||||
import com.fankes.coloros.notify.const.PackageName
|
||||
@@ -115,9 +114,6 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
|
||||
/** 原生存在的类 */
|
||||
private val MediaDataClass by lazyClassOrNull("${PackageName.SYSTEMUI}.media.MediaData")
|
||||
|
||||
/** 原生存在的类 */
|
||||
private val ViewConfigCoordinatorClass by lazyClassOrNull("${PackageName.SYSTEMUI}.statusbar.notification.collection.coordinator.ViewConfigCoordinator")
|
||||
|
||||
/** 原生存在的类 - 旧版本不存在 */
|
||||
private val LegacyNotificationIconAreaControllerImpl by lazyClassOrNull("${PackageName.SYSTEMUI}.statusbar.phone.LegacyNotificationIconAreaControllerImpl")
|
||||
@@ -140,12 +136,6 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
/** ColorOS 存在的类 - 旧版本不存在 */
|
||||
private val OplusNotificationSmallIconUtilClass by lazyClassOrNull("com.oplus.systemui.statusbar.notification.util.OplusNotificationSmallIconUtil")
|
||||
|
||||
/** ColorOS 存在的类 - 旧版本不存在 */
|
||||
private val OplusNotificationHeaderViewWrapperExImpClass by lazyClassOrNull("com.oplus.systemui.statusbar.notification.row.wrapper.OplusNotificationHeaderViewWrapperExImp")
|
||||
|
||||
/** ColorOS 存在的类 - 旧版本不存在 */
|
||||
private val OplusNotificationGroupTemplateWrapperClass by lazyClassOrNull("com.oplus.systemui.notification.row.oplusgroup.OplusNotificationGroupTemplateWrapper")
|
||||
|
||||
/** 根据多个版本存在不同的包名相同的类 */
|
||||
private val OplusNotificationIconAreaControllerClass by lazyClass(
|
||||
VariousClass(
|
||||
@@ -286,24 +276,6 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
parameterCount = 2
|
||||
} != null
|
||||
|
||||
/**
|
||||
* 判断通知是否为新版本
|
||||
* @return [Boolean]
|
||||
*/
|
||||
private val isNewNotification
|
||||
get() = OplusNotificationHeaderViewWrapperExImpClass?.resolve()?.optional(silent = true)
|
||||
?.firstMethodOrNull {
|
||||
name = "proxyOnContentUpdated"
|
||||
parameterCount = 1
|
||||
} != null
|
||||
|
||||
private val isNotificationPresenter
|
||||
get() = StatusBarNotificationPresenterClass.resolve().optional(silent = true)
|
||||
.firstMethodOrNull {
|
||||
name = "updateNotificationsOnDensityOrFontScaleChanged"
|
||||
emptyParameters()
|
||||
} != null
|
||||
|
||||
/**
|
||||
* 打印日志
|
||||
* @param tag 标识
|
||||
@@ -342,7 +314,6 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
|
||||
/** 刷新状态栏小图标 */
|
||||
private fun refreshStatusBarIcons() = runInSafe {
|
||||
if (isNewNotification) return@runInSafe
|
||||
val nfField = StatusBarIconViewClass.resolve().optional().firstFieldOrNull { name = "mNotification" }
|
||||
val sRadiusField = StatusBarIconViewClass.resolve().optional(silent = true).firstFieldOrNull {
|
||||
name = "sIconRadiusFraction"
|
||||
@@ -562,11 +533,11 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
.solidColor(newApplyColor)
|
||||
.build()
|
||||
setColorFilter(newStyle)
|
||||
setPadding(2.dp(context))
|
||||
setPadding(2.dp(context), 2.dp(context), 2.dp(context), 2.dp(context))
|
||||
} else {
|
||||
background = null
|
||||
setColorFilter(oldApplyColor)
|
||||
setPadding(0)
|
||||
setPadding(0, 0, 0, 0)
|
||||
}
|
||||
}
|
||||
else -> iconView.apply {
|
||||
@@ -628,7 +599,7 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
}
|
||||
}
|
||||
/** 清除图标间距 */
|
||||
setPadding(0)
|
||||
setPadding(0, 0, 0, 0)
|
||||
/** 清除背景 */
|
||||
background = null
|
||||
/** 清除着色 */
|
||||
@@ -795,10 +766,47 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
if (args().first().any() != null) instance<ImageView>().also { registerWallpaperColorChanged(it) }
|
||||
}
|
||||
/** 注入通知控制器实例 */
|
||||
if (isNotificationPresenter)
|
||||
StatusBarNotificationPresenterClass.resolve().optional().constructor {}.hookAll().after { notificationPresenter = instance }
|
||||
else
|
||||
ViewConfigCoordinatorClass?.resolve()?.optional()?.constructor {}?.hookAll()?.after { notificationPresenter = instance }
|
||||
StatusBarNotificationPresenterClass.resolve().optional().constructor {}.hookAll().after { notificationPresenter = instance }
|
||||
/** 注入状态栏通知图标容器实例 */
|
||||
OplusNotificationIconAreaControllerClass.resolve().optional().apply {
|
||||
var way = 0
|
||||
(firstMethodOrNull {
|
||||
name = "updateIconsForLayout"
|
||||
parameterCount = 10
|
||||
} ?: firstMethodOrNull {
|
||||
/** ColorOS 14 */
|
||||
name = "updateIconsForLayout"
|
||||
parameterCount = 5
|
||||
} ?: firstMethodOrNull {
|
||||
name = "updateIconsForLayout"
|
||||
parameterCount = 1
|
||||
}?.apply { way = 1 }
|
||||
?: firstMethodOrNull {
|
||||
name = "updateIconsForLayout"
|
||||
}?.apply { way = 2 })?.hook()?.after {
|
||||
when (way) {
|
||||
2 -> notificationIconContainer = OplusNotificationIconAreaControllerClass.resolve().optional()
|
||||
.firstMethodOrNull { name = "getNotificationIcons" }
|
||||
?.of(instance)?.invoke<ViewGroup>()
|
||||
1 -> {
|
||||
notificationIconInstances.clear()
|
||||
firstFieldOrNull { name = "mLastToShow" }?.of(instance)?.get<List<View>>()
|
||||
?.takeIf { it.isNotEmpty() }?.forEach { notificationIconInstances.add(it) }
|
||||
}
|
||||
else -> notificationIconContainer = args(index = 1).cast()
|
||||
}
|
||||
}
|
||||
}
|
||||
/** 注入状态栏通知图标容器实例 */
|
||||
(LegacyNotificationIconAreaControllerImpl ?: NotificationIconAreaControllerClass)
|
||||
.resolve().optional().apply {
|
||||
firstMethodOrNull {
|
||||
name = "updateIconsForLayout"
|
||||
parameterCount = 8
|
||||
}?.hook()?.after {
|
||||
notificationIconContainer = args(index = 1).cast()
|
||||
}
|
||||
}
|
||||
/** 替换通知面板背景 - 新版本 */
|
||||
if (!isOldNotificationBackground)
|
||||
OplusNotificationBackgroundViewClass?.resolve()?.optional()?.apply {
|
||||
@@ -868,34 +876,25 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
}?.of(holder)?.invokeQuietly<View>()?.performClick()
|
||||
}
|
||||
}
|
||||
|
||||
if (isNewNotification) {
|
||||
/** 替换通知图标和样式 */
|
||||
OplusNotificationHeaderViewWrapperExImpClass?.resolve()?.optional()?.apply {
|
||||
firstMethodOrNull {
|
||||
name = "proxyOnContentUpdated"
|
||||
parameterCount = 1
|
||||
}?.hook()?.after {
|
||||
val mBase = instance.asResolver().optional().firstMethodOrNull {
|
||||
name = "getBase"
|
||||
emptyParameters()
|
||||
superclass()
|
||||
}?.invokeQuietly()
|
||||
val imageView = mBase?.asResolver()?.optional()?.firstFieldOrNull {
|
||||
name = "mIcon"
|
||||
type = ImageView::class
|
||||
superclass()
|
||||
}?.getQuietly<ImageView>()
|
||||
imageView?.apply {
|
||||
ExpandableNotificationRowClass.resolve().optional()
|
||||
.firstMethodOrNull { name = "getEntry" }
|
||||
?.of(args[0])?.invokeQuietly()?.let {
|
||||
it.asResolver().optional().firstMethodOrNull {
|
||||
name = "getSbn"
|
||||
}?.invoke<StatusBarNotification>()
|
||||
}.also { nf ->
|
||||
nf?.notification?.also {
|
||||
it.smallIcon.loadDrawable(context)?.also { iconDrawable ->
|
||||
/** 替换通知图标和样式 */
|
||||
NotificationHeaderViewWrapperClass.resolve().optional().apply {
|
||||
method {
|
||||
name { it == "resolveHeaderViews" || it == "onContentUpdated" }
|
||||
}.hookAll().after {
|
||||
firstFieldOrNull { name = "mIcon" }?.of(instance)?.get<ImageView>()?.apply {
|
||||
ExpandableNotificationRowClass.resolve().optional()
|
||||
.firstMethodOrNull { name = "getEntry" }
|
||||
?.of(NotificationViewWrapperClass.resolve().optional().firstFieldOrNull {
|
||||
name = "mRow"
|
||||
}?.of(instance)?.get())?.invokeQuietly()?.let {
|
||||
it.asResolver().optional().firstMethodOrNull {
|
||||
name = "getSbn"
|
||||
}?.invoke<StatusBarNotification>()
|
||||
}.also { nf ->
|
||||
nf?.notification?.also {
|
||||
it.smallIcon.loadDrawable(context)?.also { iconDrawable ->
|
||||
/** 执行替换 */
|
||||
fun doParse() {
|
||||
compatNotifyIcon(
|
||||
context = context,
|
||||
nf = nf,
|
||||
@@ -906,134 +905,14 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
iconView = this
|
||||
)
|
||||
}
|
||||
doParse()
|
||||
/** 延迟重新设置防止部分机型的系统重新设置图标出现图标着色后黑白块问题 */
|
||||
delayedRun(ms = 1500) { doParse() }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OplusNotificationGroupTemplateWrapperClass?.resolve()?.optional()?.apply {
|
||||
firstMethodOrNull {
|
||||
name = "initIcon"
|
||||
}?.hook()?.before {
|
||||
val instanceContext = firstFieldOrNull {
|
||||
name = "context"
|
||||
}?.of(instance)?.get() as Context?
|
||||
if (instanceContext == null)
|
||||
return@before
|
||||
resultNull()
|
||||
NotificationHeaderViewWrapperClass.resolve().optional().firstFieldOrNull { name = "mIcon" }?.of(instance)?.get<ImageView>()?.apply {
|
||||
ExpandableNotificationRowClass.resolve().optional()
|
||||
.firstMethodOrNull { name = "getEntry" }
|
||||
?.of(NotificationViewWrapperClass.resolve().optional().firstFieldOrNull {
|
||||
name = "mRow"
|
||||
}?.of(instance)?.get())?.invokeQuietly()?.let {
|
||||
it.asResolver().optional().firstMethodOrNull {
|
||||
name = "getSbn"
|
||||
}?.invoke<StatusBarNotification>()
|
||||
}.also { nf ->
|
||||
val context = StatusBarNotification::class.resolve().firstMethod {
|
||||
name = "getPackageContext"
|
||||
}.of(nf).invoke<Context>(instanceContext)
|
||||
if (context == null) return@also
|
||||
|
||||
nf?.notification?.also {
|
||||
it.smallIcon.loadDrawable(context)?.also { iconDrawable ->
|
||||
compatNotifyIcon(
|
||||
context = context,
|
||||
nf = nf,
|
||||
isGrayscaleIcon = isGrayscaleIcon(context, iconDrawable),
|
||||
packageName = context.packageName,
|
||||
drawable = iconDrawable,
|
||||
iconColor = it.color,
|
||||
iconView = this
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/** 注入状态栏通知图标容器实例 */
|
||||
OplusNotificationIconAreaControllerClass.resolve().optional().apply {
|
||||
var way = 0
|
||||
(firstMethodOrNull {
|
||||
name = "updateIconsForLayout"
|
||||
parameterCount = 10
|
||||
} ?: firstMethodOrNull {
|
||||
/** ColorOS 14 */
|
||||
name = "updateIconsForLayout"
|
||||
parameterCount = 5
|
||||
} ?: firstMethodOrNull {
|
||||
name = "updateIconsForLayout"
|
||||
parameterCount = 1
|
||||
}?.apply { way = 1 }
|
||||
?: firstMethodOrNull {
|
||||
name = "updateIconsForLayout"
|
||||
}?.apply { way = 2 })?.hook()?.after {
|
||||
when (way) {
|
||||
2 -> notificationIconContainer = OplusNotificationIconAreaControllerClass.resolve().optional()
|
||||
.firstMethodOrNull { name = "getNotificationIcons" }
|
||||
?.of(instance)?.invoke<ViewGroup>()
|
||||
1 -> {
|
||||
notificationIconInstances.clear()
|
||||
firstFieldOrNull { name = "mLastToShow" }?.of(instance)?.get<List<View>>()
|
||||
?.takeIf { it.isNotEmpty() }?.forEach { notificationIconInstances.add(it) }
|
||||
}
|
||||
else -> notificationIconContainer = args(index = 1).cast()
|
||||
}
|
||||
}
|
||||
}
|
||||
/** 注入状态栏通知图标容器实例 */
|
||||
(LegacyNotificationIconAreaControllerImpl ?: NotificationIconAreaControllerClass)
|
||||
.resolve().optional().apply {
|
||||
firstMethodOrNull {
|
||||
name = "updateIconsForLayout"
|
||||
parameterCount = 8
|
||||
}?.hook()?.after {
|
||||
notificationIconContainer = args(index = 1).cast()
|
||||
}
|
||||
}
|
||||
|
||||
/** 替换通知图标和样式 */
|
||||
NotificationHeaderViewWrapperClass.resolve().optional().apply {
|
||||
method {
|
||||
name { it == "resolveHeaderViews" || it == "onContentUpdated" }
|
||||
}.hookAll().after {
|
||||
firstFieldOrNull { name = "mIcon" }?.of(instance)?.get<ImageView>()?.apply {
|
||||
ExpandableNotificationRowClass.resolve().optional()
|
||||
.firstMethodOrNull { name = "getEntry" }
|
||||
?.of(NotificationViewWrapperClass.resolve().optional().firstFieldOrNull {
|
||||
name = "mRow"
|
||||
}?.of(instance)?.get())?.invokeQuietly()?.let {
|
||||
it.asResolver().optional().firstMethodOrNull {
|
||||
name = "getSbn"
|
||||
}?.invoke<StatusBarNotification>()
|
||||
}.also { nf ->
|
||||
nf?.notification?.also {
|
||||
it.smallIcon.loadDrawable(context)?.also { iconDrawable ->
|
||||
/** 执行替换 */
|
||||
fun doParse() {
|
||||
compatNotifyIcon(
|
||||
context = context,
|
||||
nf = nf,
|
||||
isGrayscaleIcon = isGrayscaleIcon(context, iconDrawable),
|
||||
packageName = context.packageName,
|
||||
drawable = iconDrawable,
|
||||
iconColor = it.color,
|
||||
iconView = this
|
||||
)
|
||||
}
|
||||
doParse()
|
||||
/** 延迟重新设置防止部分机型的系统重新设置图标出现图标着色后黑白块问题 */
|
||||
delayedRun(ms = 1500) { doParse() }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,7 +48,6 @@ import com.fankes.coloros.notify.utils.tool.GithubReleaseTool
|
||||
import com.fankes.coloros.notify.utils.tool.I18nWarnTool
|
||||
import com.fankes.coloros.notify.utils.tool.SystemUITool
|
||||
import com.fankes.projectpromote.ProjectPromote
|
||||
import com.highcapable.betterandroid.ui.extension.view.isUnderline
|
||||
import com.highcapable.yukihookapi.YukiHookAPI
|
||||
|
||||
class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
@@ -340,7 +339,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
|
||||
/** 项目地址按钮点击事件 */
|
||||
binding.titleGithubIcon.setOnClickListener { openBrowser(url = "https://github.com/fankes/ColorOSNotifyIcon") }
|
||||
/** 恰饭! */
|
||||
binding.linkWithFollowMe.isUnderline = true
|
||||
binding.linkWithFollowMe.setOnClickListener {
|
||||
openBrowser(url = "https://www.coolapk.com/u/876977", packageName = "com.coolapk.market")
|
||||
}
|
||||
|
||||
@@ -150,8 +150,6 @@ val isRealmeUI
|
||||
*/
|
||||
val androidVersionCodeName
|
||||
get() = when (Build.VERSION.SDK_INT) {
|
||||
36 -> "B"
|
||||
35 -> "V"
|
||||
34 -> "U"
|
||||
33 -> "T"
|
||||
32 -> "S_V2"
|
||||
|
||||
@@ -1249,10 +1249,24 @@
|
||||
android:layout_marginBottom="10dp"
|
||||
android:gravity="center"
|
||||
android:lineSpacingExtra="6dp"
|
||||
android:text="点击这里前往酷安关注我,获取我的更多应用"
|
||||
android:text="恰饭时间\n点击前往酷安关注我,获取我的更多应用"
|
||||
android:textColor="@color/colorTextGray"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
app:cardCornerRadius="15dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@mipmap/bg_payment_code" />
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background" />
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
|
||||
<monochrome android:drawable="@mipmap/ic_launcher_foreground" />
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
BIN
app/src/main/res/mipmap-xxhdpi/bg_payment_code.jpg
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/bg_payment_code.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 122 KiB |
@@ -2,9 +2,9 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.android.application) apply false
|
||||
alias(libs.plugins.kotlin.android) apply false
|
||||
alias(libs.plugins.kotlin.ksp) apply false
|
||||
autowire(libs.plugins.android.application) apply false
|
||||
autowire(libs.plugins.kotlin.android) apply false
|
||||
autowire(libs.plugins.kotlin.ksp) apply false
|
||||
}
|
||||
|
||||
allprojects {
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
[versions]
|
||||
agp = "8.13.2"
|
||||
kotlin = "2.2.21"
|
||||
ksp = "2.2.21-2.0.4"
|
||||
project-promote = "1.0.1"
|
||||
rovo89-xposed-api = "82"
|
||||
yukihookapi = "1.3.1"
|
||||
kavaref-core = "1.0.2"
|
||||
kavaref-extension = "1.0.2"
|
||||
betterandroid-ui-extension = "1.0.9"
|
||||
libsu = "5.2.2"
|
||||
drawabletoolbox = "1.0.7"
|
||||
okhttp = "5.3.2"
|
||||
androidx-core-ktx = "1.17.0"
|
||||
androidx-appcompat = "1.7.1"
|
||||
material = "1.13.0"
|
||||
androidx-constraintlayout = "2.2.1"
|
||||
junit = "4.13.2"
|
||||
androidx-test-junit = "1.3.0"
|
||||
androidx-test-espresso-core = "3.7.0"
|
||||
|
||||
[plugins]
|
||||
android-application = { id = "com.android.application", version.ref = "agp" }
|
||||
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
||||
kotlin-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
||||
|
||||
[libraries]
|
||||
project-promote = { group = "com.fankes.projectpromote", name = "project-promote", version.ref = "project-promote" }
|
||||
rovo89-xposed-api = { group = "de.robv.android.xposed", name = "api", version.ref = "rovo89-xposed-api" }
|
||||
yukihookapi = { group = "com.highcapable.yukihookapi", name = "api", version.ref = "yukihookapi" }
|
||||
yukihookapi-ksp-xposed = { group = "com.highcapable.yukihookapi", name = "ksp-xposed", version.ref = "yukihookapi" }
|
||||
kavaref-core = { group = "com.highcapable.kavaref", name = "kavaref-core", version.ref = "kavaref-core" }
|
||||
kavaref-extension = { group = "com.highcapable.kavaref", name = "kavaref-extension", version.ref = "kavaref-extension" }
|
||||
betterandroid-ui-extension = { group = "com.highcapable.betterandroid", name = "ui-extension", version.ref = "betterandroid-ui-extension" }
|
||||
libsu = { group = "com.github.topjohnwu.libsu", name = "core", version.ref = "libsu" }
|
||||
drawabletoolbox = { group = "com.github.duanhong169", name = "drawabletoolbox", version.ref = "drawabletoolbox" }
|
||||
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
|
||||
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core-ktx" }
|
||||
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" }
|
||||
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
||||
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout" }
|
||||
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||||
androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-junit" }
|
||||
androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidx-test-espresso-core" }
|
||||
84
gradle/sweet-dependency/sweet-dependency-config.yaml
Normal file
84
gradle/sweet-dependency/sweet-dependency-config.yaml
Normal file
@@ -0,0 +1,84 @@
|
||||
preferences:
|
||||
autowire-on-sync-mode: UPDATE_OPTIONAL_DEPENDENCIES
|
||||
repositories-mode: FAIL_ON_PROJECT_REPOS
|
||||
|
||||
repositories:
|
||||
gradle-plugin-portal:
|
||||
scope: PLUGINS
|
||||
google:
|
||||
maven-central:
|
||||
jit-pack:
|
||||
sonatype-oss-releases:
|
||||
rovo89-xposed-api:
|
||||
scope: LIBRARIES
|
||||
url: https://api.xposed.info/
|
||||
content:
|
||||
include:
|
||||
group:
|
||||
de.robv.android.xposed
|
||||
fankes-maven-releases:
|
||||
url: https://raw.githubusercontent.com/fankes/maven-repository/main/repository/releases
|
||||
|
||||
plugins:
|
||||
com.android.application:
|
||||
alias: android-application
|
||||
version: 8.12.1
|
||||
org.jetbrains.kotlin.android:
|
||||
alias: kotlin-android
|
||||
version: 2.2.10
|
||||
com.google.devtools.ksp:
|
||||
alias: kotlin-ksp
|
||||
version: 2.2.10-2.0.2
|
||||
|
||||
libraries:
|
||||
com.fankes.projectpromote:
|
||||
project-promote:
|
||||
version: 1.0.0
|
||||
repositories:
|
||||
fankes-maven-releases
|
||||
de.robv.android.xposed:
|
||||
api:
|
||||
version: 82
|
||||
repositories:
|
||||
rovo89-xposed-api
|
||||
com.highcapable.yukihookapi:
|
||||
api:
|
||||
version: 1.3.0
|
||||
ksp-xposed:
|
||||
version-ref: <this>::api
|
||||
com.highcapable.kavaref:
|
||||
kavaref-core:
|
||||
version: 1.0.1
|
||||
kavaref-extension:
|
||||
version: 1.0.1
|
||||
com.github.topjohnwu.libsu:
|
||||
core:
|
||||
version: 5.2.2
|
||||
auto-update: false
|
||||
com.github.duanhong169:
|
||||
drawabletoolbox:
|
||||
version: 1.0.7
|
||||
com.squareup.okhttp3:
|
||||
okhttp:
|
||||
version: 5.1.0
|
||||
androidx.core:
|
||||
core-ktx:
|
||||
version: 1.17.0
|
||||
androidx.appcompat:
|
||||
appcompat:
|
||||
version: 1.7.1
|
||||
com.google.android.material:
|
||||
material:
|
||||
version: 1.12.0
|
||||
androidx.constraintlayout:
|
||||
constraintlayout:
|
||||
version: 2.2.1
|
||||
androidx.test.ext:
|
||||
junit:
|
||||
version: 1.3.0
|
||||
androidx.test.espresso:
|
||||
espresso-core:
|
||||
version: 3.7.0
|
||||
junit:
|
||||
junit:
|
||||
version: 4.13.2
|
||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
@@ -5,36 +5,23 @@ pluginManagement {
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
maven("https://jitpack.io")
|
||||
maven("https://api.xposed.info/")
|
||||
maven("https://raw.githubusercontent.com/fankes/maven-repository/main/repository/releases")
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
id("com.highcapable.gropify") version "1.0.1"
|
||||
id("com.highcapable.sweetdependency") version "1.0.4"
|
||||
id("com.highcapable.sweetproperty") version "1.0.8"
|
||||
}
|
||||
gropify {
|
||||
sweetProperty {
|
||||
global {
|
||||
common {
|
||||
includeKeys(
|
||||
"GITHUB_CI_COMMIT_ID",
|
||||
"^project\\..*\$".toRegex()
|
||||
)
|
||||
all {
|
||||
permanentKeyValues("GITHUB_CI_COMMIT_ID" to "")
|
||||
locations(GropifyLocation.RootProject, GropifyLocation.SystemEnv)
|
||||
generateFrom(ROOT_PROJECT, SYSTEM_ENV)
|
||||
}
|
||||
android {
|
||||
sourcesCode {
|
||||
includeKeys("GITHUB_CI_COMMIT_ID")
|
||||
// 手动指定类型,防止一些特殊 "COMMIT ID" 被生成为数值
|
||||
keyValuesRules("GITHUB_CI_COMMIT_ID" to ValueRule(String::class))
|
||||
// 关闭类型自动转换功能,防止一些特殊 "COMMIT ID" 被生成为数值
|
||||
isEnableTypeAutoConversion = false
|
||||
}
|
||||
}
|
||||
rootProject { common { isEnabled = false } }
|
||||
rootProject { all { isEnable = false } }
|
||||
}
|
||||
rootProject.name = "ColorOSNotifyIcon"
|
||||
include(":app")
|
||||
Reference in New Issue
Block a user