Add contentobserver for nsd_on setting
Bug: 6606274 Change-Id: I863b9e2a2446d697f3c9c49f24dcdc2b599f091e
This commit is contained in:
@@ -20,6 +20,7 @@ import android.content.Context;
|
|||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.database.ContentObserver;
|
||||||
import android.net.nsd.NsdServiceInfo;
|
import android.net.nsd.NsdServiceInfo;
|
||||||
import android.net.nsd.DnsSdTxtRecord;
|
import android.net.nsd.DnsSdTxtRecord;
|
||||||
import android.net.nsd.INsdManager;
|
import android.net.nsd.INsdManager;
|
||||||
@@ -113,6 +114,26 @@ public class NsdService extends INsdManager.Stub {
|
|||||||
return cmdToString(msg.what);
|
return cmdToString(msg.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) {
|
NsdStateMachine(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
addState(mDefaultState);
|
addState(mDefaultState);
|
||||||
@@ -124,6 +145,7 @@ public class NsdService extends INsdManager.Stub {
|
|||||||
setInitialState(mDisabledState);
|
setInitialState(mDisabledState);
|
||||||
}
|
}
|
||||||
setProcessedMessagesSize(25);
|
setProcessedMessagesSize(25);
|
||||||
|
registerForNsdSetting();
|
||||||
}
|
}
|
||||||
|
|
||||||
class DefaultState extends State {
|
class DefaultState extends State {
|
||||||
|
|||||||
Reference in New Issue
Block a user