// Option 1 val message = when (obj) { is Demo -> if (status == APPROVE) "Approve Demo" else "Reject Demo" else -> if (status == APPROVE) "Approve Live" else "Reject Live" } // Option 2 val message = when (obj) { is Demo -> when (status) { APPROVE -> "Approve Demo" REJECT -> "Reject Demo" } else -> when (status) { APPROVE -> "Approve Live" REJECT -> "Reject Live" } } // Option 3 val message = when (Pair((obj is Demo), status)) { Pair(true, APPROVE) -> "Approve Demo" Pair(true, REJECT) -> "Reject Demo" Pair(false, APPROVE) -> "Approve Live" Pair(false, REJECT) -> "Reject Live" } // Option 4 val message = if (obj is Demo && status == APPROVE) { "Approve Demo" } else if (obj is Demo && status == REJECT) { "Reject Demo" } else if (obj is Live && status == APPROVE) { "Approve Live" } else if (obj is Live && status == REJECT) { "Reject Live" }