using System; using System.Collections.Generic; namespace StansAssets.IOS.XCode { /// /// Defines XCode project capability settings. /// [Serializable] public class XCodeCapabilitySettings { [Serializable] public class Capability { public bool Enabled = false; } [Serializable] // ReSharper disable once InconsistentNaming public class iCloudCapability : Capability { public bool KeyValueStorage = false; // ReSharper disable once InconsistentNaming public bool iCloudDocument = false; public List CustomContainers = new List(); } [Serializable] public class PushNotificationsCapability : Capability { public bool Development = true; } [Serializable] public class WalletCapability : Capability { public List PassSubset = new List(); } [Serializable] public class ApplePayCapability : Capability { public List Merchants = new List(); } [Serializable] public class MapsCapability : Capability { [Flags] [Serializable] public enum MapsOptions { None = 0, Airplane = 1, Bike = 2, Bus = 4, Car = 8, Ferry = 16, Pedestrian = 32, RideSharing = 64, StreetCar = 128, Subway = 256, Taxi = 512, Train = 1024, Other = 2048 } public List Options = new List(); } [Serializable] public class BackgroundModesCapability : Capability { [Flags] [Serializable] public enum BackgroundModesOptions { None = 0, AudioAirplayPiP = 1, LocationUpdates = 2, VoiceOverIP = 4, NewsstandDownloads = 8, ExternalAccessoryCommunication = 16, // ReSharper disable once InconsistentNaming UsesBluetoothLEAccessory = 32, // ReSharper disable once InconsistentNaming ActsAsABluetoothLEAccessory = 64, BackgroundFetch = 128, RemoteNotifications = 256 } public List Options = new List(); } [Serializable] public class KeychainSharingCapability : Capability { public List AccessGroups = new List(); } [Serializable] public class AssociatedDomainsCapability : Capability { public List Domains = new List(); } [Serializable] public class AppGroupsCapability : Capability { public List Groups = new List(); } // ReSharper disable once InconsistentNaming public iCloudCapability iCloud = new iCloudCapability(); public PushNotificationsCapability PushNotifications = new PushNotificationsCapability(); public Capability GameCenter = new Capability(); public Capability SignInWithApple = new Capability(); public WalletCapability Wallet = new WalletCapability(); public Capability Siri = new Capability(); public ApplePayCapability ApplePay = new ApplePayCapability(); public Capability InAppPurchase = new Capability(); public MapsCapability Maps = new MapsCapability(); public Capability PersonalVPN = new Capability(); public BackgroundModesCapability BackgroundModes = new BackgroundModesCapability(); public Capability InterAppAudio = new Capability(); public KeychainSharingCapability KeychainSharing = new KeychainSharingCapability(); public AssociatedDomainsCapability AssociatedDomains = new AssociatedDomainsCapability(); public AppGroupsCapability AppGroups = new AppGroupsCapability(); public Capability DataProtection = new Capability(); public Capability HomeKit = new Capability(); public Capability HealthKit = new Capability(); public Capability WirelessAccessoryConfiguration = new Capability(); } }