https://kotlinlang.org logo
Title
e

Ellen Spertus

11/11/2019, 6:35 PM
Normally I prefer
when
to
switch
, but I created this monstrosity in order to combine multiple
is
cases. Is there a better way without changing the sealed class
ConnectionState
(which I might end up doing)?
if (savedConnectionState is ConnectionState.Isolated) {
    view.initializeButtons(true, false)
} else if (savedConnectionState is ConnectionState.Advertising || 
    savedConnectionState is ConnectionState.Discovering ||
    savedConnectionState is ConnectionState.Initiating ||
    savedConnectionState is ConnectionState.Authenticating ||
    savedConnectionState is ConnectionState.Connecting) {
    view.initializeButtons(false, false)
} else if (savedConnectionState is ConnectionState.ReadyToSend) {
    view.initializeButtons(false, true)
} else if (savedConnectionState is ConnectionState.Failure) {
    view.initializeButtons(false, false)
}
p

pt

11/11/2019, 6:41 PM
when
can group cases together, is that what you’re asking?
r

Ruckus

11/11/2019, 6:44 PM
when (savedConnectionState) {
    is ConnectionState.Isolated -> view.initializeButtons(true, false)
    is ConnectionState.Advertising,
    is ConnectionState.Discovering,
    is ConnectionState.Initiating,
    is ConnectionState.Authenticating,
    is ConnectionState.Connecting -> view.initializeButtons(false, false)
    is ConnectionState.ReadyToSend -> view.initializeButtons(false, true)
    is ConnectionState.Failure -> view.initializeButtons(false, false)
}
🥇 2
☝️ 8
e

Ellen Spertus

11/11/2019, 6:45 PM
@pt I hadn’t known I could group cases together. Thank you and @Ruckus
👍 4
😄 1
It looks even nicer on wider lines in my editor. @Ruckus
r

Ruckus

11/11/2019, 6:47 PM
Indeed. Slack does not make for a good IDE.
😂 7