Request sync when there's no mediaItem in a mediaSet.

This is to fix the problem where media items haven't been sync'ed when the album
set or album is viewed for the first time.

+ Add MediaSet.SyncListener.
+ Make AlbumPage and AlbumSetPage implement SyncListener.
+ Implement requestSync() for ComboAlbum and ComboAlbumSet.
+ add ActivityState.isDestroyed(). This also fixes the problem where
  StateManager.finishState() may be called twice.

Bug: 5337899
Change-Id: I25364c3ac25721a2650701c5d7931bfb6daa9303
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 26d80e7..74ba1f3 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -199,6 +199,11 @@
     <!-- This toast message is shown when network connection is lost while doing clustering -->
     <string name="no_connectivity">Some locations couldn\'t be identified due to network problems.</string>
 
+    <!-- This toast message is shown when failed to load the album data. [CHAR LIMIT=NONE] -->
+    <string name="sync_album_error">Failed to download the photos in this album. Please retry later.</string>
+    <!-- This toast message is shown when failed to load the album list data. [CHAR LIMIT=NONE] -->
+    <string name="sync_album_set_error">Failed to download the list of albums. Please retry later.</string>
+
     <!-- The title of the menu item to let user choose the which portion of
          the media items the user wants to see. When pressed, a submenu will
          appear and user can choose one of "show images only",