| Index: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
|
| index 8f0b7f14d173c079f5690ecdca833af864497d2c..9084f39645ca7a6a6aef910ab49eac89ae25eefa 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
|
| @@ -10,6 +10,7 @@ import android.content.ComponentName;
|
| import android.content.Context;
|
| import android.content.Intent;
|
| import android.content.pm.ActivityInfo;
|
| +import android.os.Build;
|
| import android.os.Handler;
|
| import android.os.StrictMode;
|
| import android.os.SystemClock;
|
| @@ -36,6 +37,7 @@ import org.chromium.chrome.browser.tab.Tab;
|
| import org.chromium.chrome.browser.tab.TabObserver;
|
| import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
|
| import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
|
| +import org.chromium.components.variations.VariationsAssociatedData;
|
|
|
| import java.lang.annotation.Retention;
|
| import java.lang.annotation.RetentionPolicy;
|
| @@ -73,6 +75,8 @@ public class VrShellDelegate {
|
| private static final String DAYDREAM_CATEGORY = "com.google.intent.category.DAYDREAM";
|
| private static final String CARDBOARD_CATEGORY = "com.google.intent.category.CARDBOARD";
|
|
|
| + private static final String MIN_SDK_VERSION_PARAM_NAME = "min_sdk_version";
|
| +
|
| private static final String VR_ACTIVITY_ALIAS =
|
| "org.chromium.chrome.browser.VRChromeTabbedActivity";
|
|
|
| @@ -126,6 +130,26 @@ public class VrShellDelegate {
|
| mVrDaydreamApi = mVrClassesWrapper.createVrDaydreamApi();
|
| }
|
|
|
| + // Check cardboard support for non-daydream devices.
|
| + if (!mVrDaydreamApi.isDaydreamReadyDevice()) {
|
| + // Native libraries may not be ready in which case skip for now and check later.
|
| + if (LibraryLoader.isInitialized()) {
|
| + // Supported Build version is determined by the webvr cardboard support feature.
|
| + // Default is KITKAT unless specified via server side finch config.
|
| + if (Build.VERSION.SDK_INT
|
| + < VariationsAssociatedData.getVariationParamByFeatureAsInt(
|
| + ChromeFeatureList.getFeature(
|
| + ChromeFeatureList.WEBVR_CARDBOARD_SUPPORT),
|
| + MIN_SDK_VERSION_PARAM_NAME, Build.VERSION_CODES.KITKAT)) {
|
| + mVrSupportLevel = VR_NOT_AVAILABLE;
|
| + mEnterVRIntent = null;
|
| + mTabObserver = null;
|
| + mTabModelSelectorObserver = null;
|
| + return;
|
| + }
|
| + }
|
| + }
|
| +
|
| if (mEnterVRIntent == null) {
|
| mEnterVRIntent =
|
| mVrDaydreamApi.createVrIntent(new ComponentName(mActivity, VR_ACTIVITY_ALIAS));
|
| @@ -172,6 +196,8 @@ public class VrShellDelegate {
|
| * can be initialized.
|
| */
|
| public void onNativeLibraryReady() {
|
| + // Libraries may not have been loaded when we first set the support level, so check again.
|
| + updateVrSupportLevel();
|
| if (mVrSupportLevel == VR_NOT_AVAILABLE) return;
|
| mNativeVrShellDelegate = nativeInit();
|
| Choreographer choreographer = Choreographer.getInstance();
|
|
|