Index: chrome/android/java/src/org/chromium/chrome/browser/VrActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/VrActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/VrActivity.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1474f77e8d19f3ae2ae2765bfcf83ae6ee54d506 |
--- /dev/null |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/VrActivity.java |
@@ -0,0 +1,73 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser; |
+ |
+import android.graphics.PixelFormat; |
+import android.view.View; |
+import android.view.Window; |
+import android.view.WindowManager; |
+ |
+import org.chromium.chrome.browser.init.AsyncInitializationActivity; |
+import org.chromium.chrome.browser.vr_shell.VrShell; |
+ |
+/** |
+ * A subclass of AsyncInitializationActivity, used in Daydream VR mode. |
+ * TODO(bshe): This activity needs to access the same set of tabs as ChromeTabbedActivity. |
+ * See more detail in crbug.com/641038. |
+ * |
+ */ |
+public class VrActivity extends AsyncInitializationActivity { |
+ private VrShell mVrShellView; |
+ |
+ @Override |
+ public void onResume() { |
+ super.onResume(); |
+ mVrShellView.onResume(); |
+ } |
+ |
+ @Override |
+ public void onPause() { |
+ super.onPause(); |
+ mVrShellView.onPause(); |
+ } |
+ |
+ @Override |
+ public void onDestroy() { |
+ super.onDestroy(); |
+ if (mVrShellView != null) { |
+ mVrShellView.shutdown(); |
+ mVrShellView = null; |
+ } |
+ } |
+ |
+ @Override |
+ public void initializeCompositor() { |
+ super.initializeCompositor(); |
+ mVrShellView.onNativeLibraryReady(); |
+ } |
+ |
+ @Override |
+ public void setContentView() { |
+ setupVrModeWindowFlags(); |
+ addVrViews(); |
+ } |
+ |
+ private void addVrViews() { |
+ mVrShellView = new VrShell(this); |
+ WindowManager.LayoutParams params = new WindowManager.LayoutParams( |
+ WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT, |
+ WindowManager.LayoutParams.TYPE_APPLICATION, 0, PixelFormat.OPAQUE); |
+ setContentView(mVrShellView, params); |
+ } |
+ |
+ private void setupVrModeWindowFlags() { |
+ Window window = getWindow(); |
+ window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); |
+ window.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); |
+ } |
+} |