Skip to content

Instantly share code, notes, and snippets.

View rdelrosario's full-sized avatar

Rendy Del Rosario rdelrosario

View GitHub Profile
@rdelrosario
rdelrosario / app_notarizer.sh
Last active January 12, 2024 19:40
macOS Application Notarization Script
#!/bin/bash
usage()
{
# Display Help
echo "*********************************************************************************************************************************************************"
echo " MacOS Application Notarization Script"
echo "*********************************************************************************************************************************************************"
echo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace CustomNavigationBarSample
{
public class CustomNavigationPage : NavigationPage
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.OS;
namespace AppLinksSample.Droid
{
[Activity(Label = "AppLinksSample", Icon = "@mipmap/icon", Theme = "@style/MainTheme",
MainLauncher = true,
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
namespace AppLinksSample
{
public partial class App : Application
{
public App()
@rdelrosario
rdelrosario / NativeOverlayView.cs
Last active July 6, 2022 10:58
NativeOverlayView iOS
public class NativeOverlayView : UIView
{
bool showOverlay = true;
public bool ShowOverlay
{
get { return showOverlay; }
set
{
showOverlay = value;
@rdelrosario
rdelrosario / StartupTaskSequencer.cs
Created May 10, 2022 21:03
StartupTaskSequencer.cs
private class StartupTaskSequencer : IStartupTaskSequencer
{
public StartupTaskSequencer(Queue<IStartupTask> tasks) => _tasks = tasks;
public async Task StartAsync(IStartupTask task, IStartupTaskParameters parameters = null)
{
parameters ??= StartupTaskParameters.None;
foreach (var next in _tasks.SkipWhile(x => x != task))
{
public abstract class StartupPage : ContentPage, IStartupTask
{
...
async Task<IStartupTaskParameters> IStartupTask.RunAsync(IStartupTaskParameters parameters)
{
_tcs = new TaskCompletionSource<IStartupTaskParameters>();
await OnStartAsync(parameters);
await App.Current.MainPage.Navigation.PushModalAsync(this);
public interface IStartupTaskSequencer
{
Task StartAsync();
Task StartAsync(IStartupTask task, IStartupTaskParameters parameters = null);
}
public partial class LoginPage : StartupPage
{
public ICommand NextCommand { get; }
public LoginPage() : base()
{
InitializeComponent();
NextCommand = new Command(async() =>
{
await CompleteAsync(new StartupTaskParameters()
public partial class HomePage : TabbedPage, IStartupTask
{
public HomePage()
{
InitializeComponent();
}
public Task<bool> CanRunAsync() => Task.FromResult(true);
public async Task<IStartupTaskParameters> RunAsync(IStartupTaskParameters parameters)
{