Ignore dialer OMTP VVM error if VVM is disabled
The status will be stale.
TEST=TAP
Bug: 78831353
Test: TAP
PiperOrigin-RevId: 197462056
Change-Id: Iaeeae9007f6b5ad8319889a860fdcce782be8a0d
diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
index dba43a2..5b6eb03 100644
--- a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
@@ -182,10 +182,10 @@
}
@VisibleForTesting
- static boolean shouldAutoSync(
+ boolean shouldAutoSync(
VoicemailErrorMessageCreator errorMessageCreator, List<VoicemailStatus> statuses) {
for (VoicemailStatus status : statuses) {
- if (!status.isActive()) {
+ if (!status.isActive(getContext())) {
continue;
}
if (errorMessageCreator.isSyncBlockingError(status)) {
diff --git a/java/com/android/dialer/app/voicemail/VoicemailErrorManager.java b/java/com/android/dialer/app/voicemail/VoicemailErrorManager.java
index ffaf16d..a441e79 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailErrorManager.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailErrorManager.java
@@ -86,9 +86,11 @@
List<VoicemailStatus> statuses = new ArrayList<>();
while (statusCursor.moveToNext()) {
VoicemailStatus status = new VoicemailStatus(context, statusCursor);
- if (status.isActive()) {
+ if (status.isActive(context)) {
statuses.add(status);
addServiceStateListener(status);
+ } else {
+ LogUtil.i("VisualVoicemailCallLogFragment.shouldAutoSync", "inactive source ignored");
}
}
alertItem.updateStatus(statuses, this);
diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java b/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java
index b2052c6..243dc6a 100644
--- a/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java
+++ b/java/com/android/dialer/voicemail/listui/NewVoicemailFragment.java
@@ -280,7 +280,9 @@
while (cursor.moveToNext()) {
VoicemailStatus status = new VoicemailStatus(context, cursor);
- if (status.isActive()) {
+ if (status.isActive(context)) {
+ LogUtil.i(
+ "NewVoicemailFragment.queryVoicemailStatus", "inactive source ignored");
statuses.add(status);
// TODO(a bug): Handle Service State Listeners
}
diff --git a/java/com/android/dialer/voicemail/listui/error/VoicemailStatus.java b/java/com/android/dialer/voicemail/listui/error/VoicemailStatus.java
index 4f4dbbb..ebda0e6 100644
--- a/java/com/android/dialer/voicemail/listui/error/VoicemailStatus.java
+++ b/java/com/android/dialer/voicemail/listui/error/VoicemailStatus.java
@@ -34,6 +34,8 @@
import android.text.TextUtils;
import com.android.dialer.common.LogUtil;
import com.android.dialer.voicemailstatus.VoicemailStatusQuery;
+import com.android.voicemail.VoicemailClient;
+import com.android.voicemail.VoicemailComponent;
/** Structured data from {@link android.provider.VoicemailContract.Status} */
public class VoicemailStatus {
@@ -232,7 +234,22 @@
}
}
- public boolean isActive() {
+ public boolean isActive(Context context) {
+ VoicemailClient voicemailClient = VoicemailComponent.get(context).getVoicemailClient();
+ if (context.getPackageName().equals(sourcePackage)) {
+ if (!voicemailClient.isVoicemailModuleEnabled()) {
+ LogUtil.i("VoicemailStatus.isActive", "module disabled");
+ return false;
+ }
+ if (!voicemailClient.hasCarrierSupport(context, getPhoneAccountHandle())) {
+ LogUtil.i("VoicemailStatus.isActive", "carrier not supported");
+ return false;
+ }
+ if (!voicemailClient.isVoicemailEnabled(context, getPhoneAccountHandle())) {
+ LogUtil.i("VoicemailStatus.isActive", "VVM disabled");
+ return false;
+ }
+ }
switch (configurationState) {
case Status.CONFIGURATION_STATE_NOT_CONFIGURED:
case Status.CONFIGURATION_STATE_DISABLED: