Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions Sample/Toast.Forms.Plugin.Sample.Mac/AppDelegate.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
using System;
using AppKit;
using Foundation;
using UserNotifications;
using Xamarin.Forms.Platform.MacOS;
using Plugin.Toasts;
using Toasts.Forms.Plugin.Sample;

namespace Toast.Forms.Plugin.Sample.Mac
{
[Register ("AppDelegate")]
public class AppDelegate : FormsApplicationDelegate
{
public AppDelegate ()
{
var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.Titled;

var rect = new CoreGraphics.CGRect (250, 50, 720, 500);
window = new NSWindow (rect, style, NSBackingStore.Buffered, false) {
Title = "Toasts.Forms.Plugins", // choose your own Title here
TitleVisibility = NSWindowTitleVisibility.Hidden
};

// Add Quit shortcut
NSMenu appMenubar = new NSMenu ();
NSMenuItem appMenuItem = new NSMenuItem ();
appMenubar.AddItem (appMenuItem);

NSMenu appMenu = new NSMenu ();
appMenuItem.Submenu = appMenu;

var quitMenuItem = new NSMenuItem ("Quit", "q", delegate {
NSApplication.SharedApplication.Terminate (appMenubar);
});
appMenu.AddItem (quitMenuItem);

NSApplication.SharedApplication.MainMenu = appMenubar;
}

NSWindow window;
public override NSWindow MainWindow => window;
private UNUserNotificationCenter currentNotificationCenter;

public override void WillFinishLaunching (NSNotification notification)
{
// Check we're at least v10.14
if (NSProcessInfo.ProcessInfo.IsOperatingSystemAtLeastVersion (new NSOperatingSystemVersion (10, 14, 0))) {
currentNotificationCenter = UNUserNotificationCenter.Current;
currentNotificationCenter.Delegate = new UNUserNotificationCenterDelegate ();
// Request Permissions
currentNotificationCenter.RequestAuthorization (UNAuthorizationOptions.Alert | UNAuthorizationOptions.Badge | UNAuthorizationOptions.Sound, (granted, error) => {
if (error != null) {
NSApplication.SharedApplication.InvokeOnMainThread (() => {
var alert = new NSAlert {
InformativeText = "Notification Request Error",
MessageText = error.LocalizedDescription + Environment.NewLine + "Reason: " + error.LocalizedFailureReason,
AlertStyle = NSAlertStyle.Critical,
};
alert.AddButton ("Ok");

alert.RunModal ();
});
}
});
}
}

public override void DidFinishLaunching (NSNotification notification)
{
Xamarin.Forms.Forms.Init ();

Xamarin.Forms.DependencyService.Register<ToastNotification> (); // Register your dependency
ToastNotification.Init ();

LoadApplication (new App ());

base.DidFinishLaunching (notification);
}

public override void WillTerminate (NSNotification notification)
{
// Insert code here to tear down your application
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
6 changes: 6 additions & 0 deletions Sample/Toast.Forms.Plugin.Sample.Mac/Entitlements.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>
30 changes: 30 additions & 0 deletions Sample/Toast.Forms.Plugin.Sample.Mac/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>Toasts.Forms.Plugin.Sample</string>
<key>CFBundleIdentifier</key>
<string>com.toasts.plugin.mac</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>10.14</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>XSAppIconAssets</key>
<string>Assets.xcassets/AppIcon.appiconset</string>
</dict>
</plist>
14 changes: 14 additions & 0 deletions Sample/Toast.Forms.Plugin.Sample.Mac/Main.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using AppKit;

namespace Toast.Forms.Plugin.Sample.Mac
{
static class MainClass
{
static void Main (string[] args)
{
NSApplication.Init ();
NSApplication.SharedApplication.Delegate = new AppDelegate ();
NSApplication.Main (args);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\packages\Xamarin.Forms.4.8.0.1821\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.4.8.0.1821\build\Xamarin.Forms.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E75185C7-8DD2-4CF7-B40A-65F4EB8188E3}</ProjectGuid>
<ProjectTypeGuids>{A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Exe</OutputType>
<RootNamespace>Toast.Forms.Plugin.Sample.Mac</RootNamespace>
<AssemblyName>Toast.Forms.Plugin.Sample.Mac</AssemblyName>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<TargetFrameworkIdentifier>Xamarin.Mac</TargetFrameworkIdentifier>
<MonoMacResourcePrefix>Resources</MonoMacResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<EnableCodeSigning>true</EnableCodeSigning>
<CodeSigningKey>Mac Developer</CodeSigningKey>
<CreatePackage>false</CreatePackage>
<EnablePackageSigning>false</EnablePackageSigning>
<IncludeMonoRuntime>false</IncludeMonoRuntime>
<UseSGen>true</UseSGen>
<UseRefCounting>true</UseRefCounting>
<HttpClientHandler></HttpClientHandler>
<PackageSigningKey>3rd Party Mac Developer Installer</PackageSigningKey>
<LinkMode>None</LinkMode>
<AOTMode>None</AOTMode>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<DefineConstants></DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<EnableCodeSigning>false</EnableCodeSigning>
<CreatePackage>true</CreatePackage>
<EnablePackageSigning>false</EnablePackageSigning>
<IncludeMonoRuntime>true</IncludeMonoRuntime>
<UseSGen>true</UseSGen>
<UseRefCounting>true</UseRefCounting>
<CodeSignEntitlements>Entitlements.plist</CodeSignEntitlements>
<LinkMode>SdkOnly</LinkMode>
<HttpClientHandler></HttpClientHandler>
<AOTMode>None</AOTMode>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.Mac" />
<Reference Include="Xamarin.Forms.Core">
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1821\lib\Xamarin.Mac\Xamarin.Forms.Core.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Platform">
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1821\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Xaml">
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1821\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\Contents.json" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-128.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-128%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-16.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-16%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-256.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-256%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-32.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-32%402x.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-512.png" />
<ImageAsset Include="Assets.xcassets\AppIcon.appiconset\AppIcon-512%402x.png" />
<ImageAsset Include="Assets.xcassets\Contents.json" />
</ItemGroup>
<ItemGroup>
<Folder Include="Resources\" />
</ItemGroup>
<ItemGroup>
<None Include="Info.plist" />
<None Include="Entitlements.plist" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Compile Include="Main.cs" />
<Compile Include="AppDelegate.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Toasts.Forms.Plugin.Abstractions\Toasts.Forms.Plugin.Abstractions.csproj">
<Project>{A6005E12-DE46-4F28-8F97-8B8564AF191C}</Project>
<Name>Toasts.Forms.Plugin.Abstractions</Name>
</ProjectReference>
<ProjectReference Include="..\..\Toasts.Forms.Plugin.Mac\Toasts.Forms.Plugin.Mac.csproj">
<Project>{1B4B80D9-B321-453F-A099-9D045CD5E93D}</Project>
<Name>Toasts.Forms.Plugin.Mac</Name>
</ProjectReference>
<ProjectReference Include="..\Toasts.Forms.Plugin.Sample\Toasts.Forms.Plugin.Sample.csproj">
<Project>{553A881C-278B-4A3C-9C79-606EDEEE3270}</Project>
<Name>Toasts.Forms.Plugin.Sample</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
<Import Project="..\..\packages\Xamarin.Forms.4.8.0.1821\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.4.8.0.1821\build\Xamarin.Forms.targets')" />
</Project>
4 changes: 4 additions & 0 deletions Sample/Toast.Forms.Plugin.Sample.Mac/packages.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Xamarin.Forms" version="4.8.0.1821" targetFramework="xamarinmac20" />
</packages>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:theme="@style/MyTheme" package="com.toasts.plugin" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="29" />
<application android:label="Toasts.Forms.Plugin.Sample.DroidAppCompat"></application>
</manifest>
Loading