Use preloaded video if we are unable to play the downloaded one.
am: c05f3dfb8f

Change-Id: I7a28ac5e677fa83f5dfcc73c92bd3df23aebea88
diff --git a/src/com/android/retaildemo/DemoPlayer.java b/src/com/android/retaildemo/DemoPlayer.java
index 84852c8..e6a087f 100644
--- a/src/com/android/retaildemo/DemoPlayer.java
+++ b/src/com/android/retaildemo/DemoPlayer.java
@@ -64,6 +64,7 @@
     private VideoView mVideoView;
     private int mVideoPosition;
     private String mDownloadPath;
+    private boolean mUsingDownloadedVideo;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -106,7 +107,17 @@
         mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
             @Override
             public boolean onError(MediaPlayer mp, int what, int extra) {
-                displayFallbackView();
+                if (mUsingDownloadedVideo && new File(PRELOADED_VIDEO_FILE).exists()) {
+                    if (DEBUG) Log.d(TAG, "Error using the downloaded video, "
+                            + "falling back to the preloaded video at " + PRELOADED_VIDEO_FILE);
+                    mUsingDownloadedVideo = false;
+                    setVideoPath(PRELOADED_VIDEO_FILE);
+                    // And delete the downloaded video so that we don't try to use it
+                    // again next time.
+                    new File(mDownloadPath).delete();
+                } else {
+                    displayFallbackView();
+                }
                 return true;
             }
         });
@@ -173,6 +184,7 @@
 
     @Override
     public void onFileDownloaded(final String filePath) {
+        mUsingDownloadedVideo = true;
         runOnUiThread(new Runnable() {
             @Override
             public void run() {