From c48be3755b8bf534a165789dba706a7c00554c8f Mon Sep 17 00:00:00 2001 From: pkar Date: Sun, 20 Sep 2020 11:03:37 +0200 Subject: [PATCH] feat: Contact support struct/enums --- .../Contacts/ContactAddressKind.cs | 10 +++++++ .../ApplicationModel/Contacts/ContactEmail.cs | 26 +++++++++++++++++++ .../Contacts/ContactEmailKind.cs | 10 +++++++ .../ApplicationModel/Contacts/ContactPhone.cs | 9 +++++++ .../Contacts/ContactPhoneKind.cs | 18 +++++++++++++ .../Contacts/ContactQueryDesiredFields.cs | 15 +++++++++++ .../Contacts/ContactQuerySearchFields.cs | 14 ++++++++++ .../Contacts/ContactStoreAccessType.cs | 18 +++++++++++++ .../ContactAddressKind.cs | 10 +++---- .../ContactEmail.cs | 8 +++--- .../ContactEmailKind.cs | 10 +++---- .../ContactPhone.cs | 8 +++--- .../ContactPhoneKind.cs | 24 ++++++++--------- .../ContactQueryDesiredFields.cs | 12 ++++----- .../ContactQuerySearchFields.cs | 14 +++++----- .../ContactStoreAccessType.cs | 10 +++---- 16 files changed, 168 insertions(+), 48 deletions(-) create mode 100644 src/Uno.UWP/ApplicationModel/Contacts/ContactAddressKind.cs create mode 100644 src/Uno.UWP/ApplicationModel/Contacts/ContactEmail.cs create mode 100644 src/Uno.UWP/ApplicationModel/Contacts/ContactEmailKind.cs create mode 100644 src/Uno.UWP/ApplicationModel/Contacts/ContactPhone.cs create mode 100644 src/Uno.UWP/ApplicationModel/Contacts/ContactPhoneKind.cs create mode 100644 src/Uno.UWP/ApplicationModel/Contacts/ContactQueryDesiredFields.cs create mode 100644 src/Uno.UWP/ApplicationModel/Contacts/ContactQuerySearchFields.cs create mode 100644 src/Uno.UWP/ApplicationModel/Contacts/ContactStoreAccessType.cs diff --git a/src/Uno.UWP/ApplicationModel/Contacts/ContactAddressKind.cs b/src/Uno.UWP/ApplicationModel/Contacts/ContactAddressKind.cs new file mode 100644 index 000000000000..95b7d037841e --- /dev/null +++ b/src/Uno.UWP/ApplicationModel/Contacts/ContactAddressKind.cs @@ -0,0 +1,10 @@ + +namespace Windows.ApplicationModel.Contacts +{ + public enum ContactAddressKind + { + Home, + Work, + Other, + } +} diff --git a/src/Uno.UWP/ApplicationModel/Contacts/ContactEmail.cs b/src/Uno.UWP/ApplicationModel/Contacts/ContactEmail.cs new file mode 100644 index 000000000000..00933b6973b7 --- /dev/null +++ b/src/Uno.UWP/ApplicationModel/Contacts/ContactEmail.cs @@ -0,0 +1,26 @@ +using Uno.Logging; +using Microsoft.Extensions.Logging; +using Uno.Extensions; +using System.Configuration; + +namespace Windows.ApplicationModel.Contacts +{ + public partial class ContactEmail + { + private string _Address; + + public ContactEmailKind Kind { get; set; } + public string Address + { + get => this._Address; + set + { + this._Address = value; + if (this._Address.Length > 321) + { + this.Log().Warn("Windows.ApplicationModel.Contacts.ContactEmail.Address is set to string longer than UWP limit (321 chars)"); + } + } + } + } +} diff --git a/src/Uno.UWP/ApplicationModel/Contacts/ContactEmailKind.cs b/src/Uno.UWP/ApplicationModel/Contacts/ContactEmailKind.cs new file mode 100644 index 000000000000..d91034320752 --- /dev/null +++ b/src/Uno.UWP/ApplicationModel/Contacts/ContactEmailKind.cs @@ -0,0 +1,10 @@ + +namespace Windows.ApplicationModel.Contacts +{ + public enum ContactEmailKind + { + Personal, + Work, + Other, + } +} diff --git a/src/Uno.UWP/ApplicationModel/Contacts/ContactPhone.cs b/src/Uno.UWP/ApplicationModel/Contacts/ContactPhone.cs new file mode 100644 index 000000000000..cec8fcdd611d --- /dev/null +++ b/src/Uno.UWP/ApplicationModel/Contacts/ContactPhone.cs @@ -0,0 +1,9 @@ + +namespace Windows.ApplicationModel.Contacts +{ + public partial class ContactPhone + { + public string Number { get; set; } + public ContactPhoneKind Kind { get; set; } + } +} diff --git a/src/Uno.UWP/ApplicationModel/Contacts/ContactPhoneKind.cs b/src/Uno.UWP/ApplicationModel/Contacts/ContactPhoneKind.cs new file mode 100644 index 000000000000..f298e8df9d92 --- /dev/null +++ b/src/Uno.UWP/ApplicationModel/Contacts/ContactPhoneKind.cs @@ -0,0 +1,18 @@ + +namespace Windows.ApplicationModel.Contacts +{ + public enum ContactPhoneKind + { + Home, + Mobile, + Work, + Other, + Pager, + BusinessFax, + HomeFax, + Company, + Assistant, + Radio, + } + +} diff --git a/src/Uno.UWP/ApplicationModel/Contacts/ContactQueryDesiredFields.cs b/src/Uno.UWP/ApplicationModel/Contacts/ContactQueryDesiredFields.cs new file mode 100644 index 000000000000..015a3c2dfc73 --- /dev/null +++ b/src/Uno.UWP/ApplicationModel/Contacts/ContactQueryDesiredFields.cs @@ -0,0 +1,15 @@ + +using System; + +namespace Windows.ApplicationModel.Contacts +{ + + [Flags] + public enum ContactQueryDesiredFields + { + None = 0, + PhoneNumber = 1, + EmailAddress = 2, + PostalAddress = 4 + } +} diff --git a/src/Uno.UWP/ApplicationModel/Contacts/ContactQuerySearchFields.cs b/src/Uno.UWP/ApplicationModel/Contacts/ContactQuerySearchFields.cs new file mode 100644 index 000000000000..3dace25d1a38 --- /dev/null +++ b/src/Uno.UWP/ApplicationModel/Contacts/ContactQuerySearchFields.cs @@ -0,0 +1,14 @@ +using System; + +namespace Windows.ApplicationModel.Contacts +{ + [Flags] + public enum ContactQuerySearchFields + { + None = 0, // no search - all entries + Name = 1, + Email = 2, + Phone = 4, + All = -1 // 4294967295 == 0b_1111_1111_1111_1111_1111_1111_1111_1111 == ?FFFFFFFF? + } +} diff --git a/src/Uno.UWP/ApplicationModel/Contacts/ContactStoreAccessType.cs b/src/Uno.UWP/ApplicationModel/Contacts/ContactStoreAccessType.cs new file mode 100644 index 000000000000..0f1c9324f135 --- /dev/null +++ b/src/Uno.UWP/ApplicationModel/Contacts/ContactStoreAccessType.cs @@ -0,0 +1,18 @@ + +namespace Windows.ApplicationModel.Contacts +{ + public enum ContactStoreAccessType + { + AllContactsReadOnly = 1, + + #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + [global::Uno.NotImplemented] + AppContactsReadWrite = 0, + #endif + + #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + [global::Uno.NotImplemented] + AllContactsReadWrite = 2, + #endif + } +} diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactAddressKind.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactAddressKind.cs index 05deb804ab98..b1e045061503 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactAddressKind.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactAddressKind.cs @@ -2,19 +2,19 @@ #pragma warning disable 114 // new keyword hiding namespace Windows.ApplicationModel.Contacts { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false + #if false [global::Uno.NotImplemented] #endif public enum ContactAddressKind { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Home, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Work, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Other, #endif } diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactEmail.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactEmail.cs index 290ff3d9ca80..f36996d2c19b 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactEmail.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactEmail.cs @@ -2,12 +2,12 @@ #pragma warning disable 114 // new keyword hiding namespace Windows.ApplicationModel.Contacts { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented] #endif public partial class ContactEmail { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public global::Windows.ApplicationModel.Contacts.ContactEmailKind Kind { @@ -35,7 +35,7 @@ public string Description } } #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public string Address { @@ -49,7 +49,7 @@ public string Address } } #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public ContactEmail() { diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactEmailKind.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactEmailKind.cs index fccace612ddb..96e42b4f0aaa 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactEmailKind.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactEmailKind.cs @@ -2,19 +2,19 @@ #pragma warning disable 114 // new keyword hiding namespace Windows.ApplicationModel.Contacts { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false + #if false [global::Uno.NotImplemented] #endif public enum ContactEmailKind { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Personal, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Work, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Other, #endif } diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactPhone.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactPhone.cs index 7113dd93ca54..c1aa4a83c4f2 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactPhone.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactPhone.cs @@ -2,12 +2,12 @@ #pragma warning disable 114 // new keyword hiding namespace Windows.ApplicationModel.Contacts { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented] #endif public partial class ContactPhone { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public string Number { @@ -21,7 +21,7 @@ public string Number } } #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public global::Windows.ApplicationModel.Contacts.ContactPhoneKind Kind { @@ -49,7 +49,7 @@ public string Description } } #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public ContactPhone() { diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactPhoneKind.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactPhoneKind.cs index 15adc2801576..6272d21fbe1d 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactPhoneKind.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactPhoneKind.cs @@ -2,40 +2,40 @@ #pragma warning disable 114 // new keyword hiding namespace Windows.ApplicationModel.Contacts { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false + #if false [global::Uno.NotImplemented] #endif public enum ContactPhoneKind { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Home, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Mobile, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Work, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Other, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Pager, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false BusinessFax, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false HomeFax, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Company, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Assistant, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Radio, #endif } diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactQueryDesiredFields.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactQueryDesiredFields.cs index cd0bb20e9838..5fbfa881fc00 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactQueryDesiredFields.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactQueryDesiredFields.cs @@ -2,22 +2,22 @@ #pragma warning disable 114 // new keyword hiding namespace Windows.ApplicationModel.Contacts { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false + #if false [global::Uno.NotImplemented] #endif public enum ContactQueryDesiredFields { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false None, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false PhoneNumber, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false EmailAddress, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false PostalAddress, #endif } diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactQuerySearchFields.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactQuerySearchFields.cs index 0fc66484888d..13ea6c2bb286 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactQuerySearchFields.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactQuerySearchFields.cs @@ -2,25 +2,25 @@ #pragma warning disable 114 // new keyword hiding namespace Windows.ApplicationModel.Contacts { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false + #if false [global::Uno.NotImplemented] #endif public enum ContactQuerySearchFields { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false None, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Name, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Email, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false Phone, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false All, #endif } diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactStoreAccessType.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactStoreAccessType.cs index 7c5a415ee5b8..ba2b29397e6a 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactStoreAccessType.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.ApplicationModel.Contacts/ContactStoreAccessType.cs @@ -2,19 +2,19 @@ #pragma warning disable 114 // new keyword hiding namespace Windows.ApplicationModel.Contacts { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false + #if false [global::Uno.NotImplemented] #endif public enum ContactStoreAccessType { - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false AppContactsReadWrite, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false AllContactsReadOnly, #endif - #if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ + #if false AllContactsReadWrite, #endif }