Display invite status in principal list

pull/1401/head
Alex Baker 5 years ago
parent e36f2f6f4c
commit 5201bca714

@ -20,6 +20,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.alpha
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
@ -28,11 +29,19 @@ import org.tasks.R
import org.tasks.compose.Constants.HALF_KEYLINE import org.tasks.compose.Constants.HALF_KEYLINE
import org.tasks.compose.Constants.ICON_ALPHA import org.tasks.compose.Constants.ICON_ALPHA
import org.tasks.compose.Constants.KEYLINE_FIRST import org.tasks.compose.Constants.KEYLINE_FIRST
import org.tasks.data.CaldavCalendar
import org.tasks.data.CaldavCalendar.Companion.INVITE_DECLINED
import org.tasks.data.CaldavCalendar.Companion.INVITE_INVALID
import org.tasks.data.CaldavCalendar.Companion.INVITE_NO_RESPONSE
import org.tasks.data.CaldavCalendar.Companion.INVITE_UNKNOWN
import org.tasks.data.Principal import org.tasks.data.Principal
import org.tasks.data.Principal.Companion.name import org.tasks.data.Principal.Companion.name
private val principals = listOf( private val principals = listOf(
Principal().apply { displayName = "user1" }, Principal().apply {
displayName = "user1"
inviteStatus = INVITE_INVALID
},
Principal().apply { displayName = "a really really really really really long display name" }, Principal().apply { displayName = "a really really really really really long display name" },
) )
@ -106,11 +115,31 @@ object ListSettingsComposables {
Modifier.weight(1f), Modifier.weight(1f),
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
Column {
Text( Text(
principal.name!!, principal.name!!,
style = MaterialTheme.typography.body1, style = MaterialTheme.typography.body1,
color = colors.onBackground, color = colors.onBackground,
) )
if (principal.inviteStatus != CaldavCalendar.INVITE_ACCEPTED) {
Text(
stringResource(when (principal.inviteStatus) {
INVITE_UNKNOWN, INVITE_NO_RESPONSE ->
R.string.invite_awaiting_response
INVITE_DECLINED ->
R.string.invite_declined
INVITE_INVALID ->
R.string.invite_invalid
else -> throw IllegalStateException()
}),
style = MaterialTheme.typography.body2,
color = when (principal.inviteStatus) {
INVITE_DECLINED, INVITE_INVALID -> colorResource(R.color.overdue)
else -> colors.onBackground
},
)
}
}
} }
onRemove?.let { onRemove?.let {
Row( Row(

@ -691,4 +691,7 @@ File %1$s contained %2$s.\n\n
<string name="list_members">List members</string> <string name="list_members">List members</string>
<string name="remove_user">Remove user?</string> <string name="remove_user">Remove user?</string>
<string name="remove_user_confirmation">%1$s will no longer have access to %2$s</string> <string name="remove_user_confirmation">%1$s will no longer have access to %2$s</string>
<string name="invite_declined">Invite declined</string>
<string name="invite_awaiting_response">Invite awaiting response</string>
<string name="invite_invalid">Invite invalid</string>
</resources> </resources>

Loading…
Cancel
Save