Bet Creation Screen : Corrections
continuous-integration/drone/push Build is passing Details

pull/3/head
Arthur VALIN 2 years ago
parent 1d790ad923
commit e32bc5d829

@ -1,5 +1,6 @@
package fr.iut.alldev.allin.ui.betcreation package fr.iut.alldev.allin.ui.betcreation
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.padding import androidx.compose.foundation.layout.padding
@ -26,12 +27,12 @@ import java.time.ZonedDateTime
fun BetCreationScreen( fun BetCreationScreen(
) { ) {
val interactionSource = remember { MutableInteractionSource() }
var theme by remember{ mutableStateOf("") } var theme by remember{ mutableStateOf("") }
var phrase by remember{ mutableStateOf("") } var phrase by remember{ mutableStateOf("") }
val (registerDate, setRegisterDate) = remember { mutableStateOf<ZonedDateTime>(ZonedDateTime.now()) } val (registerDate, setRegisterDate) = remember { mutableStateOf<ZonedDateTime>(ZonedDateTime.now()) }
val (registerTime, setRegisterTime) = remember { mutableStateOf<ZonedDateTime>(ZonedDateTime.now()) }
val (betDate, setBetDate) = remember { mutableStateOf<ZonedDateTime>(ZonedDateTime.now()) } val (betDate, setBetDate) = remember { mutableStateOf<ZonedDateTime>(ZonedDateTime.now()) }
val (betTime, setBetTime) = remember { mutableStateOf<ZonedDateTime>(ZonedDateTime.now()) }
var isPublic by remember{ mutableStateOf(true) } var isPublic by remember{ mutableStateOf(true) }
val betTypes = remember { BetType.values().toList() } val betTypes = remember { BetType.values().toList() }
val selectedFriends = remember { mutableListOf<Int>() } val selectedFriends = remember { mutableListOf<Int>() }
@ -86,12 +87,11 @@ fun BetCreationScreen(
selectedFriends = selectedFriends, selectedFriends = selectedFriends,
registerDate = registerDate, registerDate = registerDate,
betDate = betDate, betDate = betDate,
registerTime = registerTime,
betTime = betTime,
setRegisterDateDialog = { setRegisterDatePicker(it) }, setRegisterDateDialog = { setRegisterDatePicker(it) },
setEndDateDialog = { setEndDatePicker(it) }, setEndDateDialog = { setEndDatePicker(it) },
setRegisterTimeDialog = { setRegisterTimePicker(it) }, setRegisterTimeDialog = { setRegisterTimePicker(it) },
setEndTimeDialog = { setEndTimePicker(it) }, setEndTimeDialog = { setEndTimePicker(it) },
interactionSource = interactionSource,
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.verticalScroll(rememberScrollState()) .verticalScroll(rememberScrollState())
@ -122,14 +122,20 @@ fun BetCreationScreen(
) )
} }
if (showRegisterDatePicker || showEndDatePicker) { if (showRegisterDatePicker || showEndDatePicker) {
val dateToEdit = if(showRegisterDatePicker) registerDate else betDate
AllInDatePicker( AllInDatePicker(
currentDate = if(showRegisterDatePicker) registerDate else betDate, currentDate = if(showRegisterDatePicker) registerDate else betDate,
onSelectDate = { date -> onSelectDate = { date ->
val selectedDate = ZonedDateTime.ofInstant(Instant.ofEpochMilli(date), ZoneId.systemDefault()) val selectedDate = ZonedDateTime.ofInstant(Instant.ofEpochMilli(date), ZoneId.systemDefault())
val newDate = dateToEdit
.withYear(selectedDate.year)
.withMonth(selectedDate.month.value)
.withDayOfMonth(selectedDate.dayOfMonth)
.withDayOfYear(selectedDate.dayOfYear)
if(showRegisterDatePicker) { if(showRegisterDatePicker) {
setRegisterDate(selectedDate) setRegisterDate(newDate)
} else { } else {
setBetDate(selectedDate) setBetDate(newDate)
} }
setRegisterDatePicker(false) setRegisterDatePicker(false)
setEndDatePicker(false) setEndDatePicker(false)
@ -141,7 +147,7 @@ fun BetCreationScreen(
) )
} }
if (showRegisterTimePicker || showEndTimePicker) { if (showRegisterTimePicker || showEndTimePicker) {
val timeToEdit = if(showRegisterTimePicker) registerTime else betTime val timeToEdit = if(showRegisterTimePicker) registerDate else betDate
AllInTimePicker( AllInTimePicker(
hour = timeToEdit.hour, hour = timeToEdit.hour,
minutes = timeToEdit.minute, minutes = timeToEdit.minute,
@ -149,10 +155,10 @@ fun BetCreationScreen(
val time = (timeToEdit) val time = (timeToEdit)
.withHour(hour) .withHour(hour)
.withMinute(min) .withMinute(min)
if(showRegisterDatePicker) { if(showRegisterTimePicker) {
setRegisterTime(time) setRegisterDate(time)
} else { } else {
setBetTime(time) setBetDate(time)
} }
setRegisterTimePicker(false) setRegisterTimePicker(false)
setEndTimePicker(false) setEndTimePicker(false)

@ -1,6 +1,7 @@
package fr.iut.alldev.allin.ui.betcreation.tabs package fr.iut.alldev.allin.ui.betcreation.tabs
import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.relocation.BringIntoViewRequester import androidx.compose.foundation.relocation.BringIntoViewRequester
import androidx.compose.runtime.* import androidx.compose.runtime.*
@ -26,13 +27,12 @@ fun BetCreationScreenQuestionTab(
setIsPublic: (Boolean)->Unit, setIsPublic: (Boolean)->Unit,
registerDate: ZonedDateTime, registerDate: ZonedDateTime,
betDate: ZonedDateTime, betDate: ZonedDateTime,
registerTime: ZonedDateTime,
betTime: ZonedDateTime,
selectedFriends: MutableList<Int>, selectedFriends: MutableList<Int>,
setRegisterDateDialog: (Boolean)->Unit, setRegisterDateDialog: (Boolean)->Unit,
setEndDateDialog: (Boolean)->Unit, setEndDateDialog: (Boolean)->Unit,
setRegisterTimeDialog: (Boolean)->Unit, setRegisterTimeDialog: (Boolean)->Unit,
setEndTimeDialog: (Boolean)->Unit setEndTimeDialog: (Boolean)->Unit,
interactionSource: MutableInteractionSource
) { ) {
val bringIntoViewRequester = remember { BringIntoViewRequester() } val bringIntoViewRequester = remember { BringIntoViewRequester() }
Column(modifier){ Column(modifier){
@ -41,25 +41,28 @@ fun BetCreationScreenQuestionTab(
setBetTheme = setBetTheme, setBetTheme = setBetTheme,
betPhrase = betPhrase, betPhrase = betPhrase,
setBetPhrase = setBetPhrase, setBetPhrase = setBetPhrase,
bringIntoViewRequester = bringIntoViewRequester bringIntoViewRequester = bringIntoViewRequester,
interactionSource = interactionSource
) )
Spacer(modifier = Modifier.height(35.dp)) Spacer(modifier = Modifier.height(35.dp))
QuestionTabDateTimeSection( QuestionTabDateTimeSection(
registerDate = registerDate.formatToMediumDate(), registerDate = registerDate.formatToMediumDate(),
registerTime = registerTime.formatToTime(), registerTime = registerDate.formatToTime(),
endDate = betDate.formatToMediumDate(), endDate = betDate.formatToMediumDate(),
endTime = betTime.formatToTime(), endTime = betDate.formatToTime(),
setEndDateDialog = setEndDateDialog, setEndDateDialog = setEndDateDialog,
setRegisterDateDialog = setRegisterDateDialog, setRegisterDateDialog = setRegisterDateDialog,
setRegisterTimeDialog = setRegisterTimeDialog, setRegisterTimeDialog = setRegisterTimeDialog,
setEndTimeDialog = setEndTimeDialog setEndTimeDialog = setEndTimeDialog,
interactionSource = interactionSource,
) )
Spacer(modifier = Modifier.height(35.dp)) Spacer(modifier = Modifier.height(35.dp))
QuestionTabPrivacySection( QuestionTabPrivacySection(
isPublic = isPublic, isPublic = isPublic,
setIsPublic = setIsPublic, setIsPublic = setIsPublic,
nbFriends = nbFriends, nbFriends = nbFriends,
selectedFriends = selectedFriends selectedFriends = selectedFriends,
interactionSource = interactionSource
) )
} }
} }

@ -1,5 +1,6 @@
package fr.iut.alldev.allin.ui.betcreation.tabs.sections package fr.iut.alldev.allin.ui.betcreation.tabs.sections
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
@ -22,13 +23,15 @@ internal fun QuestionTabDateTimeSection(
registerDate: String, registerDate: String,
registerTime: String, registerTime: String,
endDate: String, endDate: String,
endTime: String endTime: String,
interactionSource: MutableInteractionSource
) { ) {
AllInTitleInfo( AllInTitleInfo(
text = stringResource(id = R.string.End_registration_date), text = stringResource(id = R.string.End_registration_date),
icon = Icons.AutoMirrored.Outlined.HelpOutline, icon = Icons.AutoMirrored.Outlined.HelpOutline,
modifier = Modifier.padding(start = 11.dp, bottom = 8.dp), modifier = Modifier.padding(start = 11.dp, bottom = 8.dp),
tooltipText = "Bonjour" tooltipText = stringResource(id = R.string.Register_tooltip),
interactionSource = interactionSource
) )
BetCreationScreenDateTimeRow( BetCreationScreenDateTimeRow(
date = registerDate, date = registerDate,
@ -41,7 +44,8 @@ internal fun QuestionTabDateTimeSection(
text = stringResource(id = R.string.End_bet_date), text = stringResource(id = R.string.End_bet_date),
icon = Icons.AutoMirrored.Outlined.HelpOutline, icon = Icons.AutoMirrored.Outlined.HelpOutline,
modifier = Modifier.padding(start = 11.dp, bottom = 8.dp), modifier = Modifier.padding(start = 11.dp, bottom = 8.dp),
tooltipText = "Bonjour" tooltipText = stringResource(id = R.string.BetEnd_tooltip),
interactionSource = interactionSource
) )
BetCreationScreenDateTimeRow( BetCreationScreenDateTimeRow(
date = endDate, date = endDate,

@ -1,5 +1,6 @@
package fr.iut.alldev.allin.ui.betcreation.tabs.sections package fr.iut.alldev.allin.ui.betcreation.tabs.sections
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
@ -24,13 +25,15 @@ fun QuestionTabPrivacySection(
isPublic: Boolean, isPublic: Boolean,
setIsPublic: (Boolean)->Unit, setIsPublic: (Boolean)->Unit,
nbFriends: Int, nbFriends: Int,
selectedFriends: MutableList<Int> selectedFriends: MutableList<Int>,
interactionSource: MutableInteractionSource
) { ) {
AllInTitleInfo( AllInTitleInfo(
text = stringResource(id = R.string.Bet_privacy), text = stringResource(id = R.string.Bet_privacy),
icon = Icons.AutoMirrored.Outlined.HelpOutline, icon = Icons.AutoMirrored.Outlined.HelpOutline,
modifier = Modifier.padding(start = 11.dp, bottom = 8.dp), modifier = Modifier.padding(start = 11.dp, bottom = 8.dp),
tooltipText = "Généralement une question qui sera répondu par les utilisateurs." tooltipText = stringResource(id = R.string.Privacy_tooltip),
interactionSource = interactionSource
) )
Row( Row(
modifier = Modifier.padding(bottom = 10.dp), modifier = Modifier.padding(bottom = 10.dp),

@ -1,6 +1,7 @@
package fr.iut.alldev.allin.ui.betcreation.tabs.sections package fr.iut.alldev.allin.ui.betcreation.tabs.sections
import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
@ -14,8 +15,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import fr.iut.alldev.allin.R import fr.iut.alldev.allin.R
import fr.iut.alldev.allin.ui.core.AllInTitleInfo
import fr.iut.alldev.allin.ui.core.AllInTextField import fr.iut.alldev.allin.ui.core.AllInTextField
import fr.iut.alldev.allin.ui.core.AllInTitleInfo
import fr.iut.alldev.allin.ui.theme.AllInTheme import fr.iut.alldev.allin.ui.theme.AllInTheme
@OptIn(ExperimentalFoundationApi::class) @OptIn(ExperimentalFoundationApi::class)
@ -25,13 +26,15 @@ internal fun QuestionTabThemePhraseSection(
setBetTheme: (String)->Unit, setBetTheme: (String)->Unit,
betPhrase: String, betPhrase: String,
setBetPhrase: (String)->Unit, setBetPhrase: (String)->Unit,
bringIntoViewRequester: BringIntoViewRequester bringIntoViewRequester: BringIntoViewRequester,
interactionSource: MutableInteractionSource
) { ) {
AllInTitleInfo( AllInTitleInfo(
text = stringResource(id = R.string.Theme), text = stringResource(id = R.string.Theme),
icon = Icons.AutoMirrored.Outlined.HelpOutline, icon = Icons.AutoMirrored.Outlined.HelpOutline,
modifier = Modifier.padding(start = 11.dp, bottom = 8.dp), modifier = Modifier.padding(start = 11.dp, bottom = 8.dp),
tooltipText = "Bonjour" tooltipText = stringResource(id = R.string.Theme_tooltip),
interactionSource = interactionSource
) )
AllInTextField( AllInTextField(
placeholder = stringResource(id = R.string.Theme_placeholder), placeholder = stringResource(id = R.string.Theme_placeholder),
@ -48,7 +51,8 @@ internal fun QuestionTabThemePhraseSection(
text = stringResource(id = R.string.Bet_Phrase), text = stringResource(id = R.string.Bet_Phrase),
icon = Icons.AutoMirrored.Outlined.HelpOutline, icon = Icons.AutoMirrored.Outlined.HelpOutline,
modifier = Modifier.padding(start = 11.dp, bottom = 8.dp), modifier = Modifier.padding(start = 11.dp, bottom = 8.dp),
tooltipText = "Généralement une question qui sera répondu par les utilisateurs." tooltipText = stringResource(id = R.string.Phrase_tooltip),
interactionSource = interactionSource
) )
AllInTextField( AllInTextField(
placeholder = stringResource(id = R.string.Bet_Phrase_placeholder), placeholder = stringResource(id = R.string.Bet_Phrase_placeholder),

@ -54,6 +54,8 @@ fun AllInSections(
) )
} }
} }
HorizontalPager(state = pagerState) { page -> HorizontalPager(state = pagerState) { page ->
LaunchedEffect(key1 = page){ LaunchedEffect(key1 = page){
onLoadSection() onLoadSection()

@ -44,7 +44,10 @@ fun AllInTextField(
visualTransformation: VisualTransformation = VisualTransformation.None, visualTransformation: VisualTransformation = VisualTransformation.None,
keyboardType: KeyboardType = KeyboardType.Text, keyboardType: KeyboardType = KeyboardType.Text,
keyboardActions: KeyboardActions = KeyboardActions.Default, keyboardActions: KeyboardActions = KeyboardActions.Default,
borderColor: Color = AllInTheme.colors.allIn_LightGrey300 borderColor: Color = AllInTheme.themeColors.on_background_2,
containerColor: Color = AllInTheme.themeColors.background,
textColor: Color = AllInTheme.themeColors.on_main_surface,
placeholderColor: Color = AllInTheme.themeColors.on_background_2
) { ) {
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
var hasFocus by remember { mutableStateOf(false) } var hasFocus by remember { mutableStateOf(false) }
@ -81,7 +84,7 @@ fun AllInTextField(
text = placeholder, text = placeholder,
fontSize = placeholderFontSize, fontSize = placeholderFontSize,
style = AllInTheme.typography.r, style = AllInTheme.typography.r,
color = AllInTheme.colors.allIn_LightGrey300, color = placeholderColor,
maxLines = if(multiLine) 3 else 1, maxLines = if(multiLine) 3 else 1,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
@ -101,13 +104,13 @@ fun AllInTextField(
keyboardActions = keyboardActions, keyboardActions = keyboardActions,
shape = AbsoluteSmoothCornerShape(10.dp, 100), shape = AbsoluteSmoothCornerShape(10.dp, 100),
colors = OutlinedTextFieldDefaults.colors( colors = OutlinedTextFieldDefaults.colors(
cursorColor = AllInTheme.colors.allIn_Dark, cursorColor = textColor,
focusedBorderColor = borderColor, focusedBorderColor = borderColor,
unfocusedBorderColor = borderColor, unfocusedBorderColor = borderColor,
focusedTextColor = AllInTheme.colors.allIn_Dark, focusedTextColor = textColor,
unfocusedTextColor = AllInTheme.colors.allIn_Dark, unfocusedTextColor = textColor,
focusedContainerColor = AllInTheme.colors.white, focusedContainerColor = containerColor,
unfocusedContainerColor = AllInTheme.colors.white unfocusedContainerColor = containerColor
) )
) )
} }

@ -24,7 +24,8 @@ fun AllInTimePicker(
initialMinute = minutes ?: calendar.get(Calendar.MINUTE) initialMinute = minutes ?: calendar.get(Calendar.MINUTE)
) )
DatePickerDialog(
AlertDialog(
onDismissRequest = onDismiss, onDismissRequest = onDismiss,
confirmButton = { confirmButton = {
TextButton( TextButton(
@ -49,18 +50,21 @@ fun AllInTimePicker(
) )
} }
}, },
colors = DatePickerDefaults.colors( text = {
containerColor = AllInTheme.themeColors.main_surface
)
){
TimePicker( TimePicker(
state = timePickerState, state = timePickerState,
colors = TimePickerDefaults.colors( colors = TimePickerDefaults.colors(
selectorColor = AllInTheme.colors.allIn_Pink, selectorColor = AllInTheme.colors.allIn_Purple,
containerColor = AllInTheme.themeColors.background, containerColor = AllInTheme.themeColors.background,
clockDialColor = AllInTheme.themeColors.background_2,
clockDialUnselectedContentColor = AllInTheme.themeColors.on_main_surface,
clockDialSelectedContentColor = AllInTheme.themeColors.background_2,
) )
) )
} },
containerColor = AllInTheme.themeColors.main_surface
)
} }
@Preview @Preview

@ -1,7 +1,8 @@
package fr.iut.alldev.allin.ui.core package fr.iut.alldev.allin.ui.core
import android.content.res.Configuration import android.content.res.Configuration
import androidx.compose.foundation.clickable import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
@ -22,33 +23,37 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import fr.iut.alldev.allin.ui.theme.AllInTheme import fr.iut.alldev.allin.ui.theme.AllInTheme
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterial3Api::class) private fun launchTooltip(
scope: CoroutineScope,
tooltipState: TooltipState
){
scope.launch {
tooltipState.show()
}
}
@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class)
@Composable @Composable
fun AllInTitleInfo( fun AllInTitleInfo(
text: String, text: String,
tooltipText: String, tooltipText: String,
icon: ImageVector, icon: ImageVector,
tooltipState: TooltipState = rememberTooltipState(), tooltipState: TooltipState = rememberTooltipState(isPersistent = true),
modifier: Modifier = Modifier modifier: Modifier = Modifier,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }
) { ) {
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
val interactionSource = remember { MutableInteractionSource() }
Row( Row(
modifier = modifier modifier = modifier
.clickable( .combinedClickable(
interactionSource = interactionSource, interactionSource = interactionSource,
indication = null, indication = null,
onClick = { onClick = { launchTooltip(scope, tooltipState) },
scope.launch { onDoubleClick = { launchTooltip(scope, tooltipState) },
if(tooltipState.isVisible){ onLongClick = { launchTooltip(scope, tooltipState) },
tooltipState.dismiss()
}else{
tooltipState.show()
}
}
}
), ),
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {

@ -1,5 +1,6 @@
package fr.iut.alldev.allin.ui.navigation.drawer package fr.iut.alldev.allin.ui.navigation.drawer
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
@ -153,6 +154,14 @@ fun AllInDrawer(
} }
} }
} }
BackHandler(
enabled = drawerState.isOpen
) {
scope.launch {
drawerState.close()
}
}
} }

@ -37,6 +37,11 @@
<string name="Login_title">Te revoilà !</string> <string name="Login_title">Te revoilà !</string>
<string name="Login_subtitle">Bon retour parmis nous tu nous as manqué !</string> <string name="Login_subtitle">Bon retour parmis nous tu nous as manqué !</string>
<!--Bet Creation Page--> <!--Bet Creation Page-->
<string name="Theme_tooltip">Le sujet du bet.</string>
<string name="Phrase_tooltip">Généralement la question à laquelle les participants devront répondre.</string>
<string name="Register_tooltip">Après cette date, plus personne ne pourra s\'inscrire.</string>
<string name="BetEnd_tooltip">Après cette date, les résultats seront annoncés.</string>
<string name="Privacy_tooltip">Détermine qui pourra voir le bet.</string>
<string name="Question">Question</string> <string name="Question">Question</string>
<string name="Answer">Réponse</string> <string name="Answer">Réponse</string>
<string name="Publish">Publier le bet</string> <string name="Publish">Publier le bet</string>

@ -44,6 +44,11 @@
<string name="Question">Question</string> <string name="Question">Question</string>
<string name="Answer">Answer</string> <string name="Answer">Answer</string>
<string name="Publish">Publish the bet</string> <string name="Publish">Publish the bet</string>
<string name="Theme_tooltip">The subject of the bet.</string>
<string name="Phrase_tooltip">Generally the question the participants will answer to.</string>
<string name="Register_tooltip">After this date, nobody will be able to register anymore.</string>
<string name="BetEnd_tooltip">After this date, the result will be announced.</string>
<string name="Privacy_tooltip">Determines who will be able to see the bet.</string>
<string name="Theme">Theme</string> <string name="Theme">Theme</string>
<string name="Theme_placeholder">Studies, sports, party…</string> <string name="Theme_placeholder">Studies, sports, party…</string>
<string name="Bet_Phrase">Bet phrase</string> <string name="Bet_Phrase">Bet phrase</string>

Loading…
Cancel
Save