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();
}
}