Refactor non-ripple Modifier into a separate file

Modifiers.kt will be a place for other extensions on Modifier class

PiperOrigin-RevId: 709416429
This commit is contained in:
jbibik 2024-12-24 15:24:17 -08:00 committed by Copybara-Service
parent 6da58758a8
commit afd601f670
2 changed files with 37 additions and 9 deletions

View File

@ -20,8 +20,6 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
@ -39,6 +37,7 @@ import androidx.media3.common.Player
import androidx.media3.demo.compose.buttons.ExtraControls import androidx.media3.demo.compose.buttons.ExtraControls
import androidx.media3.demo.compose.buttons.MinimalControls import androidx.media3.demo.compose.buttons.MinimalControls
import androidx.media3.demo.compose.data.videos import androidx.media3.demo.compose.data.videos
import androidx.media3.demo.compose.layout.noRippleClickable
import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.ui.compose.PlayerSurface import androidx.media3.ui.compose.PlayerSurface
import androidx.media3.ui.compose.SURFACE_TYPE_SURFACE_VIEW import androidx.media3.ui.compose.SURFACE_TYPE_SURFACE_VIEW
@ -71,13 +70,7 @@ private fun MediaPlayerScreen(player: Player, modifier: Modifier = Modifier) {
PlayerSurface( PlayerSurface(
player = player, player = player,
surfaceType = SURFACE_TYPE_SURFACE_VIEW, surfaceType = SURFACE_TYPE_SURFACE_VIEW,
modifier = modifier = modifier.noRippleClickable { showControls = !showControls },
modifier.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null, // to prevent the ripple from the tap
) {
showControls = !showControls
},
) )
if (showControls) { if (showControls) {
MinimalControls(player, Modifier.align(Alignment.Center)) MinimalControls(player, Modifier.align(Alignment.Center))

View File

@ -0,0 +1,35 @@
/*
* Copyright 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package androidx.media3.demo.compose.layout
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
@Composable
internal fun Modifier.noRippleClickable(onClick: () -> Unit): Modifier {
return then(
clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null, // to prevent the ripple from the tap
) {
onClick()
}
)
}