Skip to content

Commit

Permalink
🎨 多层级界面覆盖优化
Browse files Browse the repository at this point in the history
  • Loading branch information
yaoxieyoulei committed May 8, 2024
1 parent 5507bda commit 10a109c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.BoxScope
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
Expand Down Expand Up @@ -163,10 +164,7 @@ fun HomeContent(
onSelect = { homeState.changePanelVisible(true) },
onLongSelect = { homeState.changeSettingsVisible(true) },
onSettings = { homeState.changeSettingsVisible(true) },
onNumber = {
homeState.changeTempPanelVisible(false)
digitChannelSelectState.input(it)
},
onNumber = { digitChannelSelectState.input(it) },
)
.handleDragGestures(
onSwipeDown = {
Expand Down Expand Up @@ -199,9 +197,11 @@ fun HomeContent(
showPlayerInfo = settingsState.debugShowPlayerInfo,
)

PanelTimeScreen(showMode = settingsState.uiTimeShowMode)
if (homeState.isTimePanelVisible && digitChannelSelectState.channelNo.isEmpty()) {
PanelTimeScreen(showMode = settingsState.uiTimeShowMode)
}

if (homeState.isTempPanelVisible) {
if (homeState.isTempPanelVisible && !homeState.isSettingsVisible && !homeState.isPanelVisible && digitChannelSelectState.channelNo.isEmpty()) {
PanelTempScreen(
channelNo = iptvGroupList.iptvIdx(homeState.currentIptv) + 1,
currentIptv = homeState.currentIptv,
Expand Down Expand Up @@ -311,6 +311,8 @@ class HomeContentState(
private var _isTempPanelVisible by mutableStateOf(false)
val isTempPanelVisible get() = _isTempPanelVisible

val isTimePanelVisible by derivedStateOf { !_isSettingsVisible && !_isPanelVisible && !_isTempPanelVisible }

private var _exoPlayer = ExoPlayer.Builder(context).build().apply {
playWhenReady = true
}
Expand Down Expand Up @@ -388,10 +390,6 @@ class HomeContentState(
_isSettingsVisible = visible
}

fun changeTempPanelVisible(visible: Boolean) {
_isTempPanelVisible = visible
}

private fun getPrevIptv(): Iptv {
val currentIndex = iptvGroupList.iptvIdx(_currentIptv)
return if (currentIndex > 0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,17 @@ fun PanelTimeScreen(
showMode: SP.UiTimeShowMode = SP.UiTimeShowMode.HIDDEN,
) {
val childPadding = rememberChildPadding()
val timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault())
var timeFormat = SimpleDateFormat("HH:mm:ss", Locale.getDefault())
val timestamp = rememberTimestamp()

var visible by remember { mutableStateOf(false) }
when (showMode) {
SP.UiTimeShowMode.HIDDEN -> visible = false
SP.UiTimeShowMode.ALWAYS -> visible = true
SP.UiTimeShowMode.ALWAYS -> {
timeFormat = SimpleDateFormat("HH:mm", Locale.getDefault())
visible = true
}

SP.UiTimeShowMode.EVERY_HOUR -> {
LaunchedEffect(timestamp) {
visible = timestamp % 3600000 <= Constants.UI_TIME_SHOW_RANGE
Expand Down

0 comments on commit 10a109c

Please sign in to comment.