Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
a859777
fix: Swap left and right double tap key event handlers (#2219)
alphastark Nov 5, 2025
72fd5e0
chore(i18n): Translations update from Hosted Weblate (#2217)
weblate Nov 5, 2025
d1d6cb8
Update aboutlib.version to v13 (major) (#2580)
renovate-bot Oct 31, 2025
a8bb780
Update dependency io.kotest:kotest-assertions-core to v6.0.4 (#2594)
renovate-bot Oct 31, 2025
f82953d
Update kotlin monorepo to v2.2.21 (#2624)
renovate-bot Oct 31, 2025
56f10a3
Update xml.serialization.version to v0.91.3 (#2625)
renovate-bot Oct 31, 2025
4f6a556
Update dependency com.google.firebase:firebase-bom to v34.5.0 (#2575)
renovate-bot Oct 31, 2025
72507d5
Update GitHub Actions (#2581)
renovate-bot Oct 31, 2025
55aa6f1
Update dependency com.squareup.okio:okio to v3.16.2 (#2576)
renovate-bot Oct 31, 2025
b4856e9
Update dependency androidx.work:work-runtime to v2.11.0 (#2626)
renovate-bot Oct 31, 2025
3844a7b
Update GitHub Actions (major) (#2627)
renovate-bot Oct 31, 2025
95ea1e0
Update plugin google-services to v4.4.4 (#2573)
renovate-bot Oct 31, 2025
af01f8c
Update okhttp monorepo to v5.3.0 (#2628)
renovate-bot Oct 31, 2025
b575843
Migrate Kitsu to use library_id and remote_id properly
Secozzi Dec 24, 2025
c4c0dcf
Fix mass migration advanced search query building (#2629)
AntsyLich Oct 31, 2025
8e5d48c
Update dependency org.junit.jupiter:junit-jupiter to v6.0.1 (#2630)
renovate-bot Oct 31, 2025
dd16b2a
Fix migration dialog migrating to wrong entry
Secozzi Dec 24, 2025
7951920
Fix migration "Attempt to invoke virtual method" crash
Secozzi Dec 24, 2025
b44716c
Bump app version code and default user agent
Secozzi Dec 24, 2025
09b04a4
Update shizuku.version to v13.1.5 (#2566)
NGB-Was-Taken Nov 1, 2025
1056089
Add subtitle support to slider preference and general cleanup
Secozzi Dec 24, 2025
06ede8f
Update markdown to v0.38.1 (#2636)
renovate-bot Nov 1, 2025
3348b59
Add option to customize concurrent downloads
Secozzi Dec 24, 2025
bb114fa
Fix extension download stuck at pending state in some cases (#2483)
c2y5 Nov 1, 2025
05dcf54
Fix scrollbar not showing when animator duration scale animation is t…
anirudhsnayak Nov 1, 2025
f2e7fe1
Fix date picker not allowing the same start and finish date in negati…
Secozzi Dec 24, 2025
16c5583
Added proper multi window support in WebView instead of treating ever…
TheUnlocked Nov 2, 2025
fdc4011
Make reader edge-to-edge
Secozzi Dec 24, 2025
ae60381
Translations update from Hosted Weblate (#2373)
weblate Nov 2, 2025
69eee8b
Migrated to the Android specific about libraries gradle plugin
AntsyLich Nov 2, 2025
f2e0dce
Translations update from Hosted Weblate (#2639)
weblate Nov 3, 2025
f55b099
Update dependency androidx.compose:compose-bom to v2025.10.01 (#2522)
renovate-bot Nov 3, 2025
6e3ce53
Fix WebView crash introduced in v0.19.2 (#2649)
bapeey Nov 4, 2025
4d21ec0
Translations update from Hosted Weblate (#2646)
weblate Nov 4, 2025
bbcf5cd
Revert "Update dependency androidx.compose:compose-bom to v2025.10.01…
AntsyLich Nov 4, 2025
efb3687
Upload test report as artifact on failure (#2664)
NGB-Was-Taken Nov 7, 2025
c8a92d6
Fix flaky migration tests (#2663)
NGB-Was-Taken Nov 7, 2025
7047e92
Update dependency androidx.core:core-splashscreen to v1.2.0 (#2661)
renovate-bot Nov 7, 2025
8829aa9
Improve WebView multi-window UX (#2662)
TheUnlocked Nov 7, 2025
79bdd60
Translations update from Hosted Weblate (#2656)
weblate Nov 7, 2025
f5dff77
Translations update from Hosted Weblate (#2676)
weblate Nov 11, 2025
48657c3
Update softprops/action-gh-release action to v2.4.2 (#2683)
renovate-bot Nov 11, 2025
f7b60e8
Update dependency com.android.tools.build:gradle to v8.13.1 (#2685)
renovate-bot Nov 11, 2025
2736f51
Update sqldelight to v2.2.1 (#2704)
renovate-bot Nov 14, 2025
39258e1
Update actions/dependency-review-action action to v4.8.2 (#2686)
renovate-bot Nov 14, 2025
671337a
Translations update from Hosted Weblate (#2687)
weblate Nov 14, 2025
a9c8e6e
Update dependency app.cash.sqldelight:sqlite-3-38-dialect to v2.2.1 (…
renovate-bot Nov 14, 2025
380a382
Update dependency com.squareup.okio:okio to v3.16.3 (#2709)
renovate-bot Nov 15, 2025
060768e
Update okhttp monorepo to v5.3.1 (#2712)
renovate-bot Nov 17, 2025
fb592dc
Update dependency com.google.firebase:firebase-bom to v34.6.0 (#2707)
renovate-bot Nov 17, 2025
126fd6f
Update dependency com.diffplug.spotless:spotless-plugin-gradle to v8.…
renovate-bot Nov 19, 2025
cdf0eeb
Update okhttp monorepo to v5.3.2 (#2720)
renovate-bot Nov 19, 2025
535d63b
Update dependency io.kotest:kotest-assertions-core to v6.0.5 (#2717)
renovate-bot Nov 19, 2025
29f6b60
Update dependency com.squareup.okio:okio to v3.16.4 (#2716)
renovate-bot Nov 19, 2025
eb38d31
Update actions/checkout action to v5.0.1 (#2715)
renovate-bot Nov 19, 2025
88c977c
Update actions/checkout action to v6 (#2729)
renovate-bot Nov 23, 2025
527f323
Update lifecycle.version to v2.10.0 (#2726)
renovate-bot Nov 23, 2025
6c852d3
Update sqlite to v2.6.2 (#2724)
renovate-bot Nov 23, 2025
4058597
Update moko to v0.25.2 (#2723)
renovate-bot Nov 23, 2025
0223d52
Update dependency androidx.activity:activity-compose to v1.12.0 (#2725)
renovate-bot Nov 23, 2025
ab6f235
Update dependency com.pinterest.ktlint:ktlint-cli to v1.8.0
Secozzi Dec 24, 2025
d59642c
Fix shizuku installer not updating installed extensions (#2697)
NGB-Was-Taken Nov 23, 2025
e851f89
Fix mass migration not using the same search queries as individual mi…
AntsyLich Nov 23, 2025
1be8979
Cleanup BaseOAuthLoginActivity and TrackLoginActivity
Secozzi Dec 24, 2025
214ee3c
Update dependency io.kotest:kotest-assertions-core to v6.0.7 (#2749)
renovate-bot Dec 1, 2025
253e8c0
Update softprops/action-gh-release action to v2.5.0 (#2750)
renovate-bot Dec 1, 2025
ccb881a
Update GitHub Actions (#2757)
renovate-bot Dec 7, 2025
05ea63a
Update dependency io.mockk:mockk to v1.14.7 (#2771)
renovate-bot Dec 7, 2025
fd802f4
Update dependency androidx.activity:activity-compose to v1.12.1 (#2760)
renovate-bot Dec 7, 2025
bc72a4d
Update tracker icons
Secozzi Dec 24, 2025
ffdfafc
Update dependency com.android.tools.build:gradle to v8.13.2 (#2780)
renovate-bot Dec 11, 2025
42e855b
Use AGP provided NDK and Build Tools version
AntsyLich Dec 12, 2025
c1d4526
Update dependency com.google.firebase:firebase-bom to v34.7.0 (#2782)
renovate-bot Dec 12, 2025
07ea105
Update GitHub Actions (#2786)
renovate-bot Dec 13, 2025
f01e45e
Minimize memory usage by reducing in-memory cover cache size (#2266)
Lolle2000la Dec 16, 2025
8c0f44e
Update kotlin monorepo to v2.3.0 (#2794)
renovate-bot Dec 16, 2025
7d3c47f
Update dependency androidx.activity:activity-compose to v1.12.2 (#2797)
renovate-bot Dec 18, 2025
c44414b
Fix pre-1970 upload date display in chapter list (#2779)
MajorTanya Dec 18, 2025
3435089
Update aboutlib.version to v13.2.1 (#2803)
renovate-bot Dec 20, 2025
7ef0758
Update markdown to v0.39.0 (#2804)
renovate-bot Dec 20, 2025
182fa7b
Update dependency androidx.compose:compose-bom to v2025.12.01 (#2651)
renovate-bot Dec 20, 2025
d0454ad
Translations update from Hosted Weblate (#2711)
weblate Dec 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.{xml,sq,sqm}]
[*.{xml,sq,sqm,aidl}]
indent_size = 4

# noinspection EditorConfigKeyCorrectness
Expand All @@ -29,3 +29,4 @@ ktlint_standard_function-expression-body = disabled
ktlint_standard_function-signature = disabled
ktlint_standard_type-argument-comment = disabled
ktlint_standard_type-parameter-comment = disabled
ktlint_standard_blank-line-between-when-conditions = disabled
18 changes: 13 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

- name: Dependency Review
if: github.event_name == 'pull_request'
uses: actions/dependency-review-action@56339e523c0409420f6c2c9a2f4292bbb3c07dd3 # v4.8.0
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2

- name: Set up JDK
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
with:
java-version: 17
distribution: temurin
Expand All @@ -56,16 +56,24 @@ jobs:
run: ./gradlew assembleRelease -Penable-updater

- name: Run unit tests
id: unit_tests
run: ./gradlew testReleaseUnitTest

- name: Upload test report
if: steps.unit_tests.outcome == 'failure'
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: test-report-${{ github.sha }}
path: app/build/reports/tests/testReleaseUnitTest

- name: Upload APK
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: arm64-v8a-${{ github.sha }}
path: app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk

- name: Upload mapping
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: mapping-${{ github.sha }}
path: app/build/outputs/mapping/release
10 changes: 5 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

- name: Set up JDK
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
with:
java-version: 17
distribution: temurin
Expand Down Expand Up @@ -80,7 +80,7 @@ jobs:
mv app/build/outputs/apk/release/app-x86_64-release-unsigned-signed.apk Animiru-x86_64-${{ needs.get_tag.outputs.tag }}.apk

- name: Upload APK
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: Animiru
path: |
Expand All @@ -98,7 +98,7 @@ jobs:

steps:
- name: Download all artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
merge-multiple: true

Expand All @@ -110,7 +110,7 @@ jobs:
Animiru

- name: Create GitHub Release
uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2.4.0
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
with:
tag_name: ${{ needs.get_tag.outputs.tag }}
name: Animiru ${{ needs.get_tag.outputs.tag }}
Expand Down
5 changes: 2 additions & 3 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ android {
defaultConfig {
applicationId = "xyz.Quickdev.Animiru.mi"

versionCode = 131
versionCode = 132
versionName = "0.19.0.0"

buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"")
Expand Down Expand Up @@ -137,9 +137,9 @@ android {
buildFeatures {
viewBinding = true
buildConfig = true
aidl = true

// Disable some unused things
aidl = false
renderScript = false
shaders = false
}
Expand Down Expand Up @@ -276,7 +276,6 @@ dependencies {
// implementation(libs.directionalviewpager) {
// exclude(group = "androidx.viewpager", module = "viewpager")
// }
// implementation(libs.insetter)
// <-- AM (REMOVE_LIBRARIES)
implementation(libs.richeditor.compose)
implementation(libs.aboutLibraries.compose)
Expand Down
7 changes: 7 additions & 0 deletions app/src/main/aidl/mihon/app/shizuku/IShellInterface.aidl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package mihon.app.shizuku;

interface IShellInterface {
void install(in AssetFileDescriptor apk) = 1;

void destroy() = 16777114;
}
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ private fun ColumnScope.SeasonDisplayPage(
value = displayGridModeSize,
valueRange = 0..10,
label = stringResource(AYMR.strings.pref_library_rows),
valueText = if (displayGridModeSize > 0) {
valueString = if (displayGridModeSize > 0) {
displayGridModeSize.toString()
} else {
stringResource(MR.strings.label_auto)
Expand All @@ -275,7 +275,7 @@ private fun ColumnScope.SeasonDisplayPage(
value = displayGridModeSize,
valueRange = 0..10,
label = stringResource(MR.strings.pref_library_columns),
valueText = if (displayGridModeSize > 0) {
valueString = if (displayGridModeSize > 0) {
displayGridModeSize.toString()
} else {
stringResource(MR.strings.label_auto)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ fun relativeDateText(
Instant.ofEpochMilli(dateEpochMillis),
ZoneId.systemDefault(),
)
.takeIf { dateEpochMillis > 0L },
.takeIf { dateEpochMillis != 0L },
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ private fun ColumnScope.DisplayPage(
value = columns,
valueRange = 0..10,
label = stringResource(AYMR.strings.pref_library_rows),
valueText = if (columns > 0) {
valueString = if (columns > 0) {
columns.toString()
} else {
stringResource(MR.strings.label_auto)
Expand All @@ -308,7 +308,7 @@ private fun ColumnScope.DisplayPage(
value = columns,
valueRange = 0..10,
label = stringResource(MR.strings.pref_library_columns),
valueText = if (columns > 0) {
valueString = if (columns > 0) {
columns.toString()
} else {
stringResource(MR.strings.label_auto)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ sealed class Preference {
abstract val title: String
abstract val enabled: Boolean

sealed class PreferenceItem<T> : Preference() {
sealed class PreferenceItem<T, R> : Preference() {
abstract val subtitle: String?
abstract val icon: ImageVector?
abstract val onValueChanged: suspend (value: T) -> Boolean
abstract val onValueChanged: suspend (value: T) -> R

/**
* A basic [PreferenceItem] that only displays texts.
Expand All @@ -42,8 +42,8 @@ sealed class Preference {
// <-- AY
override val enabled: Boolean = true,
val onClick: (() -> Unit)? = null,
) : PreferenceItem<String>() {
override val onValueChanged: suspend (value: String) -> Boolean = { true }
) : PreferenceItem<String, Unit>() {
override val onValueChanged: suspend (value: String) -> Unit = { }
}

/**
Expand All @@ -55,7 +55,7 @@ sealed class Preference {
override val subtitle: String? = null,
override val enabled: Boolean = true,
override val onValueChanged: suspend (value: Boolean) -> Boolean = { true },
) : PreferenceItem<Boolean>() {
) : PreferenceItem<Boolean, Boolean>() {
override val icon: ImageVector? = null
}

Expand All @@ -65,12 +65,13 @@ sealed class Preference {
data class SliderPreference(
val value: Int,
override val title: String,
override val subtitle: String? = null,
val valueString: String? = null,
val valueRange: IntProgression = 0..1,
@IntRange(from = 0) val steps: Int = with(valueRange) { (last - first) - 1 },
override val subtitle: String? = null,
override val enabled: Boolean = true,
override val onValueChanged: suspend (value: Int) -> Boolean = { true },
) : PreferenceItem<Int>() {
override val onValueChanged: suspend (value: Int) -> Unit = { },
) : PreferenceItem<Int, Unit>() {
override val icon: ImageVector? = null
}

Expand All @@ -88,7 +89,7 @@ sealed class Preference {
override val icon: ImageVector? = null,
override val enabled: Boolean = true,
override val onValueChanged: suspend (value: T) -> Boolean = { true },
) : PreferenceItem<T>() {
) : PreferenceItem<T, Boolean>() {
internal fun internalSet(value: Any) = preference.set(value as T)
internal suspend fun internalOnValueChanged(value: Any) = onValueChanged(value as T)

Expand All @@ -109,8 +110,8 @@ sealed class Preference {
{ v, e -> subtitle?.format(e[v]) },
override val icon: ImageVector? = null,
override val enabled: Boolean = true,
override val onValueChanged: suspend (value: String) -> Boolean = { true },
) : PreferenceItem<String>()
override val onValueChanged: suspend (value: String) -> Unit = { },
) : PreferenceItem<String, Unit>()

/**
* A [PreferenceItem] that displays a list of entries as a dialog.
Expand All @@ -134,7 +135,7 @@ sealed class Preference {
override val icon: ImageVector? = null,
override val enabled: Boolean = true,
override val onValueChanged: suspend (value: Set<String>) -> Boolean = { true },
) : PreferenceItem<Set<String>>()
) : PreferenceItem<Set<String>, Boolean>()

/**
* A [PreferenceItem] that shows a EditText in the dialog.
Expand All @@ -145,7 +146,7 @@ sealed class Preference {
override val subtitle: String? = "%s",
override val enabled: Boolean = true,
override val onValueChanged: suspend (value: String) -> Boolean = { true },
) : PreferenceItem<String>() {
) : PreferenceItem<String, Boolean>() {
override val icon: ImageVector? = null
}

Expand All @@ -162,7 +163,7 @@ sealed class Preference {
override val icon: ImageVector? = null,
override val enabled: Boolean = true,
override val onValueChanged: suspend (value: String) -> Boolean = { true },
) : PreferenceItem<String>()
) : PreferenceItem<String, Boolean>()

/**
* A [PreferenceItem] for editing MPV config files.
Expand Down Expand Up @@ -200,7 +201,7 @@ sealed class Preference {
}
true
},
) : PreferenceItem<String>()
) : PreferenceItem<String, Boolean>()

/**
* A [PreferenceItem] that shows a EditText with a subtitle in the dialog.
Expand All @@ -216,7 +217,7 @@ sealed class Preference {
override val icon: ImageVector? = null,
override val enabled: Boolean = true,
override val onValueChanged: suspend (value: String) -> Boolean = { true },
) : PreferenceItem<String>()
) : PreferenceItem<String, Boolean>()
// <-- AY

/**
Expand All @@ -226,12 +227,12 @@ sealed class Preference {
val tracker: Tracker,
val login: () -> Unit,
val logout: () -> Unit,
) : PreferenceItem<String>() {
) : PreferenceItem<String, Unit>() {
override val title: String = ""
override val enabled: Boolean = true
override val subtitle: String? = null
override val icon: ImageVector? = null
override val onValueChanged: suspend (value: String) -> Boolean = { true }
override val onValueChanged: suspend (value: String) -> Unit = { }
}

// AM (CONNECTION) -->
Expand All @@ -244,38 +245,38 @@ sealed class Preference {
override val title: String,
val login: () -> Unit,
val openSettings: () -> Unit,
) : PreferenceItem<String>() {
) : PreferenceItem<String, Unit>() {
override val enabled: Boolean = true
override val subtitle: String? = null
override val icon: ImageVector? = null
override val onValueChanged: suspend (newValue: String) -> Boolean = { true }
override val onValueChanged: suspend (newValue: String) -> Unit = { }
}
// <-- AM (CONNECTION)

data class InfoPreference(
override val title: String,
override val enabled: Boolean = true,
) : PreferenceItem<String>() {
) : PreferenceItem<String, Unit>() {
override val subtitle: String? = null
override val icon: ImageVector? = null
override val onValueChanged: suspend (value: String) -> Boolean = { true }
override val onValueChanged: suspend (value: String) -> Unit = { }
}

data class CustomPreference(
override val title: String,
val content: @Composable () -> Unit,
) : PreferenceItem<Unit>() {
) : PreferenceItem<Unit, Unit>() {
override val enabled: Boolean = true
override val subtitle: String? = null
override val icon: ImageVector? = null
override val onValueChanged: suspend (value: Unit) -> Boolean = { true }
override val onValueChanged: suspend (value: Unit) -> Unit = { }
}
}

data class PreferenceGroup(
override val title: String,
override val enabled: Boolean = true,

val preferenceItems: ImmutableList<PreferenceItem<out Any>>,
val preferenceItems: ImmutableList<PreferenceItem<out Any, out Any>>,
) : Preference()
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ val LocalPreferenceMinHeight = compositionLocalOf(structuralEqualityPolicy()) {

@Composable
fun StatusWrapper(
item: Preference.PreferenceItem<*>,
item: Preference.PreferenceItem<*, *>,
highlightKey: String?,
content: @Composable () -> Unit,
) {
Expand All @@ -60,7 +60,7 @@ fun StatusWrapper(

@Composable
internal fun PreferenceItem(
item: Preference.PreferenceItem<*>,
item: Preference.PreferenceItem<*, *>,
highlightKey: String?,
) {
val scope = rememberCoroutineScope()
Expand All @@ -87,17 +87,18 @@ internal fun PreferenceItem(
}
is Preference.PreferenceItem.SliderPreference -> {
BaseSliderItem(
label = item.title,
value = item.value,
valueRange = item.valueRange,
valueText = item.subtitle.takeUnless { it.isNullOrEmpty() } ?: item.value.toString(),
steps = item.steps,
labelStyle = MaterialTheme.typography.titleLarge.copy(fontSize = TitleFontSize),
title = item.title,
subtitle = item.subtitle,
valueString = item.valueString.takeUnless { it.isNullOrEmpty() } ?: item.value.toString(),
onChange = {
scope.launch {
item.onValueChanged(it)
}
},
titleStyle = MaterialTheme.typography.titleLarge.copy(fontSize = TitleFontSize),
modifier = Modifier.padding(
horizontal = PrefsHorizontalPadding,
vertical = PrefsVerticalPadding,
Expand Down
Loading