Make sure nav bar doesn't come up on pressing power button.

- Don't show the downloading dialog while checking for update.
- Use material theme for the download progress dialog.

Bug: 29912660
Change-Id: I4a0effcac4546a70fd33d400a25eb63c0ce9722a
diff --git a/src/com/android/retaildemo/DemoPlayer.java b/src/com/android/retaildemo/DemoPlayer.java
index e6a087f..a99ebee 100644
--- a/src/com/android/retaildemo/DemoPlayer.java
+++ b/src/com/android/retaildemo/DemoPlayer.java
@@ -74,16 +74,6 @@
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                 | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                 | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
-        // Make view full screen
-        getWindow().getDecorView().setSystemUiVisibility(
-                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
-                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
-                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
-                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
-                        | View.SYSTEM_UI_FLAG_FULLSCREEN
-                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
-                        | View.STATUS_BAR_DISABLE_BACK
-        );
         setContentView(R.layout.retail_video);
 
         mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
@@ -228,6 +218,17 @@
     @Override
     public void onResume() {
         super.onResume();
+        // Make view fullscreen.
+        // And since flags SYSTEM_UI_FLAG_HIDE_NAVIGATION and SYSTEM_UI_FLAG_HIDE_NAVIGATION might
+        // get cleared on user interaction, we do this here instead of onCreate.
+        getWindow().getDecorView().setSystemUiVisibility(
+                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+                        | View.SYSTEM_UI_FLAG_FULLSCREEN
+                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+                        | View.STATUS_BAR_DISABLE_BACK);
         // Resume video playing
         if (mVideoView != null) {
             mVideoView.resume();
@@ -258,7 +259,7 @@
         final PowerManager.WakeLock wakeLock = mPowerManager.newWakeLock(
                 PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
         wakeLock.acquire();
-        // Device waken up, release the wake-lock
+        // Device woken up, release the wake-lock
         wakeLock.release();
     }
 }
diff --git a/src/com/android/retaildemo/DownloadVideoTask.java b/src/com/android/retaildemo/DownloadVideoTask.java
index d635553..8edd2fe 100644
--- a/src/com/android/retaildemo/DownloadVideoTask.java
+++ b/src/com/android/retaildemo/DownloadVideoTask.java
@@ -31,6 +31,7 @@
 import android.os.Looper;
 import android.os.Message;
 import android.util.Log;
+import android.view.ContextThemeWrapper;
 
 import java.io.File;
 import java.io.IOException;
@@ -65,6 +66,7 @@
     private long mVideoDownloadId;
     private long mVideoUpdateDownloadId;
     private String mDownloadedPath;
+    private boolean mVideoAlreadySet;
 
     public DownloadVideoTask(Context context, String downloadPath, ResultListener listener) {
         mContext = context;
@@ -85,8 +87,10 @@
         thread.start();
         mHandler = new ThreadHandler(thread.getLooper());
 
+        mVideoAlreadySet =
+                mDownloadFile.exists() || new File(DemoPlayer.PRELOADED_VIDEO_FILE).exists();
         // If file already exists, no need to download it again.
-        if (mDownloadFile.exists() || new File(DemoPlayer.PRELOADED_VIDEO_FILE).exists()) {
+        if (mVideoAlreadySet) {
             if (DEBUG) Log.d(TAG, "Video already exists at either " + mDownloadFile.getPath()
                     + " or " + DemoPlayer.PRELOADED_VIDEO_FILE + ", checking for an update... ");
             mHandler.sendMessage(mHandler.obtainMessage(MSG_CHECK_FOR_UPDATE));
@@ -236,7 +240,7 @@
         public void onReceive(Context context, Intent intent) {
             if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())
                     && isConnectedToNetwork()) {
-                if (mDownloadFile.exists()) {
+                if (mVideoAlreadySet) {
                     mHandler.sendMessage(mHandler.obtainMessage(MSG_CHECK_FOR_UPDATE));
                 } else {
                     startDownload();
@@ -246,7 +250,8 @@
     };
 
     private void showProgressDialog() {
-        mProgressDialog = new ProgressDialog(mContext);
+        mProgressDialog = new ProgressDialog(
+                new ContextThemeWrapper(mContext, android.R.style.Theme_Material_Light_Dialog));
         mProgressDialog.setMessage(mContext.getString(R.string.downloading_video_msg));
         mProgressDialog.setIndeterminate(false);
         mProgressDialog.setCancelable(false);