Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
e6d1d44
Update contributors.json
Mahmud0808 Mar 17, 2026
6704319
Initial changes for jetpack compose migration
Mahmud0808 Mar 27, 2026
102b2c7
Merge branch 'wip-compose' into beta
Mahmud0808 Mar 27, 2026
e5ddfde
Merge pull request #890 from Mahmud0808/beta
Mahmud0808 Mar 27, 2026
a80a89b
Move AIDL files to services.providers package and update references
Mahmud0808 Mar 27, 2026
5da13fe
Remove isMasterSwitch check for LeadingIcon in SwitchPreferenceItem
Mahmud0808 Mar 27, 2026
fad6fbc
Add options for floating bottom bar and blur effect
Mahmud0808 Mar 27, 2026
f6aed2c
Remove custom category shadow and update language icon in settings
Mahmud0808 Mar 27, 2026
5a943bb
Remove top padding from HomeBannerCard and update PreferenceScreen pa…
Mahmud0808 Mar 27, 2026
fc7b2fb
Refactor state management and initialization in ColorPickerPreference…
Mahmud0808 Mar 27, 2026
8a3a63f
Add Custom Quick Settings Header Image and QS tile color customization
Mahmud0808 Mar 27, 2026
c6248c9
Rename dp extension property to toDp in CurrentWeatherView
Mahmud0808 Mar 27, 2026
adc3011
Refactor InitPreferences to use IO dispatcher and suspending shell in…
Mahmud0808 Mar 28, 2026
119f9a1
Replace HomeBannerCard glow and shadow effects with 3D tilt and scale…
Mahmud0808 Mar 28, 2026
497a3f1
Move Shell initialization to onCreate and implement timeout for root …
Mahmud0808 Mar 28, 2026
810eaa4
Comment out SliderColors hook in QSTheme.kt
Mahmud0808 Mar 28, 2026
af2954b
Add default values to getString calls in LookAndFeelScreen
Mahmud0808 Mar 28, 2026
2ee7a77
Replace aspectRatio with fixed height in HomeCategoryCard
Mahmud0808 Mar 28, 2026
1ff95b2
Replace ConsolasFontTextAppearance style with direct fontFamily attri…
Mahmud0808 Mar 28, 2026
a5f86b2
Remove MiscUtils helper class
Mahmud0808 Mar 28, 2026
bf1f987
Clean up redundant type conversions, nullability operators, and impro…
Mahmud0808 Mar 28, 2026
4d5661e
Update KSP to 2.3.6
Mahmud0808 Mar 28, 2026
314ea40
Suppress Unused warnings and remove redundant type declaration
Mahmud0808 Mar 28, 2026
16c264a
Move -renamesourcefileattribute rule to proguard-release.pro
Mahmud0808 Mar 29, 2026
a7642a1
Update TextClock alignment and width in preview_lockscreen_clock_1.xml
Mahmud0808 Mar 29, 2026
aedb8df
Update TextClock layout width and gravity in preview_lockscreen_clock_6
Mahmud0808 Mar 29, 2026
0b67ab2
Add lockscreen clock customization and device preview pager
Mahmud0808 Mar 29, 2026
b4b24a7
Add custom device and user name settings to LockscreenClockScreen and…
Mahmud0808 Mar 29, 2026
0fff9cb
Adjust slider ranges and default text scaling for lockscreen clock se…
Mahmud0808 Mar 29, 2026
285d8cc
Add Quick Settings margin customization options
Mahmud0808 Mar 29, 2026
bcaeb55
Implement FabMenuItem data class and harmonize FAB menu colors in Mai…
Mahmud0808 Mar 29, 2026
ee54b89
Extract asset-related utility methods from `FileUtils` to a new `Asse…
Mahmud0808 Mar 29, 2026
82c1418
Simplify fileExists and folderExists in RootUtils by using shell exit…
Mahmud0808 Mar 29, 2026
db53f1d
Update gravity and add layout_gravity in preview_lockscreen_clock_58
Mahmud0808 Mar 29, 2026
cd6fd51
Add wallpaper support to DevicePreviewPager and implement WallpaperUt…
Mahmud0808 Mar 29, 2026
c6bfd60
Move wallpaper loading logic to LockscreenClockViewModel and update D…
Mahmud0808 Mar 30, 2026
21d179f
Add lockscreen media album art configuration options and keys
Mahmud0808 Mar 30, 2026
afb3398
Implement Depth Wallpaper settings and example preview component
Mahmud0808 Mar 30, 2026
00abf1d
Rename LSCLOCK_TEXT_SCALING to LSCLOCK_TEXT_SCALE and update its rang…
Mahmud0808 Mar 30, 2026
cce4efb
Implement Lockscreen Widgets preferences and update SharedPreferences…
Mahmud0808 Mar 30, 2026
d571476
Replace ScrollState with LazyColumn and add scroll indicators in list…
Mahmud0808 Mar 30, 2026
2830fdc
Implement Lockscreen Weather screen and ViewModel
Mahmud0808 Mar 30, 2026
5d09d19
Adjust padding, spacing, and text style in ListPreferenceItem and Mul…
Mahmud0808 Mar 30, 2026
9374c9d
Move weather-related components from lockscreen.common to lockscreen.…
Mahmud0808 Mar 30, 2026
45730e5
Implement location search functionality in lockscreen weather settings
Mahmud0808 Mar 30, 2026
d86556c
Refactor Lockscreen Weather settings and extract weather event handli…
Mahmud0808 Mar 31, 2026
fa681e9
Add initialization calls to getter methods in PreferenceController
Mahmud0808 Mar 31, 2026
46ae683
Add lockscreen widgets weather settings and refactor WeatherConfig to…
Mahmud0808 Mar 31, 2026
ed1b078
Optimize visibility state management and animations in PreferenceScre…
Mahmud0808 Mar 31, 2026
9a90fa5
Update slider titles in LockscreenWidgetsScreen
Mahmud0808 Mar 31, 2026
a8a5686
Update haptic feedback logic in SliderPreferenceItem to trigger on la…
Mahmud0808 Mar 31, 2026
ee58da9
Use defaultValue from PreferenceDefinition as the default value in Sl…
Mahmud0808 Mar 31, 2026
080784e
Add UI and Text scale settings with support for delayed preference up…
Mahmud0808 Mar 31, 2026
9dd87e5
Replace WeatherViewModel dependency with onItemClick callback in Weat…
Mahmud0808 Mar 31, 2026
1d8e7cc
Implement custom status bar logo selection and bottom sheet in Status…
Mahmud0808 Mar 31, 2026
7896c6c
Add summary to battery icon visibility switch in StatusbarScreen
Mahmud0808 Mar 31, 2026
7e1f8c5
Implement PickVisualMedia for image selection in FilePickerPreference…
Mahmud0808 Mar 31, 2026
3469eff
Reorganize settings and update categories in LockscreenWeatherScreen
Mahmud0808 Mar 31, 2026
d65a737
Remove summary strings from master switches and update SwitchPreferen…
Mahmud0808 Apr 1, 2026
37e1dbb
Update horizontal padding and apply titleSmallEmphasized typography i…
Mahmud0808 Apr 1, 2026
9bb698a
Update FilePickerPreferenceItem to use default button shapes
Mahmud0808 Apr 1, 2026
a8fb275
Add reset button and default value indicator to SliderPreferenceItem
Mahmud0808 Apr 1, 2026
a859aa9
Rename CUSTOM_LSCLOCK to CUSTOM_LOCKSCREEN_CLOCK and implement System…
Mahmud0808 Apr 1, 2026
e65f102
Replace ModalBottomSheet with CustomBottomSheet in lockscreen and sta…
Mahmud0808 Apr 1, 2026
28e69d9
Update HomeCategoryCard shape to extraLarge and adjust foreground col…
Mahmud0808 Apr 1, 2026
f310e1d
Refactor preference management to use `PreferenceController` and `Set…
Mahmud0808 Apr 1, 2026
1bcf571
Add preferences for Dual Statusbar configuration in DualStatusbarScre…
Mahmud0808 Apr 1, 2026
bfed2de
Add default values to preference screen parameters and expand PREFERE…
Mahmud0808 Apr 1, 2026
152596e
Enable default indicator and reset button for sliders in LookAndFeelS…
Mahmud0808 Apr 1, 2026
cc414fd
Delete SwitchCompiler and refactor BackupRestore to use a centralized…
Mahmud0808 Apr 1, 2026
c0c2a93
Rename preference controller variables to prefController for consiste…
Mahmud0808 Apr 2, 2026
bd432ef
Add customization preferences for status bar clock chip and update re…
Mahmud0808 Apr 2, 2026
3ce9d7f
Adjust animation timing in DepthWallpaperExample.kt
Mahmud0808 Apr 2, 2026
dd2a93f
Make preference min heights private in class
Mahmud0808 Apr 2, 2026
025c9b6
Replace shell commands with FileUtils for directory creation and reso…
Mahmud0808 Apr 2, 2026
3ec6c7a
Implement Settings Icons customization features
Mahmud0808 Apr 2, 2026
cd7f9fc
Add RoundedCornerShape to NotificationCard
Mahmud0808 Apr 2, 2026
b105ab5
Remove coming soon toast from home categories and add it to tweaks pr…
Mahmud0808 Apr 2, 2026
50e4cb9
Optimize log scrolling and use indexed items in InstallationDialog
Mahmud0808 Apr 2, 2026
a5bdf7b
Update module service script to handle AMAC/AMGC overlays and refacto…
Mahmud0808 Apr 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
273 changes: 128 additions & 145 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,26 +1,33 @@
import com.android.build.api.dsl.ApplicationExtension
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.io.FileInputStream
import java.util.Properties

plugins {
alias(libs.plugins.agp.app)
alias(libs.plugins.kotlin.ksp)
alias(libs.plugins.kotlin.parcelize)
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.hilt)
alias(libs.plugins.ksp)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.parcelize)
}

configure<ApplicationExtension> {
android {
namespace = "com.drdisagree.iconify"
compileSdk = 36

compileSdk {
version = release(36) {
minorApiLevel = 1
}
}

defaultConfig {
applicationId = "com.drdisagree.iconify"
minSdk = 36
targetSdk = 36
versionCode = 24
versionName = "7.2.0"
versionCode = 25
versionName = "8.0.0"
multiDexEnabled = true
buildConfigField("int", "MIN_SDK_VERSION", "$minSdk")
}
Expand All @@ -45,50 +52,26 @@ configure<ApplicationExtension> {

buildTypes {
debug {
isMinifyEnabled = false
isShrinkResources = false
isCrunchPngs = false
proguardFiles("proguard-android-optimize.txt", "proguard.pro", "proguard-rules.pro")
isMinifyEnabled = true
isShrinkResources = true
applicationIdSuffix = ".debug"
resValue("string", "derived_app_name", "Iconify (Debug)")
signingConfig = releaseSigning
resValue("string", "derived_app_name", "Iconify (Debug)")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro", "proguard-debug.pro"
)
}

release {
isMinifyEnabled = true
isShrinkResources = true
isCrunchPngs = false
proguardFiles("proguard-android-optimize.txt", "proguard.pro", "proguard-rules.pro")
resValue("string", "derived_app_name", "Iconify")
signingConfig = releaseSigning
}
}

flavorDimensions += "distribution"

productFlavors {
create("standard") {
isDefault = true
dimension = "distribution"
resValue("string", "derived_app_name", "Iconify")
}

create("foss") {
dimension = "distribution"
applicationIdSuffix = ".foss"
resValue("string", "derived_app_name", "Iconify (FOSS)")
}
}

sourceSets {
getByName("standard") {
java.directories.clear()
java.directories.add("src/standard/java")
}

getByName("foss") {
java.directories.clear()
java.directories.add("src/foss/java")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro", "proguard-release.pro"
)
}
}

Expand All @@ -108,41 +91,45 @@ configure<ApplicationExtension> {
includeInBundle = false
}

buildFeatures {
viewBinding = true
buildConfig = true
resValues = true
aidl = true
}

compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

buildFeatures {
compose = true
buildConfig = true
resValues = true
aidl = true
}

packaging {
jniLibs.excludes += setOf(
"/META-INF/*",
"/META-INF/versions/**",
"/org/bouncycastle/**",
"/kotlin/**",
"/kotlinx/**"
)

resources.excludes += setOf(
"/META-INF/*",
"/META-INF/versions/**",
"/org/bouncycastle/**",
"/kotlin/**",
"/kotlinx/**",
"rebel.xml",
"/*.txt",
"/*.bin",
"/*.json"
)

jniLibs.useLegacyPackaging = true
resources {
excludes += setOf(
"/META-INF/*",
"/META-INF/versions/**",
"/org/bouncycastle/**",
"/kotlin/**",
"/kotlinx/**",
"rebel.xml",
"/*.txt",
"/*.bin",
"/*.json"
)
}

jniLibs {
excludes += setOf(
"/META-INF/*",
"/META-INF/versions/**",
"/org/bouncycastle/**",
"/kotlin/**",
"/kotlinx/**"
)

useLegacyPackaging = true
}
}

lint {
Expand Down Expand Up @@ -201,19 +188,53 @@ gradle.taskGraph.whenReady {
gradle.startParameter.warningMode = WarningMode.Summary
}

val fossImplementation by configurations
val standardImplementation by configurations

dependencies {
// Kotlin
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.graphics)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.material)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.navigation.compose)
implementation(libs.androidx.navigation.runtime.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.compose.material3.window.size.class1)
implementation(libs.androidx.asynclayoutinflater)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)

// Core Library Desugaring
coreLibraryDesugaring(libs.desugar.jdk.libs)

// Data Binding
implementation(libs.library)
implementation(libs.androidx.palette.ktx)
// Material icons
implementation(libs.androidx.compose.material.icons.extended)

// Datastore
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.datastore)

// Splashscreen
implementation(libs.androidx.core.splashscreen)

// ViewModel
implementation(libs.androidx.lifecycle.viewmodel.compose)
implementation(libs.androidx.lifecycle.viewmodel.ktx)

// Navigation Animation
implementation(libs.accompanist.navigation.animation)

// Hilt
implementation(libs.hilt.android)
implementation(libs.hilt.navigation.compose)
ksp(libs.hilt.android.compiler)

// Xposed API
// F-Droid disallow `api.xposed.info` since it's not a "Trusted Maven Repository".
Expand All @@ -228,96 +249,58 @@ dependencies {
// Optional: Provides remote file system support
implementation(libs.su.nio)

// Coroutines
implementation(libs.kotlinx.coroutines.android)

// Color Picker
implementation(libs.jaredrummler.colorpicker)

// Splash Screen
implementation(libs.androidx.core.splashscreen)

// Material Components
implementation(libs.material)

// APK Signer
implementation(libs.bcpkix.jdk18on)

// Zip Util
implementation(libs.zip4j)

// Preference
implementation(libs.androidx.preference.ktx)

// Remote Preference
implementation(libs.remotepreferences)

// Flexbox
implementation(libs.flexbox)
// Google Subject Segmentation - MLKit
implementation(libs.com.google.android.gms.play.services.mlkit.subject.segmentation)
implementation(libs.play.services.base)

// Glide
implementation(libs.glide)
ksp(libs.glide.compiler)
// APK Signer
implementation(libs.bcpkix.jdk18on)

// RecyclerView
implementation(libs.androidx.recyclerview)
implementation(libs.androidx.recyclerview.selection)
// Liquid Glass
implementation(libs.backdrop)

// ViewPager2
implementation(libs.androidx.viewpager2)
// Haze Blur
implementation(libs.haze.jetpack.compose)

// Circle Indicator
implementation(libs.circleindicator)
// Serialization
implementation(libs.kotlinx.serialization.json)

// Lottie Animation
implementation(libs.lottie)
// Lottie animation
implementation(libs.lottie.compose)

// HTML Parser
implementation(libs.jsoup)
// Clip shape
implementation(libs.androidx.graphics.shapes)

// Collapsing Toolbar with subtitle
implementation(libs.collapsingtoolbarlayout.subtitle)
// Drawable painter
implementation(libs.accompanist.drawablepainter)

// Navigation Component
implementation(libs.androidx.navigation.fragment.ktx)
implementation(libs.androidx.navigation.ui.ktx)
// Material3 Color Scheme
implementation(libs.material.kolor)

// Work Manager
implementation(libs.androidx.work.runtime.ktx)

// Concurrency
implementation(libs.androidx.work.runtime)
implementation(libs.androidx.concurrent.futures)
implementation(libs.guava)

// Event Bus
implementation(libs.eventbus)

// Dots Indicator
implementation(libs.dotsindicator)
// OkHttp
implementation(libs.okhttp)

// Fading Edge Layout
implementation(libs.fadingedgelayout)

// Google Subject Segmentation - MLKit
standardImplementation(libs.com.google.android.gms.play.services.mlkit.subject.segmentation)
standardImplementation(libs.play.services.base)

// Blur View
implementation(libs.blurview)

// Misc
implementation(libs.androidx.appcompat)
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.work.runtime)
implementation(libs.androidx.work.runtime.ktx)
implementation(libs.slf4j.api)
implementation(libs.commons.text)

// OkHttp
implementation(libs.okhttp)
// Color Picker
implementation(libs.colorpicker.compose)

// Room Database
implementation(libs.room.runtime)
implementation(libs.room.ktx)
ksp(libs.room.compiler)
// Coil
implementation(libs.coil.compose)
implementation(libs.coil.network.okhttp)
}

tasks.register("printVersionName") {
Expand Down
10 changes: 0 additions & 10 deletions app/proguard-android-optimize.txt

This file was deleted.

9 changes: 9 additions & 0 deletions app/proguard-debug.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-keep,allowoptimization class android.util.Log {
public static int v(...);
public static int d(...);
public static int i(...);
public static int w(...);
public static int e(...);
public static int wtf(...);
public static java.lang.String getStackTraceString(java.lang.Throwable);
}
9 changes: 9 additions & 0 deletions app/proguard-release.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-keep,allowoptimization class android.util.Log {
public static int i(...);
public static int w(...);
public static int e(...);
public static int wtf(...);
public static java.lang.String getStackTraceString(java.lang.Throwable);
}

-renamesourcefileattribute SourceFile
Loading
Loading