Separate set-voicemail-only scenarios.

Simplify the logic for voicemail/call forwarding in call settings
and make it easier to understand. Much of the complexity seems to
be because of merged code paths for setting voicemail and call
forwarding, so make this more explicit by directly setting the
voicemail number if we don't need to change call forwarding. That
is, the code is slightly more linear now.

+ If the new forwarding settings are NO_FORWARDING, skip reading
the forwarding settings and just set the voicemail number. Stage2
used to only set the voicemail number in this case, so now we skip
reading and just save the number.

The only tangible difference in skipping this seems to be that we
we don't read/save the default voicemail provider's settings. Based
off the documentation, this is so if we know if we need to update
the settings in Stage2. But, we never execute the code path which
checks for updates anyways if the new settings are NO_FORWARDING.

+ If reading the call forwarding fails, but the user wants to
proceed with setting voicemail anyways, directly call the method
which sets voicemail. A reading of the call forwarding settings
already failed anyways.

Bug: 17019623
Change-Id: I747b65cae630990255f6283795b3f431ef39cd7b
1 file changed