summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/NsdService.java
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2012-06-05 09:49:24 -0700
committerIrfan Sheriff <isheriff@google.com>2012-06-05 09:49:24 -0700
commita7590f32e06c901b30815f8ca7b719e74b4cd8bc (patch)
treeb878580215da51b03d9902a8d9083d8610ca8db2 /services/java/com/android/server/NsdService.java
parent75bc758c43cf968be59c6d1c87dbc26615e969af (diff)
parente7884dbb553b955cdd2e9db423a2f73675aef1c7 (diff)
resolved conflicts for merge of e7884dbb to master
Change-Id: Icb13c37491d3e9f0252198f98d8110740fa1f997
Diffstat (limited to 'services/java/com/android/server/NsdService.java')
-rw-r--r--services/java/com/android/server/NsdService.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/services/java/com/android/server/NsdService.java b/services/java/com/android/server/NsdService.java
index 193e80cdf1df..87843d956a48 100644
--- a/services/java/com/android/server/NsdService.java
+++ b/services/java/com/android/server/NsdService.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.database.ContentObserver;
import android.net.nsd.NsdServiceInfo;
import android.net.nsd.DnsSdTxtRecord;
import android.net.nsd.INsdManager;
@@ -113,6 +114,26 @@ public class NsdService extends INsdManager.Stub {
return cmdToString(what);
}
+ /**
+ * Observes the NSD on/off setting, and takes action when changed.
+ */
+ private void registerForNsdSetting() {
+ ContentObserver contentObserver = new ContentObserver(this.getHandler()) {
+ @Override
+ public void onChange(boolean selfChange) {
+ if (isNsdEnabled()) {
+ mNsdStateMachine.sendMessage(NsdManager.ENABLE);
+ } else {
+ mNsdStateMachine.sendMessage(NsdManager.DISABLE);
+ }
+ }
+ };
+
+ mContext.getContentResolver().registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.NSD_ON),
+ false, contentObserver);
+ }
+
NsdStateMachine(String name) {
super(name);
addState(mDefaultState);
@@ -124,6 +145,7 @@ public class NsdService extends INsdManager.Stub {
setInitialState(mDisabledState);
}
setLogRecSize(25);
+ registerForNsdSetting();
}
class DefaultState extends State {