summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/service/notification/ConditionProviderService.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/java/android/service/notification/ConditionProviderService.java b/core/java/android/service/notification/ConditionProviderService.java
index 45480cb5acb7..7d3b13bec2f6 100644
--- a/core/java/android/service/notification/ConditionProviderService.java
+++ b/core/java/android/service/notification/ConditionProviderService.java
@@ -77,6 +77,7 @@ public abstract class ConditionProviderService extends Service {
private Provider mProvider;
private INotificationManager mNoMan;
+ boolean mIsConnected;
/**
* The {@link Intent} that must be declared as handled by the service.
@@ -179,7 +180,7 @@ public abstract class ConditionProviderService extends Service {
try {
noMan.requestUnbindProvider(mProvider);
// Disable future messages.
- mProvider = null;
+ mIsConnected = false;
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -233,16 +234,16 @@ public abstract class ConditionProviderService extends Service {
*/
@TestApi
public boolean isBound() {
- if (mProvider == null) {
+ if (!mIsConnected) {
Log.w(TAG, "Condition provider service not yet bound.");
- return false;
}
- return true;
+ return mIsConnected;
}
private final class Provider extends IConditionProvider.Stub {
@Override
public void onConnected() {
+ mIsConnected = true;
mHandler.obtainMessage(H.ON_CONNECTED).sendToTarget();
}
@@ -265,7 +266,7 @@ public abstract class ConditionProviderService extends Service {
@Override
public void handleMessage(Message msg) {
String name = null;
- if (!isBound()) {
+ if (!mIsConnected) {
return;
}
try {