diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt index 998f9627e..89abae3b9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationBottomSheetDialog.kt @@ -1,16 +1,21 @@ package eu.kanade.tachiyomi.ui.browse.migration.advanced.design +import android.content.res.ColorStateList +import android.graphics.drawable.ColorDrawable +import android.os.Build import android.view.LayoutInflater import android.widget.CompoundButton import android.widget.RadioButton import android.widget.RadioGroup import android.widget.Toast import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.remember import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.viewinterop.AndroidView import androidx.core.view.isVisible import eu.kanade.presentation.components.AdaptiveSheet @@ -32,11 +37,94 @@ fun MigrationBottomSheetDialog( val state = remember { MigrationBottomSheetDialogState(startMigration) } + + // KMK --> + val primaryColor = MaterialTheme.colorScheme.primary.toArgb() + val onSurface = MaterialTheme.colorScheme.onSurface.toArgb() + val surface = MaterialTheme.colorScheme.surface.toArgb() + val textHighlightColor = MaterialTheme.colorScheme.inversePrimary.toArgb() + // KMK <-- + AdaptiveSheet(onDismissRequest = onDismissRequest) { AndroidView( factory = { factoryContext -> val binding = MigrationBottomSheetBinding.inflate(LayoutInflater.from(factoryContext)) state.initPreferences(binding) + // KMK --> + binding.migrateBtn.setBackgroundColor(primaryColor) + binding.dataLabel.setTextColor(primaryColor) + binding.optionsLabel.setTextColor(primaryColor) + + val buttonTintList = ColorStateList( + arrayOf( + intArrayOf(android.R.attr.state_checked), + intArrayOf(-android.R.attr.state_checked), + ), + intArrayOf( + primaryColor, + onSurface, + ), + ) + + binding.migChapters.buttonTintList = buttonTintList + binding.migCategories.buttonTintList = buttonTintList + binding.migTracking.buttonTintList = buttonTintList + binding.migCustomCover.buttonTintList = buttonTintList + binding.migExtra.buttonTintList = buttonTintList + binding.migDeleteDownloaded.buttonTintList = buttonTintList + + binding.radioButton.buttonTintList = buttonTintList + binding.radioButton2.buttonTintList = buttonTintList + + val trackTintList = ColorStateList( + arrayOf( + intArrayOf(android.R.attr.state_checked), + intArrayOf(-android.R.attr.state_checked), + ), + intArrayOf( + primaryColor, + surface, + ), + ) + + binding.useSmartSearch.trackTintList = trackTintList + binding.extraSearchParam.trackTintList = trackTintList + binding.skipStep.trackTintList = trackTintList + binding.HideNotFoundManga.trackTintList = trackTintList + binding.OnlyShowUpdates.trackTintList = trackTintList + + val editTextBackgroundTintList = ColorStateList( + arrayOf( + intArrayOf(android.R.attr.state_focused), + intArrayOf(-android.R.attr.state_focused), + ), + intArrayOf( + primaryColor, + onSurface, + ), + ) + + with(binding.extraSearchParamText) { + highlightColor = textHighlightColor + backgroundTintList = editTextBackgroundTintList + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + textCursorDrawable = ColorDrawable(primaryColor) + textSelectHandle?.let { drawable -> + drawable.setTint(primaryColor) + setTextSelectHandle(drawable) + } + textSelectHandleLeft?.let { drawable -> + drawable.setTint(primaryColor) + setTextSelectHandleLeft(drawable) + } + textSelectHandleRight?.let { drawable -> + drawable.setTint(primaryColor) + setTextSelectHandleRight(drawable) + } + } + } + // KMK <-- binding.root }, modifier = Modifier.fillMaxWidth(), diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadAdapter.kt index 44ff8b110..5573dd14f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadAdapter.kt @@ -9,7 +9,13 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem * * @param downloadItemListener Listener called when an item of the list is released. */ -class DownloadAdapter(val downloadItemListener: DownloadItemListener) : FlexibleAdapter>( +class DownloadAdapter( + val downloadItemListener: DownloadItemListener, + // KMK --> + val progressIndicatorColor: Int, + val progressTrackColor: Int, + // KMK <-- +) : FlexibleAdapter>( null, downloadItemListener, true, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt index 514357d65..ade4114dd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt @@ -28,9 +28,9 @@ class DownloadHolder(private val view: View, val adapter: DownloadAdapter) : private lateinit var download: Download /** - * Binds this holder with the given category. + * Binds this holder with the given download. * - * @param category The category to bind. + * @param download The download to bind. */ fun bind(download: Download) { this.download = download @@ -51,6 +51,10 @@ class DownloadHolder(private val view: View, val adapter: DownloadAdapter) : notifyProgress() notifyDownloadedPages() } + // KMK --> + binding.downloadProgress.trackColor = adapter.progressTrackColor + binding.downloadProgress.setIndicatorColor(adapter.progressIndicatorColor) + // KMK <-- } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt index 509d14e50..270a139ca 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadQueueScreen.kt @@ -30,6 +30,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.input.nestedscroll.NestedScrollConnection import androidx.compose.ui.input.nestedscroll.NestedScrollSource import androidx.compose.ui.input.nestedscroll.nestedScroll @@ -258,12 +259,23 @@ object DownloadQueueScreen : Screen() { val right = with(density) { contentPadding.calculateRightPadding(layoutDirection).toPx().roundToInt() } val bottom = with(density) { contentPadding.calculateBottomPadding().toPx().roundToInt() } + // KMK --> + val progressIndicatorColor = MaterialTheme.colorScheme.primary.toArgb() + val progressTrackColor = MaterialTheme.colorScheme.secondaryContainer.toArgb() + // KMK <-- + Box(modifier = Modifier.nestedScroll(nestedScrollConnection)) { AndroidView( modifier = Modifier.fillMaxWidth(), factory = { context -> screenModel.controllerBinding = DownloadListBinding.inflate(LayoutInflater.from(context)) - screenModel.adapter = DownloadAdapter(screenModel.listener) + screenModel.adapter = DownloadAdapter( + screenModel.listener, + // KMK --> + progressIndicatorColor = progressIndicatorColor, + progressTrackColor = progressTrackColor, + // KMK <-- + ) screenModel.controllerBinding.root.adapter = screenModel.adapter screenModel.adapter?.isHandleDragEnabled = true screenModel.controllerBinding.root.layoutManager = LinearLayoutManager(context) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt index ff365feb3..fcf20b856 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt @@ -86,7 +86,7 @@ fun EditMangaDialog( // KMK --> val colors = EditMangaDialogColors( textColor = MaterialTheme.colorScheme.onSurfaceVariant.toArgb(), - textHighlightColor = MaterialTheme.colorScheme.outline.toArgb(), + textHighlightColor = MaterialTheme.colorScheme.inversePrimary.toArgb(), iconColor = MaterialTheme.colorScheme.primary.toArgb(), tagColor = MaterialTheme.colorScheme.outlineVariant.toArgb(), tagTextColor = MaterialTheme.colorScheme.onSurfaceVariant.toArgb(), diff --git a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml index caef3d0be..6d30c03dc 100644 --- a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml +++ b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml @@ -18,7 +18,7 @@ Custom theme style - Details page + Manga details page Theme based on cover Cover based theme style Tonal Spot