Add icon to jump directly to ExtensionDetailsScreen from SourcesScreen
# Conflicts: # app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt
This commit is contained in:
parent
906012cd40
commit
48437205cd
2 changed files with 41 additions and 0 deletions
|
|
@ -4,6 +4,7 @@ import androidx.compose.ui.graphics.ImageBitmap
|
|||
import androidx.compose.ui.graphics.asImageBitmap
|
||||
import androidx.core.graphics.drawable.toBitmap
|
||||
import eu.kanade.tachiyomi.extension.ExtensionManager
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import tachiyomi.domain.source.model.Source
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
|
@ -14,3 +15,14 @@ val Source.icon: ImageBitmap?
|
|||
?.toBitmap()
|
||||
?.asImageBitmap()
|
||||
}
|
||||
|
||||
// AM (BROWSE) -->
|
||||
// Add an extra property to Source for it to get access to ExtensionManager
|
||||
val Source.installedExtension: Extension.Installed
|
||||
get() {
|
||||
return Injekt.get<ExtensionManager>()
|
||||
.installedExtensionsFlow
|
||||
.value
|
||||
.find { ext -> ext.sources.any { it.id == id } }!!
|
||||
}
|
||||
// <-- AM (BROWSE)
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import androidx.compose.material.icons.filled.Close
|
|||
import androidx.compose.material.icons.filled.PushPin
|
||||
import androidx.compose.material.icons.filled.Search
|
||||
import androidx.compose.material.icons.outlined.PushPin
|
||||
import androidx.compose.material.icons.outlined.Settings
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
|
|
@ -55,8 +56,12 @@ import androidx.compose.ui.text.input.ImeAction
|
|||
import androidx.compose.ui.text.input.VisualTransformation
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import eu.kanade.domain.source.model.installedExtension
|
||||
import eu.kanade.presentation.browse.components.BaseSourceItem
|
||||
import eu.kanade.tachiyomi.ui.browse.source.SourcesScreenModel
|
||||
import eu.kanade.tachiyomi.ui.browse.extension.details.ExtensionDetailsScreen
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreenModel.Listing
|
||||
import eu.kanade.tachiyomi.util.system.LocaleHelper
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
|
@ -76,6 +81,7 @@ import tachiyomi.presentation.core.util.clearFocusOnSoftKeyboardHide
|
|||
import tachiyomi.presentation.core.util.plus
|
||||
import tachiyomi.presentation.core.util.runOnEnterKeyPressed
|
||||
import tachiyomi.presentation.core.util.secondaryItemAlpha
|
||||
import tachiyomi.source.local.LocalSource
|
||||
import tachiyomi.source.local.isLocal
|
||||
|
||||
@Composable
|
||||
|
|
@ -381,6 +387,13 @@ private fun SourceItem(
|
|||
)
|
||||
}
|
||||
// SY <--
|
||||
// AM (BROWSE) -->
|
||||
if (source.id != LocalSource.ID) {
|
||||
SourceSettingsButton(
|
||||
source = source,
|
||||
)
|
||||
}
|
||||
// <-- AM (BROWSE)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
@ -408,6 +421,22 @@ private fun SourcePinButton(
|
|||
}
|
||||
}
|
||||
|
||||
// AM (BROWSE) -->
|
||||
@Composable
|
||||
private fun SourceSettingsButton(
|
||||
source: Source,
|
||||
) {
|
||||
val navigator = LocalNavigator.currentOrThrow
|
||||
IconButton(onClick = { navigator.push(ExtensionDetailsScreen(source.installedExtension.pkgName)) }) {
|
||||
Icon(
|
||||
imageVector = Icons.Outlined.Settings,
|
||||
tint = MaterialTheme.colorScheme.primary,
|
||||
contentDescription = stringResource(MR.strings.label_settings),
|
||||
)
|
||||
}
|
||||
}
|
||||
// <-- AM (BROWSE)
|
||||
|
||||
@Composable
|
||||
fun SourceOptionsDialog(
|
||||
source: Source,
|
||||
|
|
|
|||
Loading…
Reference in a new issue