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);
}