Skip to content

Commit 561e094

Browse files
authored
Merge pull request #412 from Mahmud0808/beta
Merge beta into stable
2 parents 4a91a94 + 5b349e6 commit 561e094

947 files changed

Lines changed: 43627 additions & 14241 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,6 @@ body:
7070
attributes:
7171
label: Additional context
7272
description: Add any other context about the problem here.
73-
placeholder: If this is a crash report, you can paste or link the crash message in here.
73+
placeholder: If this is a crash report, you can paste or link the crash message in here. Include LSPosed logs if you are using xposed mods.
7474
validations:
7575
required: false

.github/workflows/build_debug.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
steps:
3535
- uses: actions/checkout@v4
3636
- name: set up JDK 18
37-
uses: actions/setup-java@v3
37+
uses: actions/setup-java@v4
3838
with:
3939
java-version: '18'
4040
distribution: 'temurin'
@@ -68,7 +68,7 @@ jobs:
6868
run: ./gradlew assembleDebug
6969

7070
- name: Upload a Build Artifact
71-
uses: actions/upload-artifact@v3
71+
uses: actions/upload-artifact@v4
7272
with:
7373
name: "Iconify v${{ env.VERSION_NAME }} Dev (#${{github.run_number}})"
7474
path: app/build/outputs/apk/debug/*.apk

README.md

Lines changed: 44 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<div align="center">
22
<img src="https://raw.githubusercontent.com/Mahmud0808/Iconify/beta/.github/resources/banner.png" width="100%" alt="Banner">
33

4-
# v6.6.0 is out!
4+
# v6.7.0 is out!
55
</div>
66
<p align="center">
77
<a href="https://github.com/Mahmud0808/Iconify/releases"><img src="https://img.shields.io/github/downloads/Mahmud0808/Iconify/total?color=%233DDC84&logo=android&logoColor=%23fff&style=for-the-badge" alt="Downloads"></a>
@@ -28,9 +28,9 @@ Furthermore, the open-source nature of Iconify encourages community contribution
2828
<img src="https://raw.githubusercontent.com/Mahmud0808/Iconify/beta/.github/resources/features.png" width="100%" alt="Features">
2929
</div>
3030

31-
```diff
32-
- NOTE: This app requires Magisk or KernelSU for root access. Any alternative methods won't work.
33-
```
31+
> [!CAUTION]
32+
>
33+
> This app requires Magisk or KernelSU for root access. Any alternative methods won't work.
3434
3535
# 🛠 Requirements
3636

@@ -42,28 +42,46 @@ Furthermore, the open-source nature of Iconify encourages community contribution
4242

4343
- Decryption Supported Custom Recovery (Just in case)
4444

45-
> KSU users must flash OverlayFS Module from [**HERE**](https://github.com/HuskyDG/magic_overlayfs/releases) before installing iconify.
46-
>
47-
> Remember to edit _mode.sh_ file inside the module and change these values before flashing:
48-
>
49-
> `OVERLAY_MODE=1`
50-
> `DO_UNMOUNT_KSU=true`
51-
>
52-
> Note: If one of the above variable doesn't exist, skip that particular variable.
53-
>
54-
> If the customizations are still not taking effect, ensure that SystemUI has been granted root permission. After granting root access, reboot your device for the changes to take effect.
55-
5645
# 👨‍💻 Installation
5746

58-
1. Go to [Releases](https://github.com/Mahmud0808/Iconify/releases) section.
47+
### Installation for Magisk Users:​
48+
49+
1. Download and install the Iconify app.
50+
51+
2. Open the app, grant root permission and follow the instructions.
52+
53+
3. Wait for it to finish generating rom specific module.
54+
55+
4. Reboot the device when prompted, profit!
56+
57+
> [!NOTE]
58+
>
59+
> If some or most of the customizations are still not working for Magisk users, you might need to follow step 1 of KernelSU users' installation steps.
60+
61+
### Installation for KernelSU Users:​
62+
63+
1. Flash [Magic Overlayfs](https://github.com/HuskyDG/magic_overlayfs/releases) module (to make read-only system read-write)
64+
65+
> [!IMPORTANT]
66+
>
67+
> Remember to edit _mode.sh_ file inside the module and change these values before flashing:
68+
>
69+
> `OVERLAY_MODE=1`
70+
> `DO_UNMOUNT_KSU=true`
71+
>
72+
> Note: If one of the above variable doesn't exist, skip that particular variable.
73+
74+
2. Flash [ZygiskOnKernelSU](https://github.com/Dr-TSNG/ZygiskOnKernelSU/releases/latest) module (only if you want to use LSPosed features)
5975

60-
2. Download the `.apk` file.
76+
3. Grant SuperSU/root permission for SystemUI from KernelSU app
6177

62-
3. Install and open the application.
78+
4. Reboot your device to get the modules installed successfully
6379

64-
4. Follow the instructions, wait for finishing overlay building process.
80+
5. Now follow the installation steps of magisk users and voila!
6581

66-
5. Reboot the device when prompted, profit.
82+
> [!TIP]
83+
>
84+
> KernelSU doesn't show root prompt. You will have to manually enable root access for Iconify from KernelSU app itself.
6785
6886
# 🤫 Roadmap
6987

@@ -90,7 +108,7 @@ You can help translate Iconify [on Crowdin](https://crowdin.com/project/iconify)
90108
# 🤓 FAQ
91109

92110
- How does Iconify work?
93-
- Iconify uses Android overlays that allows modifications to be applied to the user interface (UI) of the device without directly modifying the underlying system files.
111+
- Iconify uses Android overlays and Xposed framework that allows modifications to be applied to the user interface (UI) of the device without directly modifying the underlying system files.
94112
- Do I need a root access for Iconify to work?
95113
- Yes, root access is required for Iconify to function properly. While Iconify does support KernelSU, it is highly recommended to use Magisk for the best compatibility.
96114
- Why is LSPosed listed as an optional requirement?
@@ -127,25 +145,11 @@ You can help translate Iconify [on Crowdin](https://crowdin.com/project/iconify)
127145
- [AOSPMods](https://github.com/siavash79/AOSPMods), [@siavash79](https://t.me/siavash7999) for helping me with Xposed mods.
128146
- [@Sanely_insane](https://t.me/sanely_insane), [@Jaguar](https://t.me/Jaguar0066) for support and motivation.
129147
- [HideNavBar](https://github.com/Magisk-Modules-Repo/HideNavBar) for the navbar tweaks.
130-
- And everyone who contributed... :)
131-
132-
### Translators:
133-
134-
- Arabic [@MRX7014](https://github.com/mrx7014), [@Mohamed Bahaa](https://github.com/muhammadbahaa2001)
135-
- French [@MXC48](https://github.com/MXC48)
136-
- Indonesian [@KaeruShi](https://github.com/KaeruShi)
137-
- Italian [@Danilo Belmonte](https://crowdin.com/profile/steve.burnside)
138-
- Persian [@Faceless1999](https://github.com/Faceless1999)
139-
- Polish [@SK00RUPA](https://github.com/SK00RUPA)
140-
- Portuguese [@ElTifo](https://github.com/ElTifo)
141-
- Russian [@B1ays](https://github.com/B1ays)
142-
- Simplified Chinese [@Cccc-owo](https://github.com/Cccc-owo)
143-
- Spanish [@luckkmaxx](https://github.com/luckkmaxx)
144-
- Turkish [@serhat-demir](https://github.com/serhat-demir), [@Emre](https://crowdin.com/profile/khapnols), [@WINZORT](https://crowdin.com/profile/linuxthegoat)
145-
- Vietnamese [@viettel1211](https://t.me/viettel1211)
148+
- And everyone who [contributed](https://github.com/Mahmud0808/Iconify/graphs/contributors) and [translated](https://crowdin.com/project/iconify/members)... :)
146149

147150
# 📝 Disclaimer
148151

149-
- Please note that Iconify may not be fully compatible with all custom ROMs. It is discouraged to use on heavily modified ROMs.
150-
- I cannot be held responsible for any potential damage or issues that may occur to your device while using Iconify.
151-
- It is highly recommended to have a custom recovery installed on your device to revert any changes in case of unexpected problems.
152+
> [!WARNING]
153+
> - Please note that Iconify may not be fully compatible with all custom ROMs. It is discouraged to use on heavily modified ROMs.
154+
> - I cannot be held responsible for any potential damage or issues that may occur to your device while using Iconify.
155+
> - It is highly recommended to have a custom recovery installed on your device to revert any changes in case of unexpected problems.

app/build.gradle

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,10 @@ android {
1212
applicationId "com.drdisagree.iconify"
1313
minSdk 31
1414
targetSdk 34
15-
versionCode 16
16-
versionName "6.6.0"
15+
versionCode 17
16+
versionName "6.7.0"
1717
setProperty("archivesBaseName", "Iconify v" + versionName)
1818
buildConfigField "int", "MIN_SDK_VERSION", "$minSdkVersion.apiLevel"
19-
20-
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2119
}
2220

2321
final def keystorePropertiesFile = rootProject.file("keystore.properties")
@@ -104,13 +102,13 @@ android {
104102

105103
dependencies {
106104
// Magisk libsu version
107-
def libsuVersion = '5.2.1'
105+
def libsuVersion = '5.2.2'
108106

109107
// Kotlin
110108
implementation 'androidx.core:core-ktx:1.12.0'
111109

112110
// Data Binding
113-
implementation 'com.android.databinding:library:8.1.3'
111+
implementation 'com.android.databinding:library:8.2.2'
114112

115113
// Xposed API
116114
compileOnly files('libs/api-82.jar')
@@ -130,7 +128,7 @@ dependencies {
130128
implementation 'androidx.core:core-splashscreen:1.0.1'
131129

132130
// Material Components
133-
implementation 'com.google.android.material:material:1.10.0'
131+
implementation 'com.google.android.material:material:1.12.0-alpha03'
134132

135133
// APK Signer
136134
implementation 'org.bouncycastle:bcpkix-jdk18on:1.76'
@@ -154,7 +152,7 @@ dependencies {
154152
implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
155153

156154
// ViewPager2
157-
implementation "androidx.viewpager2:viewpager2:1.0.0"
155+
implementation 'androidx.viewpager2:viewpager2:1.0.0'
158156

159157
// Circle Indicator
160158
implementation 'me.relex:circleindicator:2.1.6'
@@ -163,33 +161,32 @@ dependencies {
163161
implementation 'com.airbnb.android:lottie:6.1.0'
164162

165163
// HTML Parser
166-
implementation 'org.jsoup:jsoup:1.16.1'
164+
implementation 'org.jsoup:jsoup:1.17.2'
167165

168166
// Collapsing Toolbar with subtitle
169167
implementation "com.hendraanggrian.material:collapsingtoolbarlayout-subtitle:1.5.0"
170168

171-
// Naviation Component
172-
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.5'
173-
implementation 'androidx.navigation:navigation-ui-ktx:2.7.5'
169+
// Navigation Component
170+
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.6'
171+
implementation 'androidx.navigation:navigation-ui-ktx:2.7.6'
174172

175173
// Concurrency
176-
implementation 'androidx.work:work-runtime:2.8.1'
174+
implementation 'androidx.work:work-runtime:2.9.0'
177175
implementation "androidx.concurrent:concurrent-futures:1.1.0"
176+
implementation 'com.google.guava:guava:29.0-jre'
178177

179178
// Event Bus
180179
implementation 'org.greenrobot:eventbus:3.3.1'
181180

181+
// Dots Indicator
182+
implementation 'com.tbuonomo:dotsindicator:4.3'
183+
182184
// Misc
183185
implementation 'androidx.appcompat:appcompat:1.6.1'
184186
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
185-
implementation 'androidx.work:work-runtime:2.8.1'
186-
implementation 'androidx.work:work-runtime-ktx:2.8.1'
187+
implementation 'androidx.work:work-runtime:2.9.0'
188+
implementation 'androidx.work:work-runtime-ktx:2.9.0'
187189
implementation 'org.slf4j:slf4j-api:2.0.9'
188-
189-
// Test Implementation
190-
testImplementation 'junit:junit:4.13.2'
191-
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
192-
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
193190
}
194191

195192
tasks.register('printVersionName') {

app/proguard-android-optimize.txt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
1-
-allowaccessmodification
2-
-dontoptimize
3-
-dontpreverify
4-
-dontusemixedcaseclassnames
5-
-dontskipnonpubliclibraryclasses
6-
-verbose
1+
-keepattributes Exceptions,LineNumberTable,Signature,SourceFile
72

8-
-keepattributes *Annotation*
9-
-keepattributes SourceFile,LineNumberTable
10-
11-
-keepclasseswithmembernames class * {
3+
-keepclasseswithmembernames,allowoptimization,allowobfuscation class * {
124
native <methods>;
135
}
146

15-
-keepclassmembers enum * {
7+
-keepclassmembers,allowoptimization,allowobfuscation enum * {
168
public static **[] values();
179
public static ** valueOf(java.lang.String);
1810
}

app/proguard-rules.pro

Lines changed: 32 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,46 @@
1-
# Copyright 2014 Google Inc. All rights reserved.
2-
#
3-
# Licensed under the Apache License, Version 2.0 (the "License");
4-
# you may not use this file except in compliance with the License.
5-
# You may obtain a copy of the License at
6-
#
7-
# http://www.apache.org/licenses/LICENSE-2.0
8-
#
9-
# Unless required by applicable law or agreed to in writing, software
10-
# distributed under the License is distributed on an "AS IS" BASIS,
11-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12-
# See the License for the specific language governing permissions and
13-
# limitations under the License.
1+
# Kotlin
2+
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
3+
public static void check*(...);
4+
public static void throw*(...);
5+
}
6+
-assumenosideeffects class java.util.Objects {
7+
public static ** requireNonNull(...);
8+
}
149

15-
# This is a configuration file for ProGuard.
16-
# http://proguard.sourceforge.net/index.html#manual/usage.html
17-
-dontusemixedcaseclassnames
18-
-verbose
19-
# Optimization is turned off by default. Dex does not like code run
20-
# through the ProGuard optimize and preverify steps (and performs some
21-
# of these optimizations on its own).
22-
#-dontoptimize
23-
-dontobfuscate
24-
# If you want to enable optimization, you should include the
25-
# following:
26-
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
27-
-optimizationpasses 5
28-
-allowaccessmodification
10+
# Strip debug log
11+
-assumenosideeffects class android.util.Log {
12+
public static int v(...);
13+
public static int d(...);
14+
}
2915

30-
-keep class de.robv.android.xposed.** { *; }
31-
-keep class com.drdisagree.iconify.xposed.** { *; }
32-
-keep class com.drdisagree.iconify.config.XPrefs { *; }
16+
# Xposed
17+
-keep class de.robv.android.xposed.**
18+
-keep class com.drdisagree.iconify.xposed.InitHook
19+
-keepnames class com.drdisagree.iconify.xposed.**
20+
-keepnames class com.drdisagree.iconify.config.XPrefs
21+
-keep class com.drdisagree.iconify.xposed.** {
22+
<init>(android.content.Context);
23+
}
3324

3425
# EventBus
3526
-keepattributes *Annotation*
36-
-keepclassmembers class * {
27+
-keepclassmembers,allowoptimization,allowobfuscation class * {
3728
@org.greenrobot.eventbus.Subscribe <methods>;
3829
}
39-
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
30+
-keep,allowoptimization,allowobfuscation enum org.greenrobot.eventbus.ThreadMode { *; }
4031

4132
# If using AsyncExecutord, keep required constructor of default event used.
4233
# Adjust the class name if a custom failure event type is used.
43-
-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
34+
-keepclassmembers,allowoptimization,allowobfuscation class org.greenrobot.eventbus.util.ThrowableFailureEvent {
4435
<init>(java.lang.Throwable);
4536
}
4637

4738
# Accessed via reflection, avoid renaming or removal
48-
-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl
39+
-keep,allowoptimization,allowobfuscation class org.greenrobot.eventbus.android.AndroidComponentsImpl
40+
41+
# Keep the ConstraintLayout Motion class
42+
-keep,allowoptimization,allowobfuscation class androidx.constraintlayout.motion.widget.** { *; }
43+
44+
# Obfuscation
45+
-repackageclasses
46+
-allowaccessmodification

app/proguard.pro

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
-keep class com.jaredrummler.android.colorpicker.**
2-
-keep class javax.annotation.Nullable
1+
-keep,allowoptimization,allowobfuscation class com.jaredrummler.android.colorpicker.**
2+
-keep,allowoptimization,allowobfuscation class javax.annotation.Nullable
33
-dontwarn sun.security.internal.spec.**
44
-dontwarn sun.security.provider.**
55
-dontwarn com.jaredrummler.android.colorpicker.**
6-
-dontwarn javax.annotation.Nullable
6+
-dontwarn javax.annotation.Nullable

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838
android:theme="@style/Theme.Iconify"
3939
tools:targetApi="tiramisu">
4040
<activity
41-
android:name=".ui.activities.Onboarding"
41+
android:name=".ui.activities.OnboardingActivity"
4242
android:exported="false" />
4343
<activity
44-
android:name=".ui.activities.HomePage"
44+
android:name=".ui.activities.MainActivity"
4545
android:exported="false" />
4646
<activity
4747
android:name=".SplashActivity"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<string name="config_icon_mask">M50.00,0.00C77.61,-0.00,100.00,22.39,100.00,50.00C100.00,77.61,77.61,100.00,50.00,100.00C22.39,100.00,0.00,77.61,0.00,50.00C0.00,22.39,22.39,0.00,50.00,0.00z</string>
4+
<bool name="config_useRoundIcon">false</bool>
5+
</resources>

app/src/main/assets/Overlays/com.android.systemui/QSNT1/res/color/shade_disabled.xml renamed to app/src/main/assets/Overlays/com.android.systemui/BBN5/res/color/surface_header_dark_sysui.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<selector xmlns:android="http://schemas.android.com/apk/res/android">
33
<item
4-
android:color="@*android:color/system_neutral2_500"
5-
android:lStar="4.0" />
4+
android:color="@*android:color/system_neutral1_500"
5+
android:lStar="5.0" />
66
</selector>

0 commit comments

Comments
 (0)