Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
Material
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dmitriy Stepanets
Material
Commits
4b41d8fb
Commit
4b41d8fb
authored
May 11, 2017
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
working create and remove operations for Reminders API
parent
9849b7e7
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
124 additions
and
102 deletions
+124
-102
Sources/iOS/Capture/Capture.swift
+1
-1
Sources/iOS/Events/Reminders.swift
+123
-101
No files found.
Sources/iOS/Capture/Capture.swift
View file @
4b41d8fb
...
@@ -419,7 +419,7 @@ open class Capture: View {
...
@@ -419,7 +419,7 @@ open class Capture: View {
return
activeCamera
!.
flashMode
return
activeCamera
!.
flashMode
}
}
set
(
value
)
{
set
(
value
)
{
var
error
:
Error
?
var
error
:
NS
Error
?
if
isFlashModeSupported
(
flashMode
:
flashMode
)
{
if
isFlashModeSupported
(
flashMode
:
flashMode
)
{
do
{
do
{
let
device
=
activeCamera
!
let
device
=
activeCamera
!
...
...
Sources/iOS/Events/Reminders.swift
View file @
4b41d8fb
...
@@ -36,63 +36,73 @@ public enum RemindersAuthorizationStatus: Int {
...
@@ -36,63 +36,73 @@ public enum RemindersAuthorizationStatus: Int {
case
denied
case
denied
}
}
@objc(RemindersPriority)
public
enum
RemindersPriority
:
Int
{
case
none
case
high
=
1
case
medium
=
5
case
low
=
9
}
@objc(RemindersDelegate)
@objc(RemindersDelegate)
public
protocol
RemindersDelegate
{
public
protocol
RemindersDelegate
{
/**
/**
A delegation method that is executed when the Reminder status is updated.
A delegation method that is executed when the Reminder
s
status is updated.
- Parameter reminders: A reference to the Reminder.
- Parameter reminders: A reference to the Reminder
s
.
- Parameter status: A reference to the ReminderAuthorizationStatus.
- Parameter status: A reference to the ReminderAuthorizationStatus.
*/
*/
@objc
@objc
optional
func
reminders
(
reminders
:
Reminders
,
status
:
RemindersAuthorizationStatus
)
optional
func
reminders
(
reminders
:
Reminders
,
status
:
RemindersAuthorizationStatus
)
/**
/**
A delegation method that is executed when
Reminders
is authorized.
A delegation method that is executed when
reminders authorization
is authorized.
- Parameter reminders: A reference to the Reminders.
- Parameter reminders: A reference to the Reminders.
*/
*/
@objc
@objc
optional
func
reminders
(
authorized
reminders
:
Reminders
)
optional
func
reminders
(
authorized
reminders
:
Reminders
)
/**
/**
A delegation method that is executed when
Reminders
is denied.
A delegation method that is executed when
reminders authorization
is denied.
- Parameter reminders: A reference to the Reminders.
- Parameter reminders: A reference to the Reminders.
*/
*/
@objc
@objc
optional
func
reminders
(
denied
reminders
:
Reminders
)
optional
func
reminders
(
denied
reminders
:
Reminders
)
/**
/**
A delegation method that is executed when a new
Reminders list
is created
A delegation method that is executed when a new
calendar
is created
- Parameter reminders: A reference to the Reminders.
- Parameter reminders: A reference to the Reminders.
- Parameter calendar: An optional reference to the calendar created.
- Parameter calendar: An optional reference to the calendar created.
- Parameter error: An optional error if the calendar failed to be created.
- Parameter error: An optional error if the calendar failed to be created.
*/
*/
@objc
@objc
optional
func
reminders
(
reminders
:
Reminders
,
calendar
:
EKCalendar
?,
error
:
Error
?)
optional
func
reminders
(
reminders
:
Reminders
,
c
reatedCalendar
c
alendar
:
EKCalendar
?,
error
:
Error
?)
/**
/**
A delegation method that is executed when a new
Reminders list is created
A delegation method that is executed when a new
calendar is created.
- Parameter reminders: A reference to the Reminder.
- Parameter reminders: A reference to the Reminder.
- Parameter calendar: A reference to the calendar created.
- Parameter
removed
calendar: A reference to the calendar created.
- Parameter
deleted: A boolean describing if the operation succeeded or not
.
- Parameter
error: An optional error if the calendar failed to be removed
.
*/
*/
@objc
@objc
optional
func
reminders
(
reminders
:
Reminders
,
calendar
:
EKCalendar
,
deleted
:
Bool
)
optional
func
reminders
(
reminders
:
Reminders
,
removedCalendar
calendar
:
EKCalendar
,
error
:
Error
?
)
/**
/**
A delegation method that is executed when a new Reminders list is created
A delegation method that is executed when a new reminder is created.
- Parameter reminders: A reference to the Reminder.
- Parameter reminders: A reference to the Reminders.
- Parameter created: A boolean describing if the operation succeeded or not.
- Parameter calendar: An optional reference to the reminder created.
- Parameter error: An optional error if the reminder failed to be created.
*/
*/
@objc
@objc
optional
func
reminders
(
reminders
:
Reminders
,
created
:
Bool
)
optional
func
reminders
(
reminders
:
Reminders
,
created
Reminder
reminder
:
EKReminder
?,
error
:
Error
?
)
/**
/**
A delegation method that is executed when a new Reminders list is created
A delegation method that is executed when a new Reminders list is created
- Parameter reminders: A reference to the Reminder.
- Parameter reminders: A reference to the Reminder.
- Parameter deleted: A boolean describing if the operation succeeded or not.
- Parameter deleted: A boolean describing if the operation succeeded or not.
- Parameter error: An optional error if the reminder failed to be removed.
*/
*/
@objc
@objc
optional
func
reminders
(
reminders
:
Reminders
,
deleted
:
Bool
)
optional
func
reminders
(
reminders
:
Reminders
,
removedReminder
reminder
:
EKReminder
,
error
:
Error
?
)
}
}
@objc(Reminders)
@objc(Reminders)
...
@@ -279,32 +289,38 @@ extension Reminders {
...
@@ -279,32 +289,38 @@ extension Reminders {
}
}
completion
?(
success
?
calendar
:
nil
,
error
)
completion
?(
success
?
calendar
:
nil
,
error
)
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
c
alendar
:
calendar
,
error
:
error
)
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
c
reatedCalendar
:
success
?
calendar
:
nil
,
error
:
error
)
}
}
}
}
}
}
/**
/**
A method for
deleting existing Reminder lists
,
A method for
removing existing calendar
,
- Parameter calendar identifier:
the name of the list
.
- Parameter calendar identifier:
The EKCalendar identifier String
.
- Parameter completion: An optional completion call back.
- Parameter completion: An optional completion call back.
*/
*/
open
func
delet
e
(
calendar
identifier
:
String
,
completion
:
((
Bool
,
Error
?)
->
Void
)?
=
nil
)
{
open
func
remov
e
(
calendar
identifier
:
String
,
completion
:
((
Bool
,
Error
?)
->
Void
)?
=
nil
)
{
DispatchQueue
.
global
(
qos
:
.
default
)
.
async
{
[
weak
self
,
completion
=
completion
]
in
DispatchQueue
.
global
(
qos
:
.
default
)
.
async
{
[
weak
self
,
completion
=
completion
]
in
guard
let
s
=
self
else
{
guard
let
s
=
self
else
{
return
return
}
}
var
success
=
false
var
error
:
Error
?
guard
let
calendar
=
s
.
eventStore
.
calendar
(
withIdentifier
:
identifier
)
else
{
guard
let
calendar
=
s
.
eventStore
.
calendar
(
withIdentifier
:
identifier
)
else
{
var
userInfo
=
[
String
:
Any
]()
userInfo
[
NSLocalizedDescriptionKey
]
=
"[Material Error: Cannot fix remove calendar with identifier
\(
identifier
)
.]"
userInfo
[
NSLocalizedFailureReasonErrorKey
]
=
"[Material Error: Cannot fix remove calendar with identifier
\(
identifier
)
.]"
error
=
NSError
(
domain
:
"com.cosmicmind.material.reminders"
,
code
:
0001
,
userInfo
:
userInfo
)
completion
?(
success
,
error
)
return
return
}
}
var
deleted
=
false
var
error
:
Error
?
do
{
do
{
try
s
.
eventStore
.
removeCalendar
(
calendar
,
commit
:
true
)
try
s
.
eventStore
.
removeCalendar
(
calendar
,
commit
:
true
)
deleted
=
true
success
=
true
}
catch
let
e
{
}
catch
let
e
{
error
=
e
error
=
e
}
}
...
@@ -314,88 +330,94 @@ extension Reminders {
...
@@ -314,88 +330,94 @@ extension Reminders {
return
return
}
}
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
calendar
:
calendar
,
deleted
:
deleted
)
completion
?(
success
,
error
)
completion
?(
deleted
,
error
)
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
removedCalendar
:
calendar
,
error
:
error
)
}
}
}
}
}
}
}
}
extension
Reminders
{
extension
Reminders
{
// // FIX ME: Should we use the calendar identifier here instead of the title for finding the right cal?
// FIX ME: Should we use the calendar identifier here instead of the title for finding the right cal?
// /**
/**
// A method for adding a new reminder to an optionally existing list.
A method for adding a new reminder to an optionally existing list.
// if the list does not exist it will be added to the default reminders list.
if the list does not exist it will be added to the default reminders list.
// - Parameter completion: optional A completion call back
- Parameter completion: optional A completion call back
// */
*/
// open func create(title: String, dateComponents: DateComponents, in calendar: EKCalendar? = nil, completion: ((Error?) -> Void)? = nil) {
open
func
create
(
reminder
title
:
String
,
calendar
:
EKCalendar
,
startDateComponents
:
DateComponents
?
=
nil
,
dueDateComponents
:
DateComponents
?
=
nil
,
priority
:
RemindersPriority
?
=
.
none
,
notes
:
String
?,
completion
:
((
EKReminder
?,
Error
?)
->
Void
)?
=
nil
)
{
// var reminderCal = [EKCalendar]()
DispatchQueue
.
global
(
qos
:
.
default
)
.
async
{
[
weak
self
,
calendar
=
calendar
,
completion
=
completion
]
in
//
guard
let
s
=
self
else
{
// if calendar != nil {
return
// calendars(completion: { (calendars) in
}
// for v in calendars {
// if v.title == calendar!.title {
let
reminder
=
EKReminder
(
eventStore
:
s
.
eventStore
)
// reminderCal.append(calendar)
reminder
.
title
=
title
// }
reminder
.
calendar
=
calendar
// }
reminder
.
startDateComponents
=
startDateComponents
// })
reminder
.
dueDateComponents
=
dueDateComponents
// }
reminder
.
priority
=
priority
?
.
rawValue
??
RemindersPriority
.
none
.
rawValue
//
reminder
.
notes
=
notes
// let reminder = EKReminder(eventStore: eventStore)
// reminder.title = title
var
success
=
false
// reminder.dueDateComponents = dateComponents
var
error
:
Error
?
// reminder.calendar = reminderCal.last!
//
do
{
// var created: Bool = false
try
s
.
eventStore
.
save
(
reminder
,
commit
:
true
)
// var error: Error?
success
=
true
//
}
catch
let
e
{
// do {
error
=
e
// try eventStore.save(reminder, commit: true)
}
// created = true
// } catch let e {
DispatchQueue
.
main
.
async
{
[
weak
self
]
in
// error = e
guard
let
s
=
self
else
{
// }
return
//
}
// DispatchQueue.main.async { [weak self] in
// guard let s = self else {
completion
?(
success
?
reminder
:
nil
,
error
)
// return
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
createdReminder
:
success
?
reminder
:
nil
,
error
:
error
)
// }
}
//
}
// s.delegate?.reminders?(reminders: s, created: created)
}
//
// if let c = completion {
/**
// c(error)
A method for removing existing reminder,
// }
- Parameter reminder identifier: The EKReminder identifier String.
// }
- Parameter completion: An optional completion call back.
// }
*/
//
open
func
remove
(
reminder
identifier
:
String
,
completion
:
((
Bool
,
Error
?)
->
Void
)?
=
nil
)
{
// // FIX ME: Should we use the calendar identifier here instead of the title for finding the right cal?
DispatchQueue
.
global
(
qos
:
.
default
)
.
async
{
[
weak
self
,
completion
=
completion
]
in
// /**
guard
let
s
=
self
else
{
// A method for adding a new reminder to an optionally existing list.
return
// if the list does not exist it will be added to the default reminders list.
}
// - Parameter completion: An optional completion call back.
// */
var
success
=
false
// open func delete(reminder: EKReminder, completion: ((Error?) -> Void)? = nil) {
var
error
:
Error
?
// var deleted: Bool = false
// var error: Error?
guard
let
reminder
=
s
.
eventStore
.
calendarItem
(
withIdentifier
:
identifier
)
as?
EKReminder
else
{
//
var
userInfo
=
[
String
:
Any
]()
// do {
userInfo
[
NSLocalizedDescriptionKey
]
=
"[Material Error: Cannot fix remove calendar with identifier
\(
identifier
)
.]"
// try eventStore.remove(reminder, commit: true)
userInfo
[
NSLocalizedFailureReasonErrorKey
]
=
"[Material Error: Cannot fix remove calendar with identifier
\(
identifier
)
.]"
// deleted = true
error
=
NSError
(
domain
:
"com.cosmicmind.material.reminders"
,
code
:
0001
,
userInfo
:
userInfo
)
// } catch let e {
// error = e
completion
?(
success
,
error
)
// }
return
//
}
// DispatchQueue.main.async { [weak self] in
// guard let s = self else {
do
{
// return
try
s
.
eventStore
.
remove
(
reminder
,
commit
:
true
)
// }
success
=
true
//
}
catch
let
e
{
// s.delegate?.reminders?(reminders: s, deleted: deleted)
error
=
e
//
}
// if let c = completion {
// c(error)
DispatchQueue
.
main
.
async
{
[
weak
self
,
completion
=
completion
]
in
// }
guard
let
s
=
self
else
{
// }
return
// }
}
completion
?(
success
,
error
)
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
removedReminder
:
reminder
,
error
:
error
)
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment