Example #1
0
        /// <summary>
        /// force to change mainPage, so user can't go back never
        /// </summary>
        /// <param name="app">
        /// </param>
        /// <param name="page">
        /// </param>
        /// <returns>
        /// </returns>
        //https://forums.xamarin.com/discussion/26870/changing-root-from-a-navigation-page
        public static async Task ChangeMainPage(this ICustomLayout app, Page page)
        {
            var root = app.NavPage.Navigation.NavigationStack[0];

            app.NavPage.Navigation.InsertPageBefore(page, root);
            await PopToRootAsync(app.NavPage);
        }
Example #2
0
        /// <summary>
        /// MvvmMessagingCenter initializer
        /// </summary>
        /// <param name="subcriber">
        /// subcriber ICustomLayout
        /// </param>
        public static void Init(ICustomLayout subcriber)
        {
            if (_currentPage != null)
            {
                MessagingCenter.Unsubscribe <ICustomLayout, Exception>(_currentPage, MessagingCenterMessage.ExceptionOccurred);
            }

            lock (Sync)
                _currentPage = subcriber;
            MessagingCenter.Subscribe <ICustomLayout, Exception>(subcriber, MessagingCenterMessage.ExceptionOccurred, OnAppExceptionOccurred);
        }
Example #3
0
        /// <summary>
        /// custom event subcriber
        /// </summary>
        /// <param name="subcriber">
        /// subcriber ICustomLayout
        /// </param>
        /// <param name="message">
        /// type of MessagingCenterMessage class
        /// </param>
        public static void SubcribeIncomingEvent(ICustomLayout subcriber, string message)
        {
            MessagingCenter.Unsubscribe <ICustomLayout, MvvmMessagingCenterEventArgs>(subcriber, message);

            MessagingCenter.Subscribe <ICustomLayout, MvvmMessagingCenterEventArgs>(subcriber, message, MessagingCenterIncomingEvents);
        }
Example #4
0
 /// <summary>
 /// </summary>
 /// <param name="sender">
 /// sender ICustomLayout
 /// </param>
 /// <param name="message">
 /// type of MessagingCenterMessage class
 /// </param>
 /// <param name="Event">
 /// custom object (we can cast it after handling)
 /// </param>
 public static void SendIncomingEvent(ICustomLayout sender, string message, object Event)
 {
     MessagingCenter.Send <ICustomLayout, MvvmMessagingCenterEventArgs>(sender, message, new MvvmMessagingCenterEventArgs(message, Event));
 }
Example #5
0
 /// <summary>
 /// </summary>
 /// <param name="sender">
 /// sender ICustomLayout
 /// </param>
 /// <param name="exp">
 /// exception which occurs on run-time
 /// </param>
 public static void SendException(ICustomLayout sender, Exception exp)
 {
     MessagingCenter.Send <ICustomLayout, Exception>(sender, MessagingCenterMessage.ExceptionOccurred, exp);
 }
        public override void OnIncomingEvents(ICustomLayout sender, MvvmMessagingCenterEventArgs args)
        {
            object obj = args.Cast <object>(); //custom caster

            DisplayAlert("CustomEvent", args.MessageId + " " + obj.ToString(), "OK");
        }
 public virtual void OnIncomingEvents(ICustomLayout sender, MvvmMessagingCenterEventArgs args)
 {
 }