XYZ Tourist Attraction wear sample - minor bug fixes

Change-Id: I365c640592f59769d39578fc0dc6006f8aa22bb1
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/provider/TouristAttractions.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/provider/TouristAttractions.java
index f035336..50be362 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/provider/TouristAttractions.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/provider/TouristAttractions.java
@@ -98,8 +98,8 @@
                     "Taronga Zoo",
                     "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eros velit, faucibus in mi in, accumsan eleifend magna. Fusce efficitur volutpat leo nec finibus. Vivamus luctus quis dolor ac interdum.",
                     "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eros velit, faucibus in mi in, accumsan eleifend magna. Fusce efficitur volutpat leo nec finibus. Vivamus luctus quis dolor ac interdum. Donec iaculis, orci quis semper vulputate, tortor nisi porttitor tortor, at pretium ante quam ut odio. Donec fringilla sapien et dolor pharetra ultrices. Aenean faucibus felis non vulputate iaculis.\n\nEtiam eget dapibus ligula. Nunc facilisis dignissim tortor et elementum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam condimentum pellentesque mollis. Aliquam finibus urna ipsum, sed accumsan ante blandit quis. Vestibulum vel lacinia ligula. Nunc justo ex, volutpat nec justo ut, efficitur gravida lectus. Mauris cursus dui libero, vel tristique purus laoreet non.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultrices ullamcorper est, at consequat massa. Nam egestas at urna at pellentesque. Quisque lacus quam, efficitur vel erat eget, placerat feugiat eros. Mauris.",
-                    Uri.parse("https://lh6.googleusercontent.com/-kypwDfnk674/VGLWpQPm4VI/AAAAAAAAAB0/SrfL0fE9DnE/w600-no/OI000020_2.jpg"),
-                    Uri.parse("https://lh3.googleusercontent.com/-6_Ioko2ysgU/VHva2PjmRCI/AAAAAAAAAGM/cHjJC7ney4Q/w600-no/PC190054.JPG"),
+                    Uri.parse("https://lh6.googleusercontent.com/-kypwDfnk674/VGLWpQPm4VI/AAAAAAAAAB0/SrfL0fE9DnE/w500-no/OI000020_2.jpg"),
+                    Uri.parse("https://lh3.googleusercontent.com/-6_Ioko2ysgU/VHva2PjmRCI/AAAAAAAAAGM/cHjJC7ney4Q/w500-no/PC190054.JPG"),
                     new LatLng(-33.843333, 151.241111),
                     CITY_SYDNEY
             ));
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityService.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityService.java
index c011013..bf04fcf 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityService.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/service/UtilityService.java
@@ -30,7 +30,11 @@
 import android.util.Log;
 
 import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.example.android.xyztouristattractions.R;
+import com.example.android.xyztouristattractions.common.Attraction;
+import com.example.android.xyztouristattractions.common.Constants;
+import com.example.android.xyztouristattractions.common.Utils;
 import com.example.android.xyztouristattractions.provider.TouristAttractions;
 import com.example.android.xyztouristattractions.ui.DetailActivity;
 import com.google.android.gms.common.ConnectionResult;
@@ -46,9 +50,6 @@
 import com.google.android.gms.wearable.PutDataMapRequest;
 import com.google.android.gms.wearable.PutDataRequest;
 import com.google.android.gms.wearable.Wearable;
-import com.example.android.xyztouristattractions.common.Attraction;
-import com.example.android.xyztouristattractions.common.Constants;
-import com.example.android.xyztouristattractions.common.Utils;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -319,13 +320,14 @@
                 Constants.MAX_ATTRACTIONS : attractions.size();
 
         // Pull down the tourist attraction images from the network and store
-        HashMap<String, Bitmap> bitmaps = new HashMap<String, Bitmap>();
+        HashMap<String, Bitmap> bitmaps = new HashMap<>();
         try {
             for (int i = 0; i < count; i++) {
                 bitmaps.put(attractions.get(i).name,
                         Glide.with(this)
                                 .load(attractions.get(i).imageUrl)
                                 .asBitmap()
+                                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                                 .into(Constants.WEAR_IMAGE_SIZE, Constants.WEAR_IMAGE_SIZE)
                                 .get());
             }
@@ -406,7 +408,7 @@
         int count = attractions.size() > Constants.MAX_ATTRACTIONS ?
                 Constants.MAX_ATTRACTIONS : attractions.size();
 
-        ArrayList<DataMap> attractionsData = new ArrayList<DataMap>(count);
+        ArrayList<DataMap> attractionsData = new ArrayList<>(count);
 
         for (int i = 0; i < count; i++) {
             Attraction attraction = attractions.get(i);
@@ -419,12 +421,14 @@
                 image = Glide.with(this)
                         .load(attraction.imageUrl)
                         .asBitmap()
+                        .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                         .into(Constants.WEAR_IMAGE_SIZE_PARALLAX_WIDTH, Constants.WEAR_IMAGE_SIZE)
                         .get();
 
                 secondaryImage = Glide.with(this)
                         .load(attraction.secondaryImageUrl)
                         .asBitmap()
+                        .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                         .into(Constants.WEAR_IMAGE_SIZE_PARALLAX_WIDTH, Constants.WEAR_IMAGE_SIZE)
                         .get();
             } catch (InterruptedException | ExecutionException e) {
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java
index b5e5041..0f1bc8b 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/AttractionListFragment.java
@@ -33,6 +33,7 @@
 import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.example.android.xyztouristattractions.R;
 import com.example.android.xyztouristattractions.common.Attraction;
 import com.example.android.xyztouristattractions.common.Constants;
@@ -161,6 +162,7 @@
             holder.mDescriptionTextView.setText(attraction.description);
             Glide.with(mContext)
                     .load(attraction.imageUrl)
+                    .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                     .placeholder(R.drawable.empty_photo)
                     .override(mImageSize, mImageSize)
                     .into(holder.mImageView);
diff --git a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailFragment.java b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailFragment.java
index 0df7772..4d21009 100644
--- a/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailFragment.java
+++ b/wearable/wear/XYZTouristAttractions/Application/src/main/java/com/example/android/xyztouristattractions/ui/DetailFragment.java
@@ -34,6 +34,7 @@
 import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.example.android.xyztouristattractions.R;
 import com.example.android.xyztouristattractions.common.Attraction;
 import com.example.android.xyztouristattractions.common.Constants;
@@ -97,6 +98,7 @@
                 * Constants.IMAGE_ANIM_MULTIPLIER;
         Glide.with(getActivity())
                 .load(mAttraction.imageUrl)
+                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                 .placeholder(R.color.lighter_gray)
                 .override(imageSize, imageSize)
                 .into(imageView);
diff --git a/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsActivity.java b/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsActivity.java
index 21d6425..464eb8a 100644
--- a/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsActivity.java
+++ b/wearable/wear/XYZTouristAttractions/Wearable/src/main/java/com/example/android/xyztouristattractions/ui/AttractionsActivity.java
@@ -203,7 +203,7 @@
             DataApi.DataItemResult dataItemResult =
                     Wearable.DataApi.getDataItem(googleApiClient, attractionsUri).await();
 
-            if (dataItemResult.getStatus().isSuccess()) {
+            if (dataItemResult.getStatus().isSuccess() && dataItemResult.getDataItem() != null) {
                 DataMapItem dataMapItem = DataMapItem.fromDataItem(dataItemResult.getDataItem());
                 List<DataMap> attractionsData =
                         dataMapItem.getDataMap().getDataMapArrayList(Constants.EXTRA_ATTRACTIONS);