示例#1
0
 public static void AddOrientationChangeListener([NotNull] IOrientationChangeListener listener)
 {
     Should.NotBeNull(listener, "listener");
     lock (OrientationChangeListeners)
     {
         if (!_hasOrientationChangeSubscriber)
         {
             UIApplication.Notifications.ObserveDidChangeStatusBarOrientation(DidChangeStatusBarOrientation);
             _hasOrientationChangeSubscriber = true;
         }
         OrientationChangeListeners.Add(ToolkitExtensions.GetWeakReference(listener));
     }
 }
示例#2
0
 public static void RemoveOrientationChangeListener(IOrientationChangeListener listener)
 {
     Should.NotBeNull(listener, "listener");
     lock (OrientationChangeListeners)
     {
         for (int i = 0; i < OrientationChangeListeners.Count; i++)
         {
             var target = OrientationChangeListeners[i].Target;
             if (target == null)
             {
                 OrientationChangeListeners.RemoveAt(i);
                 --i;
                 continue;
             }
             if (ReferenceEquals(target, listener))
             {
                 OrientationChangeListeners.RemoveAt(i);
                 return;
             }
         }
     }
 }