Normally I prefer `when` to `switch`, but I create...
# announcements
e
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)?
Copy code
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
when
can group cases together, is that what you’re asking?
r
Copy code
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)
}
☝️ 8
🥇 2
e
@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
Indeed. Slack does not make for a good IDE.
😂 7