OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.vr_shell; | 5 package org.chromium.chrome.browser.vr_shell; |
6 | 6 |
| 7 import android.os.Build; |
| 8 |
7 import com.google.vr.ndk.base.Version; | 9 import com.google.vr.ndk.base.Version; |
8 import com.google.vr.vrcore.base.api.VrCoreNotAvailableException; | 10 import com.google.vr.vrcore.base.api.VrCoreNotAvailableException; |
9 import com.google.vr.vrcore.base.api.VrCoreUtils; | 11 import com.google.vr.vrcore.base.api.VrCoreUtils; |
10 | 12 |
11 import org.chromium.base.ContextUtils; | 13 import org.chromium.base.ContextUtils; |
12 import org.chromium.base.Log; | 14 import org.chromium.base.Log; |
13 | 15 |
| 16 import org.chromium.chrome.browser.ChromeFeatureList; |
| 17 |
14 /** | 18 /** |
15 * Helper class to check if VrCore version is compatible with Chromium. | 19 * Helper class to check if VrCore version is compatible with Chromium. |
16 */ | 20 */ |
17 public class VrCoreVersionCheckerImpl implements VrCoreVersionChecker { | 21 public class VrCoreVersionCheckerImpl implements VrCoreVersionChecker { |
18 private static final String TAG = "VrCoreVersionChecker"; | 22 private static final String TAG = "VrCoreVersionChecker"; |
19 | 23 |
| 24 private static final String MIN_SDK_VERSION_PARAM_NAME = "min_sdk_version"; |
| 25 |
20 @Override | 26 @Override |
21 public int getVrCoreCompatibility() { | 27 public int getVrCoreCompatibility() { |
| 28 // Supported Build version is determined by the webvr cardboard support
feature. |
| 29 // Default is KITKAT unless specified via server side finch config. |
| 30 if (Build.VERSION.SDK_INT < ChromeFeatureList.getFieldTrialParamByFeatur
eAsInt( |
| 31 ChromeFeatureList.WEBVR_CARDBOARD_SU
PPORT, |
| 32 MIN_SDK_VERSION_PARAM_NAME, |
| 33 Build.VERSION_CODES.KITKAT)) { |
| 34 return VrCoreVersionChecker.VR_NOT_SUPPORTED; |
| 35 } |
22 try { | 36 try { |
23 String vrCoreSdkLibraryVersionString = VrCoreUtils.getVrCoreSdkLibra
ryVersion( | 37 String vrCoreSdkLibraryVersionString = VrCoreUtils.getVrCoreSdkLibra
ryVersion( |
24 ContextUtils.getApplicationContext()); | 38 ContextUtils.getApplicationContext()); |
25 Version vrCoreSdkLibraryVersion = Version.parse(vrCoreSdkLibraryVers
ionString); | 39 Version vrCoreSdkLibraryVersion = Version.parse(vrCoreSdkLibraryVers
ionString); |
26 Version targetSdkLibraryVersion = | 40 Version targetSdkLibraryVersion = |
27 Version.parse(com.google.vr.ndk.base.BuildConstants.VERSION)
; | 41 Version.parse(com.google.vr.ndk.base.BuildConstants.VERSION)
; |
28 if (!vrCoreSdkLibraryVersion.isAtLeast(targetSdkLibraryVersion)) { | 42 if (!vrCoreSdkLibraryVersion.isAtLeast(targetSdkLibraryVersion)) { |
29 return VrCoreVersionChecker.VR_OUT_OF_DATE; | 43 return VrCoreVersionChecker.VR_OUT_OF_DATE; |
30 } | 44 } |
31 return VrCoreVersionChecker.VR_READY; | 45 return VrCoreVersionChecker.VR_READY; |
32 } catch (VrCoreNotAvailableException e) { | 46 } catch (VrCoreNotAvailableException e) { |
33 Log.i(TAG, "Unable to find VrCore."); | 47 Log.i(TAG, "Unable to find VrCore."); |
34 return VrCoreVersionChecker.VR_NOT_AVAILABLE; | 48 return VrCoreVersionChecker.VR_NOT_AVAILABLE; |
35 } | 49 } |
36 } | 50 } |
37 } | 51 } |
OLD | NEW |