Merge changes If4deb106,Ib25d7658 am: 0388f0e47b am: 41a57af66a am: ae278410f5

am: 2b9c0de7d3

Change-Id: Id592d287a92c89320a682d660792b9b6c67e7563
This commit is contained in:
Hugo Benichi
2017-05-26 01:04:44 +00:00
committed by android-build-merger

View File

@@ -21,6 +21,7 @@ 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.database.ContentObserver;
import android.net.Uri;
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;
@@ -97,16 +98,15 @@ public class NsdService extends INsdManager.Stub {
* Observes the NSD on/off setting, and takes action when changed. * Observes the NSD on/off setting, and takes action when changed.
*/ */
private void registerForNsdSetting() { private void registerForNsdSetting() {
ContentObserver contentObserver = new ContentObserver(this.getHandler()) { final ContentObserver contentObserver = new ContentObserver(this.getHandler()) {
@Override @Override
public void onChange(boolean selfChange) { public void onChange(boolean selfChange) {
notifyEnabled(isNsdEnabled()); notifyEnabled(isNsdEnabled());
} }
}; };
mContext.getContentResolver().registerContentObserver( final Uri uri = Settings.Global.getUriFor(Settings.Global.NSD_ON);
Settings.Global.getUriFor(Settings.Global.NSD_ON), mNsdSettings.registerContentObserver(uri, contentObserver);
false, contentObserver);
} }
NsdStateMachine(String name, Handler handler) { NsdStateMachine(String name, Handler handler) {
@@ -880,13 +880,18 @@ public class NsdService extends INsdManager.Stub {
} }
} }
/**
* Interface which encapsulates dependencies of NsdService that are hard to mock, hard to
* override, or have side effects on global state in unit tests.
*/
@VisibleForTesting @VisibleForTesting
public interface NsdSettings { public interface NsdSettings {
boolean isEnabled(); boolean isEnabled();
void putEnabledStatus(boolean isEnabled); void putEnabledStatus(boolean isEnabled);
void registerContentObserver(Uri uri, ContentObserver observer);
static NsdSettings makeDefault(Context context) { static NsdSettings makeDefault(Context context) {
ContentResolver resolver = context.getContentResolver(); final ContentResolver resolver = context.getContentResolver();
return new NsdSettings() { return new NsdSettings() {
@Override @Override
public boolean isEnabled() { public boolean isEnabled() {
@@ -897,6 +902,11 @@ public class NsdService extends INsdManager.Stub {
public void putEnabledStatus(boolean isEnabled) { public void putEnabledStatus(boolean isEnabled) {
Settings.Global.putInt(resolver, Settings.Global.NSD_ON, isEnabled ? 1 : 0); Settings.Global.putInt(resolver, Settings.Global.NSD_ON, isEnabled ? 1 : 0);
} }
@Override
public void registerContentObserver(Uri uri, ContentObserver observer) {
resolver.registerContentObserver(uri, false, observer);
}
}; };
} }
} }