mirror of
https://github.com/Suwayomi/TachideskJUI.git
synced 2025-12-10 06:42:05 +01:00
Remove expect/actual dropdown menu
This commit is contained in:
@@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material.CircularProgressIndicator
|
||||
import androidx.compose.material.ContentAlpha
|
||||
import androidx.compose.material.DropdownMenuItem
|
||||
import androidx.compose.material.Icon
|
||||
import androidx.compose.material.IconButton
|
||||
import androidx.compose.material.LocalContentColor
|
||||
@@ -40,7 +41,6 @@ import ca.gosyer.jui.domain.download.model.DownloadState
|
||||
import ca.gosyer.jui.domain.manga.model.Manga
|
||||
import ca.gosyer.jui.i18n.MR
|
||||
import ca.gosyer.jui.uicore.components.DropdownIconButton
|
||||
import ca.gosyer.jui.uicore.components.DropdownMenuItem
|
||||
import ca.gosyer.jui.uicore.resources.stringResource
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
package ca.gosyer.jui.ui.base.navigation
|
||||
|
||||
import androidx.compose.material.DropdownMenu
|
||||
import androidx.compose.material.DropdownMenuItem
|
||||
import androidx.compose.material.LocalContentAlpha
|
||||
import androidx.compose.material.MaterialTheme
|
||||
import androidx.compose.material.Text
|
||||
@@ -26,8 +28,6 @@ import androidx.compose.ui.unit.DpOffset
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.util.fastForEach
|
||||
import ca.gosyer.jui.i18n.MR
|
||||
import ca.gosyer.jui.uicore.components.DropdownMenu
|
||||
import ca.gosyer.jui.uicore.components.DropdownMenuItem
|
||||
import ca.gosyer.jui.uicore.resources.stringResource
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.foundation.lazy.items
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.material.DropdownMenuItem
|
||||
import androidx.compose.material.Icon
|
||||
import androidx.compose.material.LinearProgressIndicator
|
||||
import androidx.compose.material.MaterialTheme
|
||||
@@ -53,7 +54,6 @@ import ca.gosyer.jui.ui.base.navigation.ActionItem
|
||||
import ca.gosyer.jui.ui.base.navigation.Toolbar
|
||||
import ca.gosyer.jui.ui.main.components.bottomNav
|
||||
import ca.gosyer.jui.uicore.components.DropdownIconButton
|
||||
import ca.gosyer.jui.uicore.components.DropdownMenuItem
|
||||
import ca.gosyer.jui.uicore.components.MangaListItem
|
||||
import ca.gosyer.jui.uicore.components.MangaListItemColumn
|
||||
import ca.gosyer.jui.uicore.components.MangaListItemImage
|
||||
|
||||
@@ -22,6 +22,8 @@ import androidx.compose.foundation.layout.only
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.layout.windowInsetsPadding
|
||||
import androidx.compose.material.DropdownMenu
|
||||
import androidx.compose.material.DropdownMenuItem
|
||||
import androidx.compose.material.ExtendedFloatingActionButton
|
||||
import androidx.compose.material.Icon
|
||||
import androidx.compose.material.ModalBottomSheetLayout
|
||||
@@ -57,8 +59,6 @@ import ca.gosyer.jui.ui.base.navigation.Toolbar
|
||||
import ca.gosyer.jui.ui.main.components.bottomNav
|
||||
import ca.gosyer.jui.ui.sources.browse.filter.SourceFiltersMenu
|
||||
import ca.gosyer.jui.ui.sources.browse.filter.model.SourceFiltersView
|
||||
import ca.gosyer.jui.uicore.components.DropdownMenu
|
||||
import ca.gosyer.jui.uicore.components.DropdownMenuItem
|
||||
import ca.gosyer.jui.uicore.components.LoadingScreen
|
||||
import ca.gosyer.jui.uicore.insets.navigationBars
|
||||
import ca.gosyer.jui.uicore.insets.statusBars
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
package ca.gosyer.jui.ui.library.components
|
||||
|
||||
import androidx.compose.foundation.combinedClickable
|
||||
import androidx.compose.material.DropdownMenu
|
||||
import androidx.compose.material.DropdownMenuItem
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
@@ -15,8 +17,6 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.composed
|
||||
import ca.gosyer.jui.i18n.MR
|
||||
import ca.gosyer.jui.uicore.components.DropdownMenu
|
||||
import ca.gosyer.jui.uicore.components.DropdownMenuItem
|
||||
import ca.gosyer.jui.uicore.resources.stringResource
|
||||
|
||||
actual fun Modifier.libraryMangaModifier(
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package ca.gosyer.jui.uicore.components
|
||||
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.DpOffset
|
||||
import androidx.compose.ui.window.PopupProperties as AndroidPopupProperties
|
||||
import androidx.compose.ui.window.SecureFlagPolicy as AndroidSecureFlagPolicy
|
||||
|
||||
@Composable
|
||||
internal actual fun RealDropdownMenu(
|
||||
expanded: Boolean,
|
||||
onDismissRequest: () -> Unit,
|
||||
modifier: Modifier,
|
||||
offset: DpOffset,
|
||||
properties: PopupProperties,
|
||||
content: @Composable ColumnScope.() -> Unit,
|
||||
) = androidx.compose.material.DropdownMenu(
|
||||
expanded = expanded,
|
||||
onDismissRequest = onDismissRequest,
|
||||
properties = properties.toAndroidProperties(),
|
||||
modifier = modifier,
|
||||
offset = offset,
|
||||
content = content,
|
||||
)
|
||||
|
||||
@Composable
|
||||
internal actual fun RealDropdownMenuItem(
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier,
|
||||
enabled: Boolean,
|
||||
contentPadding: PaddingValues,
|
||||
interactionSource: MutableInteractionSource,
|
||||
content: @Composable RowScope.() -> Unit,
|
||||
) = androidx.compose.material.DropdownMenuItem(
|
||||
onClick = onClick,
|
||||
modifier = modifier,
|
||||
enabled = enabled,
|
||||
contentPadding = contentPadding,
|
||||
interactionSource = interactionSource,
|
||||
content = content,
|
||||
)
|
||||
|
||||
@Stable
|
||||
fun PopupProperties.toAndroidProperties() =
|
||||
AndroidPopupProperties(
|
||||
focusable = focusable,
|
||||
dismissOnBackPress = dismissOnBackPress,
|
||||
dismissOnClickOutside = dismissOnClickOutside,
|
||||
securePolicy = securePolicy.toAndroidSecureFlagPolicy(),
|
||||
excludeFromSystemGesture = excludeFromSystemGesture,
|
||||
clippingEnabled = clippingEnabled,
|
||||
usePlatformDefaultWidth = usePlatformDefaultWidth,
|
||||
)
|
||||
|
||||
@Stable
|
||||
fun SecureFlagPolicy.toAndroidSecureFlagPolicy() =
|
||||
when (this) {
|
||||
SecureFlagPolicy.Inherit -> AndroidSecureFlagPolicy.Inherit
|
||||
SecureFlagPolicy.SecureOn -> AndroidSecureFlagPolicy.SecureOn
|
||||
SecureFlagPolicy.SecureOff -> AndroidSecureFlagPolicy.SecureOff
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package ca.gosyer.jui.uicore.components
|
||||
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.material.MenuDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.DpOffset
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
/**
|
||||
* Policy on setting [WindowManager.LayoutParams.FLAG_SECURE] on a window.
|
||||
*/
|
||||
@Stable
|
||||
enum class SecureFlagPolicy {
|
||||
/**
|
||||
* Inherit [WindowManager.LayoutParams.FLAG_SECURE] from the parent window and pass it on the
|
||||
* window that is using this policy.
|
||||
*/
|
||||
Inherit,
|
||||
|
||||
/**
|
||||
* Forces [WindowManager.LayoutParams.FLAG_SECURE] to be set on the window that is using this
|
||||
* policy.
|
||||
*/
|
||||
SecureOn,
|
||||
|
||||
/**
|
||||
* No [WindowManager.LayoutParams.FLAG_SECURE] will be set on the window that is using this
|
||||
* policy.
|
||||
*/
|
||||
SecureOff,
|
||||
}
|
||||
|
||||
@Immutable
|
||||
data class PopupProperties
|
||||
@ExperimentalComposeUiApi
|
||||
constructor(
|
||||
val focusable: Boolean = false,
|
||||
val dismissOnBackPress: Boolean = true,
|
||||
val dismissOnClickOutside: Boolean = true,
|
||||
val securePolicy: SecureFlagPolicy = SecureFlagPolicy.Inherit,
|
||||
val excludeFromSystemGesture: Boolean = true,
|
||||
val clippingEnabled: Boolean = true,
|
||||
@property:ExperimentalComposeUiApi
|
||||
val usePlatformDefaultWidth: Boolean = false,
|
||||
)
|
||||
|
||||
@Composable
|
||||
internal expect fun RealDropdownMenu(
|
||||
expanded: Boolean,
|
||||
onDismissRequest: () -> Unit,
|
||||
modifier: Modifier,
|
||||
offset: DpOffset,
|
||||
properties: PopupProperties,
|
||||
content: @Composable ColumnScope.() -> Unit,
|
||||
)
|
||||
|
||||
@Composable
|
||||
fun DropdownMenu(
|
||||
expanded: Boolean,
|
||||
onDismissRequest: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
offset: DpOffset = DpOffset(0.dp, 0.dp),
|
||||
properties: PopupProperties = PopupProperties(focusable = true),
|
||||
content: @Composable ColumnScope.() -> Unit,
|
||||
) = RealDropdownMenu(expanded, onDismissRequest, modifier, offset, properties, content)
|
||||
|
||||
@Composable
|
||||
internal expect fun RealDropdownMenuItem(
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier,
|
||||
enabled: Boolean,
|
||||
contentPadding: PaddingValues,
|
||||
interactionSource: MutableInteractionSource,
|
||||
content: @Composable RowScope.() -> Unit,
|
||||
)
|
||||
|
||||
@Composable
|
||||
fun DropdownMenuItem(
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
enabled: Boolean = true,
|
||||
contentPadding: PaddingValues = MenuDefaults.DropdownMenuItemContentPadding,
|
||||
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
||||
content: @Composable RowScope.() -> Unit,
|
||||
) = RealDropdownMenuItem(onClick, modifier, enabled, contentPadding, interactionSource, content)
|
||||
@@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.BoxScope
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.material.DropdownMenu
|
||||
import androidx.compose.material.ripple.rememberRipple
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
|
||||
@@ -14,6 +14,8 @@ import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.DropdownMenu
|
||||
import androidx.compose.material.DropdownMenuItem
|
||||
import androidx.compose.material.Icon
|
||||
import androidx.compose.material.MaterialTheme
|
||||
import androidx.compose.material.Text
|
||||
@@ -29,6 +31,7 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.compose.ui.util.fastForEachIndexed
|
||||
|
||||
@Composable
|
||||
fun Spinner(
|
||||
@@ -58,7 +61,7 @@ fun Spinner(
|
||||
onDismissRequest = { expanded = false },
|
||||
modifier = Modifier.align(Alignment.CenterEnd),
|
||||
) {
|
||||
items.forEachIndexed { index, item ->
|
||||
items.fastForEachIndexed { index, item ->
|
||||
DropdownMenuItem(
|
||||
onClick = {
|
||||
expanded = false
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package ca.gosyer.jui.uicore.components
|
||||
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.DpOffset
|
||||
|
||||
@Composable
|
||||
internal actual fun RealDropdownMenu(
|
||||
expanded: Boolean,
|
||||
onDismissRequest: () -> Unit,
|
||||
modifier: Modifier,
|
||||
offset: DpOffset,
|
||||
properties: PopupProperties,
|
||||
content: @Composable ColumnScope.() -> Unit,
|
||||
) = androidx.compose.material.DropdownMenu(
|
||||
expanded = expanded,
|
||||
onDismissRequest = onDismissRequest,
|
||||
focusable = properties.focusable,
|
||||
modifier = modifier,
|
||||
offset = offset,
|
||||
content = content,
|
||||
)
|
||||
|
||||
@Composable
|
||||
internal actual fun RealDropdownMenuItem(
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier,
|
||||
enabled: Boolean,
|
||||
contentPadding: PaddingValues,
|
||||
interactionSource: MutableInteractionSource,
|
||||
content: @Composable RowScope.() -> Unit,
|
||||
) = androidx.compose.material.DropdownMenuItem(
|
||||
onClick = onClick,
|
||||
modifier = modifier,
|
||||
enabled = enabled,
|
||||
contentPadding = contentPadding,
|
||||
interactionSource = interactionSource,
|
||||
content = content,
|
||||
)
|
||||
@@ -1,50 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package ca.gosyer.jui.uicore.components
|
||||
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.ColumnScope
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.RowScope
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.DpOffset
|
||||
|
||||
@Composable
|
||||
internal actual fun RealDropdownMenu(
|
||||
expanded: Boolean,
|
||||
onDismissRequest: () -> Unit,
|
||||
modifier: Modifier,
|
||||
offset: DpOffset,
|
||||
properties: PopupProperties,
|
||||
content: @Composable ColumnScope.() -> Unit,
|
||||
) = Unit/* TODO androidx.compose.material.DropdownMenu(
|
||||
expanded = expanded,
|
||||
onDismissRequest = onDismissRequest,
|
||||
properties = properties,
|
||||
modifier = modifier,
|
||||
offset = offset,
|
||||
content = content
|
||||
)*/
|
||||
|
||||
@Composable
|
||||
internal actual fun RealDropdownMenuItem(
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier,
|
||||
enabled: Boolean,
|
||||
contentPadding: PaddingValues,
|
||||
interactionSource: MutableInteractionSource,
|
||||
content: @Composable RowScope.() -> Unit,
|
||||
) = Unit/* TODO androidx.compose.material.DropdownMenuItem(
|
||||
onClick = onClick,
|
||||
modifier = modifier,
|
||||
enabled = enabled,
|
||||
contentPadding = contentPadding,
|
||||
interactionSource = interactionSource,
|
||||
content = content
|
||||
)
|
||||
*/
|
||||
Reference in New Issue
Block a user