summaryrefslogtreecommitdiffstats
path: root/java/com/android/voicemail/impl/OmtpService.java
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-07-27 10:45:54 -0700
committerEric Erfanian <erfanian@google.com>2017-07-27 11:16:14 -0700
commitff2ad7ffdba7c74077eae3016b32174f0f2dad30 (patch)
tree978e817617700854b5e2ed6f166f883c3bf6ffe9 /java/com/android/voicemail/impl/OmtpService.java
parent0602dd0831eb782890f74861b20075c76f503571 (diff)
downloadandroid_packages_apps_Dialer-ff2ad7ffdba7c74077eae3016b32174f0f2dad30.tar.gz
android_packages_apps_Dialer-ff2ad7ffdba7c74077eae3016b32174f0f2dad30.tar.bz2
android_packages_apps_Dialer-ff2ad7ffdba7c74077eae3016b32174f0f2dad30.zip
Update oc-dr1-dev to v11 RC17
This change updates the oc-dr1-dev branch to v11 RC17, from the previous state synced @160679286. This contains: - A ROLLUP from 161342943 - Fixes for the following bugs: Bug: 33490149 36608790 37846172 62294499 62338925 63013427 63089358 63104326 63112642 63143138 63161630 63405063 63415147 63450835 63494010 63522618 63523694 63523776 63524435 63575857 63594129 63634700 63642638 63643370 63709810 63710739 63716219 63757003 64009408 64025042 64060628 64073371 Test: make Merged-In: I69ba6cbadbd1a02f05405ca0f5273b0a5ea0e5e9 Change-Id: Iaad73fa51796f62f4947571ddb744bbdadcca64e
Diffstat (limited to 'java/com/android/voicemail/impl/OmtpService.java')
-rw-r--r--java/com/android/voicemail/impl/OmtpService.java52
1 files changed, 46 insertions, 6 deletions
diff --git a/java/com/android/voicemail/impl/OmtpService.java b/java/com/android/voicemail/impl/OmtpService.java
index b82cc5f68..4db1aeb7e 100644
--- a/java/com/android/voicemail/impl/OmtpService.java
+++ b/java/com/android/voicemail/impl/OmtpService.java
@@ -17,9 +17,13 @@
package com.android.voicemail.impl;
import android.annotation.TargetApi;
+import android.content.Context;
import android.content.Intent;
import android.os.Build.VERSION_CODES;
import android.os.UserManager;
+import android.preference.PreferenceManager;
+import android.support.annotation.MainThread;
+import android.support.annotation.NonNull;
import android.telecom.PhoneAccountHandle;
import android.telephony.VisualVoicemailService;
import android.telephony.VisualVoicemailSms;
@@ -40,6 +44,8 @@ public class OmtpService extends VisualVoicemailService {
public static final String EXTRA_VOICEMAIL_SMS = "extra_voicemail_sms";
+ private static final String IS_SHUTTING_DOWN = "com.android.voicemail.impl.is_shutting_down";
+
@Override
public void onCellServiceConnected(
VisualVoicemailTask task, final PhoneAccountHandle phoneAccountHandle) {
@@ -50,7 +56,7 @@ public class OmtpService extends VisualVoicemailService {
return;
}
- if (!isUserUnlocked()) {
+ if (!isUserUnlocked(this)) {
VvmLog.i(TAG, "onCellServiceConnected: user locked");
task.finish();
return;
@@ -75,7 +81,7 @@ public class OmtpService extends VisualVoicemailService {
return;
}
- if (!isUserUnlocked()) {
+ if (!isUserUnlocked(this)) {
LegacyModeSmsHandler.handle(this, sms);
return;
}
@@ -105,12 +111,18 @@ public class OmtpService extends VisualVoicemailService {
return;
}
- if (!isUserUnlocked()) {
+ if (!isUserUnlocked(this)) {
VvmLog.i(TAG, "onSimRemoved: user locked");
task.finish();
return;
}
+ if (isShuttingDown(this)) {
+ VvmLog.i(TAG, "onSimRemoved: system shutting down, ignoring");
+ task.finish();
+ return;
+ }
+
Logger.get(this).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
VvmAccountManager.removeAccount(this, phoneAccountHandle);
task.finish();
@@ -124,7 +136,7 @@ public class OmtpService extends VisualVoicemailService {
task.finish();
return;
}
- if (!isUserUnlocked()) {
+ if (!isUserUnlocked(this)) {
VvmLog.i(TAG, "onStopped: user locked");
task.finish();
return;
@@ -132,6 +144,22 @@ public class OmtpService extends VisualVoicemailService {
Logger.get(this).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
}
+ @MainThread
+ static void onBoot(@NonNull Context context) {
+ VvmLog.i(TAG, "onBoot");
+ Assert.isTrue(isUserUnlocked(context));
+ Assert.isMainThread();
+ setShuttingDown(context, false);
+ }
+
+ @MainThread
+ static void onShutdown(@NonNull Context context) {
+ VvmLog.i(TAG, "onShutdown");
+ Assert.isTrue(isUserUnlocked(context));
+ Assert.isMainThread();
+ setShuttingDown(context, true);
+ }
+
private boolean isModuleEnabled() {
return VoicemailComponent.get(this).getVoicemailClient().isVoicemailModuleEnabled();
}
@@ -150,8 +178,20 @@ public class OmtpService extends VisualVoicemailService {
return true;
}
- private boolean isUserUnlocked() {
- UserManager userManager = getSystemService(UserManager.class);
+ private static boolean isUserUnlocked(@NonNull Context context) {
+ UserManager userManager = context.getSystemService(UserManager.class);
return userManager.isUserUnlocked();
}
+
+ private static void setShuttingDown(Context context, boolean value) {
+ PreferenceManager.getDefaultSharedPreferences(context)
+ .edit()
+ .putBoolean(IS_SHUTTING_DOWN, value)
+ .apply();
+ }
+
+ private static boolean isShuttingDown(Context context) {
+ return PreferenceManager.getDefaultSharedPreferences(context)
+ .getBoolean(IS_SHUTTING_DOWN, false);
+ }
}