protected override void OnApplicationPause(bool pause)
 {
     if (!VuforiaRuntimeUtilities.IsPlayMode())
     {
         if (pause)
         {
             if (!this.mPaused)
             {
                 if (this.mOnPause != null)
                 {
                     this.mOnPause.InvokeWithExceptionHandling(true);
                 }
                 ObjectTracker tracker = TrackerManager.Instance.GetTracker <ObjectTracker>();
                 this.mObjectTrackerWasActiveBeforePause = (tracker != null && tracker.IsActive);
                 this.mWasEnabledBeforePause             = base.VuforiaBehaviour.enabled;
                 if (this.mWasEnabledBeforePause)
                 {
                     this.StopVuforia();
                 }
                 GL.Clear(false, true, new Color(0f, 0f, 0f, 1f));
                 UnityPlayer.Instance.OnPause();
             }
         }
         else if (this.mPaused)
         {
             UnityPlayer.Instance.OnResume();
             if (this.mWasEnabledBeforePause && this.StartVuforia(this.mObjectTrackerWasActiveBeforePause))
             {
                 IOSCamRecoveringHelper.SetHasJustResumed();
             }
             this.ResetBackgroundPlane(true);
             if (this.mOnPause != null)
             {
                 this.mOnPause.InvokeWithExceptionHandling(false);
             }
         }
     }
     this.mPaused = pause;
 }