Skip to content

Commit 5751f81

Browse files
isheriffAndroid (Google) Code Review
authored andcommitted
Merge "Add contentobserver for nsd_on setting" into jb-dev
2 parents 69609ed + 919aca5 commit 5751f81

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

services/java/com/android/server/NsdService.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.content.ContentResolver;
2121
import android.content.Intent;
2222
import android.content.pm.PackageManager;
23+
import android.database.ContentObserver;
2324
import android.net.nsd.NsdServiceInfo;
2425
import android.net.nsd.DnsSdTxtRecord;
2526
import android.net.nsd.INsdManager;
@@ -113,6 +114,26 @@ protected String getMessageInfo(Message msg) {
113114
return cmdToString(msg.what);
114115
}
115116

117+
/**
118+
* Observes the NSD on/off setting, and takes action when changed.
119+
*/
120+
private void registerForNsdSetting() {
121+
ContentObserver contentObserver = new ContentObserver(this.getHandler()) {
122+
@Override
123+
public void onChange(boolean selfChange) {
124+
if (isNsdEnabled()) {
125+
mNsdStateMachine.sendMessage(NsdManager.ENABLE);
126+
} else {
127+
mNsdStateMachine.sendMessage(NsdManager.DISABLE);
128+
}
129+
}
130+
};
131+
132+
mContext.getContentResolver().registerContentObserver(
133+
Settings.Secure.getUriFor(Settings.Secure.NSD_ON),
134+
false, contentObserver);
135+
}
136+
116137
NsdStateMachine(String name) {
117138
super(name);
118139
addState(mDefaultState);
@@ -124,6 +145,7 @@ protected String getMessageInfo(Message msg) {
124145
setInitialState(mDisabledState);
125146
}
126147
setProcessedMessagesSize(25);
148+
registerForNsdSetting();
127149
}
128150

129151
class DefaultState extends State {

0 commit comments

Comments
 (0)