private VrShellDelegate(ChromeActivity activity, VrClassesWrapper wrapper) { mActivity = activity; mVrClassesWrapper = wrapper; // If an activity isn't resumed at the point, it must have been paused. mPaused = ApplicationStatus.getStateForActivity(activity) != ActivityState.RESUMED; updateVrSupportLevel(); mNativeVrShellDelegate = nativeInit(); mFeedbackFrequency = VrFeedbackStatus.getFeedbackFrequency(); mEnterVrHandler = new Handler(); Choreographer.getInstance().postFrameCallback(new FrameCallback() { @Override public void doFrame(long frameTimeNanos) { if (mNativeVrShellDelegate == 0) return; Display display = ((WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE)) .getDefaultDisplay(); nativeUpdateVSyncInterval( mNativeVrShellDelegate, frameTimeNanos, 1.0d / display.getRefreshRate()); } }); ApplicationStatus.registerStateListenerForAllActivities(this); }