move TimerEntry to common.composable
This commit is contained in:
		
							parent
							
								
									08a33d1c9e
								
							
						
					
					
						commit
						d5b62e0cb9
					
				
					 3 changed files with 70 additions and 64 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,68 @@
 | 
			
		|||
package be.ugent.sel.studeez.common.composable
 | 
			
		||||
 | 
			
		||||
import androidx.annotation.StringRes
 | 
			
		||||
import androidx.compose.foundation.layout.Arrangement
 | 
			
		||||
import androidx.compose.foundation.layout.Column
 | 
			
		||||
import androidx.compose.foundation.layout.Row
 | 
			
		||||
import androidx.compose.foundation.layout.fillMaxWidth
 | 
			
		||||
import androidx.compose.foundation.layout.padding
 | 
			
		||||
import androidx.compose.material.Text
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.ui.Alignment
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
import androidx.compose.ui.text.font.FontWeight
 | 
			
		||||
import androidx.compose.ui.tooling.preview.Preview
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import androidx.compose.ui.unit.sp
 | 
			
		||||
import be.ugent.sel.studeez.R
 | 
			
		||||
import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo
 | 
			
		||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun TimerEntry(
 | 
			
		||||
    timerInfo: TimerInfo,
 | 
			
		||||
    showButton: Boolean,
 | 
			
		||||
    @StringRes buttonName: Int = -1,
 | 
			
		||||
    onButtonClick: (TimerInfo) -> Unit = {}
 | 
			
		||||
) {
 | 
			
		||||
    Row(
 | 
			
		||||
        verticalAlignment = Alignment.CenterVertically,
 | 
			
		||||
        modifier = Modifier.fillMaxWidth(),
 | 
			
		||||
        horizontalArrangement = Arrangement.SpaceBetween
 | 
			
		||||
    ) {
 | 
			
		||||
        Column(
 | 
			
		||||
            Modifier.padding(horizontal = 10.dp)
 | 
			
		||||
        ) {
 | 
			
		||||
            Text(
 | 
			
		||||
                text = timerInfo.name, fontWeight = FontWeight.Bold, fontSize = 20.sp
 | 
			
		||||
            )
 | 
			
		||||
            Text(
 | 
			
		||||
                text = timerInfo.description, fontWeight = FontWeight.Light, fontSize = 15.sp
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
        if (showButton) {
 | 
			
		||||
            StealthButton(buttonName) {
 | 
			
		||||
                onButtonClick(timerInfo)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Preview
 | 
			
		||||
@Composable
 | 
			
		||||
fun TimerEntryPreview() {
 | 
			
		||||
    val timerInfo = CustomTimerInfo(
 | 
			
		||||
        "my preview timer", "This is the description of the timer", 60
 | 
			
		||||
    )
 | 
			
		||||
    TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Preview
 | 
			
		||||
@Composable
 | 
			
		||||
fun TimerDefaultEntryPreview() {
 | 
			
		||||
    val timerInfo = CustomTimerInfo(
 | 
			
		||||
        "my preview timer", "This is the description of the timer", 60
 | 
			
		||||
    )
 | 
			
		||||
    TimerEntry(timerInfo = timerInfo, false, buttonName = R.string.edit) { }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,27 +1,19 @@
 | 
			
		|||
package be.ugent.sel.studeez.screens.timer_overview
 | 
			
		||||
 | 
			
		||||
import androidx.annotation.StringRes
 | 
			
		||||
import androidx.compose.foundation.layout.Arrangement
 | 
			
		||||
import androidx.compose.foundation.layout.Column
 | 
			
		||||
import androidx.compose.foundation.layout.Row
 | 
			
		||||
import androidx.compose.foundation.layout.fillMaxWidth
 | 
			
		||||
import androidx.compose.foundation.layout.padding
 | 
			
		||||
import androidx.compose.foundation.lazy.LazyColumn
 | 
			
		||||
import androidx.compose.foundation.lazy.items
 | 
			
		||||
import androidx.compose.material.Text
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.runtime.collectAsState
 | 
			
		||||
import androidx.compose.ui.Alignment
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
import androidx.compose.ui.text.font.FontWeight
 | 
			
		||||
import androidx.compose.ui.tooling.preview.Preview
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import androidx.compose.ui.unit.sp
 | 
			
		||||
import androidx.hilt.navigation.compose.hiltViewModel
 | 
			
		||||
import be.ugent.sel.studeez.R
 | 
			
		||||
import be.ugent.sel.studeez.common.composable.BasicButton
 | 
			
		||||
import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate
 | 
			
		||||
import be.ugent.sel.studeez.common.composable.StealthButton
 | 
			
		||||
import be.ugent.sel.studeez.common.composable.TimerEntry
 | 
			
		||||
import be.ugent.sel.studeez.common.ext.basicButton
 | 
			
		||||
import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo
 | 
			
		||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
 | 
			
		||||
| 
						 | 
				
			
			@ -100,63 +92,9 @@ fun TimerOverviewScreen(
 | 
			
		|||
                // TODO
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun TimerEntry(
 | 
			
		||||
    timerInfo: TimerInfo,
 | 
			
		||||
    showButton: Boolean,
 | 
			
		||||
    @StringRes buttonName: Int = -1,
 | 
			
		||||
    onButtonClick: (TimerInfo) -> Unit = {}
 | 
			
		||||
) {
 | 
			
		||||
    Row(
 | 
			
		||||
        verticalAlignment = Alignment.CenterVertically,
 | 
			
		||||
        modifier = Modifier.fillMaxWidth(),
 | 
			
		||||
        horizontalArrangement = Arrangement.SpaceBetween
 | 
			
		||||
    ) {
 | 
			
		||||
        Column(
 | 
			
		||||
            Modifier.padding(horizontal = 10.dp)
 | 
			
		||||
        ) {
 | 
			
		||||
            Text(
 | 
			
		||||
                text = timerInfo.name,
 | 
			
		||||
                fontWeight = FontWeight.Bold,
 | 
			
		||||
                fontSize = 20.sp
 | 
			
		||||
            )
 | 
			
		||||
            Text(
 | 
			
		||||
                text = timerInfo.description,
 | 
			
		||||
                fontWeight = FontWeight.Light,
 | 
			
		||||
                fontSize = 15.sp
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
        if (showButton) {
 | 
			
		||||
            StealthButton(buttonName) {
 | 
			
		||||
                onButtonClick(timerInfo)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Preview
 | 
			
		||||
@Composable
 | 
			
		||||
fun TimerEntryPreview() {
 | 
			
		||||
    val timerInfo = CustomTimerInfo(
 | 
			
		||||
        "my preview timer", "This is the description of the timer", 60
 | 
			
		||||
    )
 | 
			
		||||
    TimerEntry(timerInfo = timerInfo, true, buttonName = R.string.edit) { }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Preview
 | 
			
		||||
@Composable
 | 
			
		||||
fun TimerDefaultEntryPreview() {
 | 
			
		||||
    val timerInfo = CustomTimerInfo(
 | 
			
		||||
        "my preview timer", "This is the description of the timer", 60
 | 
			
		||||
    )
 | 
			
		||||
    TimerEntry(timerInfo = timerInfo, false, buttonName = R.string.edit) { }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Preview
 | 
			
		||||
@Composable
 | 
			
		||||
fun TimerOverviewPreview() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,13 +10,13 @@ import androidx.compose.ui.unit.dp
 | 
			
		|||
import androidx.hilt.navigation.compose.hiltViewModel
 | 
			
		||||
import be.ugent.sel.studeez.R
 | 
			
		||||
import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate
 | 
			
		||||
import be.ugent.sel.studeez.common.composable.TimerEntry
 | 
			
		||||
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
 | 
			
		||||
import be.ugent.sel.studeez.resources
 | 
			
		||||
import be.ugent.sel.studeez.screens.drawer.DrawerActions
 | 
			
		||||
import be.ugent.sel.studeez.screens.drawer.getDrawerActions
 | 
			
		||||
import be.ugent.sel.studeez.screens.navbar.NavigationBarActions
 | 
			
		||||
import be.ugent.sel.studeez.screens.navbar.getNavigationBarActions
 | 
			
		||||
import be.ugent.sel.studeez.screens.timer_overview.TimerEntry
 | 
			
		||||
import kotlinx.coroutines.flow.Flow
 | 
			
		||||
import kotlinx.coroutines.flow.flowOf
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue