123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Syncfusion.XForms.PopupLayout;
- using Xamarin.Forms;
- using Xamarin.Forms.Xaml;
- using XF.Material.Forms.UI.Dialogs;
- namespace comal.timesheets
- {
- [XamlCompilation(XamlCompilationOptions.Compile)]
- public partial class BasePage
- {
- public IList<View> ActionButtons => _actionButtons.Children;
- public IList<View> PageContent => _content.Children;
- public bool BackButtonEnabled
- {
- get => _backButton.IsVisible;
- set => _backButton.IsVisible = value;
- }
-
- private SfPopupLayout _popup = new SfPopupLayout();
-
- public BasePage()
- {
- InitializeComponent();
- _titleBar.BackgroundColor = XF.Material.Forms.Material.Color.Primary;
- _titleLabel.TextColor = XF.Material.Forms.Material.Color.OnPrimary;
- }
-
- protected override void OnAppearing()
- {
- App.Data.TransportConnected += TransportConnected;
- App.Data.TransportDisconnected += TransportDisconnected;
- UpdateTransportStatus();
- base.OnAppearing();
- }
- protected override void OnDisappearing()
- {
- App.Data.TransportConnected -= TransportConnected;
- App.Data.TransportDisconnected -= TransportDisconnected;
- base.OnDisappearing();
- }
- private void TransportDisconnected(TransportDisconnectedEventArgs args) => UpdateConnectionStatus();
- private void TransportConnected(TransportConnectedEventArgs args) => UpdateConnectionStatus();
-
- private void UpdateConnectionStatus()
- {
- Device.BeginInvokeOnMainThread(UpdateTransportStatus);
- }
-
- private static Task<IMaterialModalPage> _snackbar = null;
-
- protected virtual void UpdateTransportStatus()
- {
- // ConnectionIndicator.Image = App.Data.IsConnected()
- // ? ImageSource.FromFile("transparent.png")
- // : ImageSource.FromFile("disconnected.png"); //ImageSource.FromFile("Images/nodata.png");
- _connectionIndicator.IsVisible = !App.Data.IsConnected();
-
- // if (!App.Data.IsConnected() && (_snackbar == null))
- // _snackbar = MaterialDialog.Instance.LoadingSnackbarAsync(message: "No Connection Available!");
- //
- // else if (App.Data.IsConnected() && (_snackbar != null) && (_snackbar.Result != null))
- // {
- // _snackbar.Result.DismissAsync();
- // _snackbar = null;
- // }
- }
- private void _backButton_OnClicked(object sender, EventArgs e)
- {
- Navigation.PopAsync();
- }
-
- public void ShowPopup(Func<View> view, int height = 500, int width = 300, int padding = 10)
- {
- _popup.PopupView.HeightRequest = height;
- _popup.PopupView.WidthRequest = width;
- _popup.PopupView.ShowHeader = false;
- _popup.PopupView.ShowFooter = false;
- _popup.PopupView.ContentTemplate = new DataTemplate(() =>
- {
- Grid grid = new Grid() { Margin = padding, Padding = padding};
- grid.Children.Add(view());
- return grid;
- });
- _popup.Show();
- }
- public void DismissPopup()
- {
- _popup.Dismiss();
- }
- }
- }
|