summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java')
-rw-r--r--java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java21
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.