App/Payesh.App/Utilities/PopUpUtilities.cs

143 lines
4.9 KiB
C#

using Payesh.App.Models;
using Payesh.App.Views.Popups.Originals;
using Rg.Plugins.Popup.Pages;
using Rg.Plugins.Popup.Services;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace Payesh.App.Utilities
{
public class PopUpUtilities
{
public async Task PopAsync()
{
if (PopupNavigation.Instance.PopupStack.Count > 0)
await PopupNavigation.Instance.PopAllAsync();
}
public async Task PushAsync(View content, bool closeWithClickBack = true)
{
await PopAsync();
await PopupNavigation.Instance.PushAsync(new PopupPage
{
Content = content,
CloseWhenBackgroundIsClicked = closeWithClickBack
});
}
public async void PushIndicator()
{
await PopAsync();
var indicator = new Frame
{
BackgroundColor = Color.White,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
CornerRadius = 100,
Content = new ActivityIndicator
{
Color = (Color)Application.Current.Resources["PrimaryColor"],
WidthRequest = 70,
HeightRequest = 70,
IsRunning = true,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center
}
};
await PushAsync(indicator, false);
}
public async void PushSuccess(string message = null)
{
await PopAsync();
if (message == null)
await PushAsync(new SuccessPopUp());
else
await PushAsync(new SuccessPopUp(message));
}
public async void PushError(string message)
{
await PopAsync();
await PushAsync(new ErrorPopUp(message));
}
public async void PushNotify(string message)
{
await PopAsync();
//await PushAsync(new NotificationPopUp(message));
}
public void LockPage(ContentPage page, string message = null)
{
Grid mainGrid = new Grid();
mainGrid.Children.Add(page.Content);
Frame mainFrame = new Frame
{
BackgroundColor = Color.FromHex("#60444444"),
Content = new StackLayout
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
Children =
{
new Label
{
Text = "اجازه دسترسی به این بخش را ندارید",
HorizontalOptions = LayoutOptions.Center,
},
new Label
{
Text = message,
HorizontalOptions = LayoutOptions.Center
}
}
}
};
page.Content = mainGrid;
}
public void LockPage(ContentView view, string message = null)
{
Grid mainGrid = new Grid();
mainGrid.Children.Add(view.Content);
Frame mainFrame = new Frame
{
BackgroundColor = Color.FromHex("#99444444"),
CornerRadius = 5,
Content = new StackLayout
{
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center,
Children =
{
new Label
{
Text = FaIconFont.DoorClosed,
FontSize = 60,
TextColor = Color.OrangeRed,
FontFamily = "fa-regular-400.ttf#Font Awesome 5 Pro Reqular",
HorizontalOptions = LayoutOptions.Center,
},
new Label
{
Text = "اجازه دسترسی به این بخش را ندارید",
FontSize = 18,
TextColor = Color.White,
HorizontalOptions = LayoutOptions.Center,
},
new Label
{
Text = message,
TextColor = Color.White,
HorizontalTextAlignment = TextAlignment.Center,
HorizontalOptions = LayoutOptions.Center
}
}
}
};
mainGrid.Children.Add(mainFrame);
view.Content = mainGrid;
}
}
}