java moments:  Update discovery api usage to 1.6

Change-Id: Ic79bfe981f0f116c9ef8770a75b646c16a830181
diff --git a/projects/moments/app/build.gradle b/projects/moments/app/build.gradle
index 02488e2..c87af77 100644
--- a/projects/moments/app/build.gradle
+++ b/projects/moments/app/build.gradle
@@ -50,7 +50,7 @@
     compile 'com.android.support:appcompat-v7:23.1.1'
     compile 'com.android.support:design:23.1.1'
     compile 'com.android.support:support-v4:23.1.1'
-    compile 'io.v:vanadium-android:1.5'
+    compile 'io.v:vanadium-android:1.6'
 }
 
 vdl {
diff --git a/projects/moments/app/src/main/java/io/v/moments/lib/V23Manager.java b/projects/moments/app/src/main/java/io/v/moments/lib/V23Manager.java
index 1d6b66b..ba3a4d9 100644
--- a/projects/moments/app/src/main/java/io/v/moments/lib/V23Manager.java
+++ b/projects/moments/app/src/main/java/io/v/moments/lib/V23Manager.java
@@ -40,19 +40,20 @@
     private static final String BLESSINGS_KEY = "BlessingsKey";
     private Context mAndroidCtx;
     private VContext mV23Ctx = null;
+    private VDiscovery mDiscovery = null;
 
     // Singleton.
     private V23Manager() {
     }
-
-    public VDiscovery getDiscovery() {
-        return V.getDiscovery(mV23Ctx);
-    }
-
+    
     public VContext advertise(final Service service, List<BlessingPattern> patterns) {
+        if (mDiscovery == null) {
+            Log.d(TAG, "Discovery not ready.");
+            return null;
+        }
         VContext context = mV23Ctx.withCancel();
         final ListenableFuture<ListenableFuture<Void>> fStart =
-                V.getDiscovery(mV23Ctx).advertise(context, service, patterns);
+                mDiscovery.advertise(context, service, patterns);
         Futures.addCallback(fStart, new FutureCallback<ListenableFuture<Void>>() {
             @Override
             public void onSuccess(ListenableFuture<Void> result) {
@@ -85,10 +86,14 @@
     }
 
     public VContext scan(String query, final ScanListener listener) {
+        if (mDiscovery == null) {
+            Log.d(TAG, "Discovery not ready.");
+            return null;
+        }
         VContext context = mV23Ctx.withCancel();
         Log.d(TAG, "Calling V.getDiscovery.scan with q=" + query);
         final ListenableFuture<Void> fStart =
-            InputChannels.withCallback(V.getDiscovery(mV23Ctx).scan(context, query),
+            InputChannels.withCallback(mDiscovery.scan(context, query),
                 new InputChannelCallback<Update>() {
                     @Override
                     public ListenableFuture<Void> onNext(Update result) {
@@ -129,6 +134,11 @@
         ListenableFuture<Blessings> f = BlessingsManager.getBlessings(
                 mV23Ctx, activity, BLESSINGS_KEY, true);
         Futures.addCallback(f, future);
+        try {
+            mDiscovery = V.newDiscovery(mV23Ctx);
+        } catch (VException e) {
+            Log.d(TAG, "Unable to get discovery object.", e);
+        }
     }
 
     public void shutdown() {