private void handleOrientationChanged(object sender, OrientationChangedEventArgs e)
 {
     if (e.Orientation == DeviceOrientations.Portrait)
     {
         quitClipLoading();
         RaiseContentViewUpdateEvent?.Invoke(
             this, new UpdatedContentEventArgs(UpdatedContentEventArgs.EContentUpdateType.PopAsync)
             );
     }
 }
        private async void onEventDetailsBackButtonTapped(object sender, EventArgs e)
        {
            await Task.Factory.StartNew(() => RaiseContentViewUpdateEvent?.Invoke(this, new UpdatedContentEventArgs(UpdatedContentEventArgs.EContentUpdateType.Buffering)));

            await Task.Factory.StartNew(() => RaiseContentViewUpdateEvent?.Invoke(this, new UpdatedContentEventArgs(UpdatedContentEventArgs.EContentUpdateType.Pop)));

            await Task.Factory.StartNew(() => RaiseContentViewUpdateEvent?.Invoke(this, new UpdatedContentEventArgs(UpdatedContentEventArgs.EContentUpdateType.Pop)));

            CrossDeviceOrientation.Current.LockOrientation(DeviceOrientations.Portrait);
        }
 private void OnContentViewUpdateEvent(object sender, UpdatedContentEventArgs e)
 {
     lock (contentViewUpdateLock)
     {
         if (e == null || e.ContentUpdateType == EContentUpdateType.Buffering)
         {
             addToContentViewStack
             (
                 new Tuple <ContentPage, IBindableVM>(currentPageInContentView, currentPageVMInContentView)
             );
             RaiseContentViewUpdateEvent?.Invoke(null, new UpdatedContentEventArgs(EContentUpdateType.Buffering, waitingPage));
         }
         else if (e.ContentUpdateType == EContentUpdateType.Pop)
         {
             popFromControlViewStack();
         }
         else if (e.ContentUpdateType == EContentUpdateType.PushAsync)
         {
             addToContentViewStack
             (
                 new Tuple <ContentPage, IBindableVM>(currentPageInContentView, currentPageVMInContentView)
             );
             try
             {
                 (e.UpdatedContent as IFocusable).Refocus();
             }
             catch (NullReferenceException ex) { Console.WriteLine(ex.Message); }
             RaiseContentViewUpdateEvent?.Invoke(null, e);
         }
         else if (e.ContentUpdateType == EContentUpdateType.PopAsync)
         {
             RaiseContentViewUpdateEvent?.Invoke(null, e);
             Tuple <ContentPage, IBindableVM> stackTop = contentViewStack.Pop();
             try
             {
                 (stackTop.Item1 as IFocusable).Refocus();
             }
             catch (NullReferenceException ex) { Console.WriteLine(ex.Message); }
         }
         else                                        //UpdatedContentEventArgs.EContentUpdateType.Push
         {
             currentPageInContentView   = e.UpdatedContent;
             currentPageVMInContentView = e.UpdatedVM;
             Task.Factory.StartNew(() =>
             {
                 try
                 {
                     (currentPageInContentView as IPopulableView).PopulateView();
                 }
                 catch (NullReferenceException ex) { Console.WriteLine(ex.Message); }
             });
             RaiseContentViewUpdateEvent?.Invoke(null, e);
         }
     }
 }
 private void handleOrientationChanged(object sender, OrientationChangedEventArgs e)
 {
     if (e.Orientation == DeviceOrientations.Landscape)
     {
         quitClipLoading();
         RaiseContentViewUpdateEvent?.Invoke(
             this, new UpdatedContentEventArgs(
                 UpdatedContentEventArgs.EContentUpdateType.PushAsync, landscapeEventDetailsPage, landscapeEventDetailsPage.BindableViewModel
                 ));
     }
 }
        private void popFromControlViewStack()
        {
            Tuple <ContentPage, IBindableVM> stackTop = contentViewStack.Pop();

            if (stackTop != null)
            {
                currentPageInContentView   = stackTop.Item1;
                currentPageVMInContentView = stackTop.Item2;
                RaiseContentViewUpdateEvent?.Invoke(null, new UpdatedContentEventArgs(EContentUpdateType.Pop,
                                                                                      currentPageInContentView, currentPageVMInContentView));
            }
            else
            {
                throw new Exception("MainPage.PopFromControlViewStack called unexpectedely");
            }
        }
Esempio n. 6
0
        private async void onSensorTapped(object sender, ItemTappedEventArgs e)
        {
            RaiseContentViewUpdateEvent?.Invoke(this, new UpdatedContentEventArgs(UpdatedContentEventArgs.EContentUpdateType.Buffering));
            UpdatedContentEventArgs updatedContentEventArgs = null;
            CameraEventsPage        cameraEventsPageBuf     = null;

            await Task.Factory.StartNew(() =>
            {
                SensorModel sensorBuffer = e.Item as SensorModel;
                cameraEventsPageBuf      = new CameraEventsPage(sensorBuffer.Sensor);
                cameraEventsPageBuf.RaiseContentViewUpdateEvent += eventsRouter;
                updatedContentEventArgs = new UpdatedContentEventArgs(
                    UpdatedContentEventArgs.EContentUpdateType.Push, cameraEventsPageBuf,
                    cameraEventsPageBuf.BindableViewModel);
            });

            RaiseContentViewUpdateEvent?.Invoke(this, updatedContentEventArgs);
        }
        private async void onEventTapped(object sender, ItemTappedEventArgs e)
        {
            RaiseContentViewUpdateEvent?.Invoke(this, null);
            UpdatedContentEventArgs updatedContentEventArgs = null;
            EventDetailsPage        eventDetailsPageBuf     = null;

            await Task.Factory.StartNew(() =>
            {
                EventModel selectedEvent = e.Item as EventModel;
                eventDetailsPageBuf      = new EventDetailsPage(selectedEvent);
                eventDetailsPageBuf.RaiseContentViewUpdateEvent += eventsRouter;
                updatedContentEventArgs = new UpdatedContentEventArgs(
                    UpdatedContentEventArgs.EContentUpdateType.Push, eventDetailsPageBuf,
                    eventDetailsPageBuf.BindableViewModel);
            });

            RaiseContentViewUpdateEvent?.Invoke(this, updatedContentEventArgs);
        }
        private async void onSensorNameTapped(EventModel val)
        {
            RaiseContentViewUpdateEvent?.Invoke(this, new UpdatedContentEventArgs(UpdatedContentEventArgs.EContentUpdateType.Buffering));
            UpdatedContentEventArgs updatedContentEventArgs = null;
            CameraEventsPage        cameraEventsPageBuf     = null;
            Sensor sensorBuffer = val.Sensor;

            await Task.Factory.StartNew(() =>
            {
                cameraEventsPageBuf = new CameraEventsPage(sensorBuffer);
                cameraEventsPageBuf.RaiseContentViewUpdateEvent += eventsRouter;
            });

            await Task.Factory.StartNew(() =>
                                        updatedContentEventArgs = new UpdatedContentEventArgs(
                                            UpdatedContentEventArgs.EContentUpdateType.Push, cameraEventsPageBuf, cameraEventsPageBuf.BindableViewModel
                                            ));

            RaiseContentViewUpdateEvent?.Invoke(this, updatedContentEventArgs);
        }
        private async void cameraEventsListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            RaiseContentViewUpdateEvent?.Invoke(this, null);
            EventModel selectedSensorEvent = e.SelectedItem as EventModel;
            UpdatedContentEventArgs updatedContentEventArgs = null;
            EventDetailsPage        eventDetailsPageBuf     = null;

            await Task.Factory.StartNew(() =>
            {
                eventDetailsPageBuf = new EventDetailsPage(selectedSensorEvent);
                eventDetailsPageBuf.RaiseContentViewUpdateEvent += eventsRouter;
            });

            await Task.Factory.StartNew(() =>
                                        updatedContentEventArgs = new UpdatedContentEventArgs(
                                            UpdatedContentEventArgs.EContentUpdateType.Push, eventDetailsPageBuf, eventDetailsPageBuf.BindableViewModel
                                            ));

            RaiseContentViewUpdateEvent?.Invoke(this, updatedContentEventArgs);
        }
 private void eventsRouter(object sender, UpdatedContentEventArgs e)
 {
     RaiseContentViewUpdateEvent?.Invoke(this, e);
 }
 private void onCameraEventBackButtonTapped(object sender, EventArgs e)
 {
     RaiseContentViewUpdateEvent?.Invoke(this, new UpdatedContentEventArgs(UpdatedContentEventArgs.EContentUpdateType.Pop));
 }