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
9849b7e7
Commit
9849b7e7
authored
May 10, 2017
by
Daniel Dahan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated Reminders to allow new calendar creation
parent
cb85b540
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
90 additions
and
29 deletions
+90
-29
Sources/iOS/Events/Reminders.swift
+90
-29
No files found.
Sources/iOS/Events/Reminders.swift
View file @
9849b7e7
...
@@ -63,20 +63,20 @@ public protocol RemindersDelegate {
...
@@ -63,20 +63,20 @@ public protocol RemindersDelegate {
/**
/**
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 Reminders.
- Parameter reminders: A reference to the Reminders.
- Parameter
list: A reference to the calendar created
- Parameter
calendar: An optional reference to the calendar created.
- Parameter
created: A boolean describing if the operation succeeded or not
.
- Parameter
error: An optional error if the calendar failed to be created
.
*/
*/
@objc
@objc
optional
func
reminders
(
reminders
:
Reminders
,
list
:
EKCalendar
,
created
:
Bool
)
optional
func
reminders
(
reminders
:
Reminders
,
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 Reminders list is created
- Parameter reminders: A reference to the Reminder.
- Parameter reminders: A reference to the Reminder.
- Parameter
list: A reference to the calendar created
- Parameter
calendar: A reference to the calendar created.
- Parameter deleted: A boolean describing if the operation succeeded or not.
- Parameter deleted: A boolean describing if the operation succeeded or not.
*/
*/
@objc
@objc
optional
func
reminders
(
reminders
:
Reminders
,
list
:
EKCalendar
,
deleted
:
Bool
)
optional
func
reminders
(
reminders
:
Reminders
,
calendar
:
EKCalendar
,
deleted
:
Bool
)
/**
/**
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
...
@@ -140,6 +140,30 @@ extension Reminders {
...
@@ -140,6 +140,30 @@ extension Reminders {
}
}
/**
/**
Creates a predicate for the reminders Array of calendars that
are incomplete and have a given start and end date.
- Parameter starting: A Date.
- Parameter ending: A Date.
- Parameter calendars: An optional Array of [EKCalendar].
*/
open
func
predicateForIncompleteReminders
(
starting
:
Date
,
ending
:
Date
,
calendars
:
[
EKCalendar
]?
=
nil
)
->
NSPredicate
{
return
eventStore
.
predicateForIncompleteReminders
(
withDueDateStarting
:
starting
,
ending
:
ending
,
calendars
:
calendars
)
}
/**
Creates a predicate for the reminders Array of calendars that
are completed and have a given start and end date.
- Parameter starting: A Date.
- Parameter ending: A Date.
- Parameter calendars: An optional Array of [EKCalendar].
*/
open
func
predicateForCompletedReminders
(
starting
:
Date
,
ending
:
Date
,
calendars
:
[
EKCalendar
]?
=
nil
)
->
NSPredicate
{
return
eventStore
.
predicateForCompletedReminders
(
withCompletionDateStarting
:
starting
,
ending
:
ending
,
calendars
:
calendars
)
}
}
extension
Reminders
{
/**
A method for retrieving reminder calendars in alphabetical order.
A method for retrieving reminder calendars in alphabetical order.
- Parameter completion: A completion call back
- Parameter completion: A completion call back
*/
*/
...
@@ -163,9 +187,11 @@ extension Reminders {
...
@@ -163,9 +187,11 @@ extension Reminders {
A method for retrieving events with a predicate in date sorted order.
A method for retrieving events with a predicate in date sorted order.
- Parameter predicate: A NSPredicate.
- Parameter predicate: A NSPredicate.
- Parameter completion: A completion call back.
- Parameter completion: A completion call back.
- Returns: A fetch reminders request identifier.
*/
*/
open
func
reminders
(
matching
predicate
:
NSPredicate
,
completion
:
@escaping
([
EKReminder
])
->
Void
)
{
@discardableResult
eventStore
.
fetchReminders
(
matching
:
predicate
,
completion
:
{
[
completion
=
completion
]
(
reminders
)
in
open
func
reminders
(
matching
predicate
:
NSPredicate
,
completion
:
@escaping
([
EKReminder
])
->
Void
)
->
Any
{
return
eventStore
.
fetchReminders
(
matching
:
predicate
,
completion
:
{
[
completion
=
completion
]
(
reminders
)
in
DispatchQueue
.
main
.
async
{
[
completion
=
completion
]
in
DispatchQueue
.
main
.
async
{
[
completion
=
completion
]
in
completion
(
reminders
??
[])
completion
(
reminders
??
[])
}
}
...
@@ -173,40 +199,76 @@ extension Reminders {
...
@@ -173,40 +199,76 @@ extension Reminders {
}
}
/**
/**
Fetch all the reminders in a given Array of calendar.
Fetch all the reminders in a given Array of calendar
s
.
- Parameter in calendars: An Array of EKCalendars.
- Parameter in calendars: An Array of EKCalendars.
- Parameter completion: A completion call back.
- Parameter completion: A completion call back.
- Returns: A fetch reminders request identifier.
*/
@discardableResult
open
func
reminders
(
in
calendars
:
[
EKCalendar
],
completion
:
@escaping
([
EKReminder
])
->
Void
)
->
Any
{
return
reminders
(
matching
:
predicateForReminders
(
in
:
calendars
),
completion
:
completion
)
}
/**
Fetch all the reminders in a given Array of calendars that
are incomplete, given a start and end date.
- Parameter starting: A Date.
- Parameter ending: A Date.
- Parameter calendars: An Array of EKCalendars.
- Parameter completion: A completion call back.
- Returns: A fetch reminders request identifier.
*/
@discardableResult
open
func
incomplete
(
starting
:
Date
,
ending
:
Date
,
calendars
:
[
EKCalendar
]?
=
nil
,
completion
:
@escaping
([
EKReminder
])
->
Void
)
->
Any
{
return
reminders
(
matching
:
predicateForIncompleteReminders
(
starting
:
starting
,
ending
:
ending
,
calendars
:
calendars
),
completion
:
completion
)
}
/**
Fetch all the reminders in a given Array of calendars that
are completed, given a start and end date.
- Parameter starting: A Date.
- Parameter ending: A Date.
- Parameter calendars: An Array of EKCalendars.
- Parameter completion: A completion call back.
- Returns: A fetch reminders request identifier.
*/
*/
open
func
reminders
(
in
calendars
:
[
EKCalendar
],
completion
:
@escaping
([
EKReminder
])
->
Void
)
{
@discardableResult
reminders
(
matching
:
predicateForReminders
(
in
:
calendars
),
completion
:
completion
)
open
func
completed
(
starting
:
Date
,
ending
:
Date
,
calendars
:
[
EKCalendar
]?
=
nil
,
completion
:
@escaping
([
EKReminder
])
->
Void
)
->
Any
{
return
reminders
(
matching
:
predicateForCompletedReminders
(
starting
:
starting
,
ending
:
ending
,
calendars
:
calendars
),
completion
:
completion
)
}
/**
Cancels an active reminders request.
- Parameter _ identifier: An identifier.
*/
open
func
cancel
(
_
identifier
:
Any
)
{
eventStore
.
cancelFetchRequest
(
identifier
)
}
}
}
}
extension
Reminders
{
extension
Reminders
{
/**
/**
A method for creating new Reminder calendar.
A method for creating new Reminder calendar.
- Parameter
list
title: the name of the list.
- Parameter
calendar
title: the name of the list.
- Parameter completion: An optional completion call back.
- Parameter completion: An optional completion call back.
*/
*/
open
func
create
(
list
title
:
String
,
completion
:
((
Bool
,
Error
?)
->
Void
)?
=
nil
)
{
open
func
create
(
calendar
title
:
String
,
completion
:
((
EKCalendar
?
,
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
}
}
let
list
=
EKCalendar
(
for
:
.
reminder
,
eventStore
:
s
.
eventStore
)
let
calendar
=
EKCalendar
(
for
:
.
reminder
,
eventStore
:
s
.
eventStore
)
list
.
title
=
title
calendar
.
title
=
title
for
source
in
s
.
eventStore
.
sources
{
calendar
.
source
=
s
.
eventStore
.
defaultCalendarForNewReminders
()
.
source
if
.
local
==
source
.
sourceType
{
list
.
source
=
source
var
created
=
false
var
success
=
false
var
error
:
Error
?
var
error
:
Error
?
do
{
do
{
try
s
.
eventStore
.
saveCalendar
(
list
,
commit
:
true
)
try
s
.
eventStore
.
saveCalendar
(
calendar
,
commit
:
true
)
created
=
true
success
=
true
}
catch
let
e
{
}
catch
let
e
{
error
=
e
error
=
e
}
}
...
@@ -215,26 +277,25 @@ extension Reminders {
...
@@ -215,26 +277,25 @@ extension Reminders {
guard
let
s
=
self
else
{
guard
let
s
=
self
else
{
return
return
}
}
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
list
:
list
,
created
:
created
)
completion
?(
created
,
error
)
completion
?(
success
?
calendar
:
nil
,
error
)
}
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
calendar
:
calendar
,
error
:
error
)
}
}
}
}
}
}
}
/**
/**
A method for deleting existing Reminder lists,
A method for deleting existing Reminder lists,
- Parameter
list
identifier: the name of the list.
- Parameter
calendar
identifier: the name of the list.
- Parameter completion: An optional completion call back.
- Parameter completion: An optional completion call back.
*/
*/
open
func
delete
(
list
identifier
:
String
,
completion
:
((
Bool
,
Error
?)
->
Void
)?
=
nil
)
{
open
func
delete
(
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
}
}
guard
let
list
=
s
.
eventStore
.
calendar
(
withIdentifier
:
identifier
)
else
{
guard
let
calendar
=
s
.
eventStore
.
calendar
(
withIdentifier
:
identifier
)
else
{
return
return
}
}
...
@@ -242,7 +303,7 @@ extension Reminders {
...
@@ -242,7 +303,7 @@ extension Reminders {
var
error
:
Error
?
var
error
:
Error
?
do
{
do
{
try
s
.
eventStore
.
removeCalendar
(
list
,
commit
:
true
)
try
s
.
eventStore
.
removeCalendar
(
calendar
,
commit
:
true
)
deleted
=
true
deleted
=
true
}
catch
let
e
{
}
catch
let
e
{
error
=
e
error
=
e
...
@@ -253,7 +314,7 @@ extension Reminders {
...
@@ -253,7 +314,7 @@ extension Reminders {
return
return
}
}
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
list
:
list
,
deleted
:
deleted
)
s
.
delegate
?
.
reminders
?(
reminders
:
s
,
calendar
:
calendar
,
deleted
:
deleted
)
completion
?(
deleted
,
error
)
completion
?(
deleted
,
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