diff options
Diffstat (limited to 'java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java')
-rw-r--r-- | java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java b/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java index d3024f4c5..8e8106b44 100644 --- a/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java +++ b/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build.VERSION_CODES; +import android.provider.VoicemailContract.Status; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.RequiresApi; @@ -257,6 +258,26 @@ public class Vvm3VoicemailMessageCreator { return OmtpVoicemailMessageCreator.create(context, status, statusReader); } + public static boolean isSyncBlockingError(VoicemailStatus status) { + if (status.notificationChannelState != Status.NOTIFICATION_CHANNEL_STATE_OK) { + return true; + } + + if (status.dataChannelState != Status.DATA_CHANNEL_STATE_OK) { + return true; + } + + switch (status.configurationState) { + case PIN_NOT_SET: + case Status.CONFIGURATION_STATE_OK: + // allow activation to be queued again in case it is interrupted + case Status.CONFIGURATION_STATE_CONFIGURING: + return false; + default: + return true; + } + } + @NonNull private static CharSequence getCustomerSupportString(Context context, int id) { // TODO(twyen): get number based on the country the user is currently in. |