diff options
Diffstat (limited to 'java/com/android/voicemail/impl/OmtpService.java')
-rw-r--r-- | java/com/android/voicemail/impl/OmtpService.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/java/com/android/voicemail/impl/OmtpService.java b/java/com/android/voicemail/impl/OmtpService.java index 4db1aeb7e..4e8860c02 100644 --- a/java/com/android/voicemail/impl/OmtpService.java +++ b/java/com/android/voicemail/impl/OmtpService.java @@ -25,6 +25,7 @@ import android.preference.PreferenceManager; import android.support.annotation.MainThread; import android.support.annotation.NonNull; import android.telecom.PhoneAccountHandle; +import android.telephony.TelephonyManager; import android.telephony.VisualVoicemailService; import android.telephony.VisualVoicemailSms; import com.android.dialer.logging.DialerImpression; @@ -63,6 +64,7 @@ public class OmtpService extends VisualVoicemailService { } if (!isServiceEnabled(phoneAccountHandle)) { + disableFilter(phoneAccountHandle); task.finish(); return; } @@ -87,6 +89,8 @@ public class OmtpService extends VisualVoicemailService { } if (!isServiceEnabled(sms.getPhoneAccountHandle())) { + VvmLog.e(TAG, "onSmsReceived received when service is disabled"); + disableFilter(sms.getPhoneAccountHandle()); task.finish(); return; } @@ -178,6 +182,15 @@ public class OmtpService extends VisualVoicemailService { return true; } + private void disableFilter(PhoneAccountHandle phoneAccountHandle) { + TelephonyManager telephonyManager = + getSystemService(TelephonyManager.class).createForPhoneAccountHandle(phoneAccountHandle); + if (telephonyManager != null) { + VvmLog.i(TAG, "disabling SMS filter"); + telephonyManager.setVisualVoicemailSmsFilterSettings(null); + } + } + private static boolean isUserUnlocked(@NonNull Context context) { UserManager userManager = context.getSystemService(UserManager.class); return userManager.isUserUnlocked(); |