Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
SRCT
whats-open-ios
Commits
8fad103a
Unverified
Commit
8fad103a
authored
Sep 30, 2018
by
Zach Knox
Browse files
Changed prefix from WOK to WOP because Kit shouldn't be in the prefix
parent
cf60071c
Changes
12
Hide whitespace changes
Inline
Side-by-side
WhatsOpen/WhatsOpen/Filters.swift
View file @
8fad103a
...
...
@@ -11,10 +11,10 @@ import RealmSwift
//This may be a stupid way to handle filters, but it should work; at least for now
public
class
WO
K
Filters
{
public
class
WO
P
Filters
{
public
var
showOpen
=
true
public
var
showClosed
=
true
public
var
sortBy
=
WO
K
SortMethod
.
alphabetical
public
var
sortBy
=
WO
P
SortMethod
.
alphabetical
public
var
openFirst
=
true
public
var
showAlerts
=
[
"Informational"
:
true
,
"Minor Alerts"
:
true
,
"Major Alerts"
:
true
]
...
...
@@ -27,10 +27,10 @@ public class WOKFilters {
//nothing to do here
}
public
func
applyFiltersOnFacilities
(
_
facilities
:
List
<
WO
K
Facility
>
)
->
List
<
WO
K
Facility
>
{
public
func
applyFiltersOnFacilities
(
_
facilities
:
List
<
WO
P
Facility
>
)
->
List
<
WO
P
Facility
>
{
//TODO: Add checks for onlyFromLocations and onlyFromCategories here before doing the rest
let
specifiedFacilities
=
List
<
WO
K
Facility
>
()
let
specifiedFacilities
=
List
<
WO
P
Facility
>
()
// facility must be within both a specified location and category
for
f
in
facilities
{
if
onlyFromLocations
[(
f
.
facilityLocation
?
.
building
)
!.
lowercased
()]
==
true
&&
onlyFromCategories
[(
f
.
category
?
.
categoryName
)
!.
lowercased
()]
==
true
{
...
...
@@ -44,7 +44,7 @@ public class WOKFilters {
switch
sortBy
{
case
.
alphabetical
:
if
(
openFirst
)
{
var
returning
=
List
<
WO
K
Facility
>
()
var
returning
=
List
<
WO
P
Facility
>
()
if
(
showOpen
)
{
returning
+=
sortAlphabetically
(
open
)
}
...
...
@@ -64,12 +64,12 @@ public class WOKFilters {
return
sortAlphabetically
(
closed
)
}
else
{
return
List
<
WO
K
Facility
>
()
return
List
<
WO
P
Facility
>
()
}
}
case
.
reverseAlphabetical
:
if
(
openFirst
)
{
var
returning
=
List
<
WO
K
Facility
>
()
var
returning
=
List
<
WO
P
Facility
>
()
if
(
showOpen
)
{
returning
+=
sortAlphabetically
(
open
,
reverse
:
true
)
}
...
...
@@ -89,12 +89,12 @@ public class WOKFilters {
return
sortAlphabetically
(
closed
,
reverse
:
true
)
}
else
{
return
List
<
WO
K
Facility
>
()
return
List
<
WO
P
Facility
>
()
}
}
case
.
byLocation
:
if
(
openFirst
)
{
var
returning
=
List
<
WO
K
Facility
>
()
var
returning
=
List
<
WO
P
Facility
>
()
if
(
showOpen
)
{
returning
+=
sortByLocation
(
open
)
}
...
...
@@ -114,23 +114,23 @@ public class WOKFilters {
return
sortByLocation
(
closed
)
}
else
{
return
List
<
WO
K
Facility
>
()
return
List
<
WO
P
Facility
>
()
}
}
}
}
// Takes in array of Facilities, separates them into those open and closed, returning a tuple of 2 arrays
private
func
separateOpenAndClosed
(
_
facilities
:
List
<
WO
K
Facility
>
)
->
(
open
:
List
<
WO
K
Facility
>
,
closed
:
List
<
WO
K
Facility
>
)
{
let
open
=
List
<
WO
K
Facility
>
()
let
closed
=
List
<
WO
K
Facility
>
()
private
func
separateOpenAndClosed
(
_
facilities
:
List
<
WO
P
Facility
>
)
->
(
open
:
List
<
WO
P
Facility
>
,
closed
:
List
<
WO
P
Facility
>
)
{
let
open
=
List
<
WO
P
Facility
>
()
let
closed
=
List
<
WO
P
Facility
>
()
/*
facilities.forEach {
Utilities.isOpen(facility: $0) ? open.append($0) : closed.append($0)
}
*/
for
facility
in
facilities
{
if
WO
K
Utilities
.
isOpen
(
facility
:
facility
)
{
if
WO
P
Utilities
.
isOpen
(
facility
:
facility
)
{
open
.
append
(
facility
)
}
else
{
...
...
@@ -142,7 +142,7 @@ public class WOKFilters {
//TODO
// Sorts items in the given Facility array by name alphabetically (reverse if told)
private
func
sortAlphabetically
(
_
facilities
:
List
<
WO
K
Facility
>
,
reverse
:
Bool
=
false
)
->
List
<
WO
K
Facility
>
{
private
func
sortAlphabetically
(
_
facilities
:
List
<
WO
P
Facility
>
,
reverse
:
Bool
=
false
)
->
List
<
WO
P
Facility
>
{
// Convert to a swift array because the realm sorting method crashes the list object for some reason?
var
facilitiesArray
=
facilities
.
asArray
()
if
!
reverse
{
...
...
@@ -157,7 +157,7 @@ public class WOKFilters {
//TODO
// Sorts Facilities by their given location's name, and within those sorts A->Z
private
func
sortByLocation
(
_
facilities
:
List
<
WO
K
Facility
>
)
->
List
<
WO
K
Facility
>
{
private
func
sortByLocation
(
_
facilities
:
List
<
WO
P
Facility
>
)
->
List
<
WO
P
Facility
>
{
var
facilitiesArray
=
facilities
.
asArray
()
facilitiesArray
.
sort
{
(
facility
,
nextFacility
)
in
guard
let
location
=
facility
.
facilityLocation
else
{
return
true
}
...
...
@@ -206,7 +206,7 @@ public class WOKFilters {
}
//Is this a viable way to do this?
public
enum
WO
K
SortMethod
{
public
enum
WO
P
SortMethod
{
case
alphabetical
//A -> Z
case
reverseAlphabetical
//Z -> A
case
byLocation
// A -> Z Locations, w/ A -> Z Facilities inside
...
...
WhatsOpen/WhatsOpen/Views/CollectionViewCells/AlertCollectionViewCell.swift
View file @
8fad103a
...
...
@@ -13,7 +13,7 @@ class AlertCollectionViewCell: UICollectionViewCell {
@IBOutlet
var
imageView
:
UIImageView
!
@IBOutlet
var
messageLabel
:
UILabel
!
var
alert
:
WO
K
Alert
!
var
alert
:
WO
P
Alert
!
internal
let
tapRecognizer
:
UITapGestureRecognizer
=
UITapGestureRecognizer
()
...
...
WhatsOpen/WhatsOpen/Views/CollectionViewCells/FacilityCollectionViewCell.swift
View file @
8fad103a
...
...
@@ -15,7 +15,7 @@ class FacilityCollectionViewCell: UICollectionViewCell {
@IBOutlet
var
timeDescriptionLabel
:
UILabel
!
@IBOutlet
var
openClosedLabel
:
PaddedUILabel
!
@IBOutlet
var
categoryLabel
:
UILabel
!
var
facility
:
WO
K
Facility
!
var
facility
:
WO
P
Facility
!
internal
let
tapRecognizer
:
UITapGestureRecognizer
=
UITapGestureRecognizer
()
override
func
awakeFromNib
()
{
...
...
WhatsOpen/WhatsOpen/Views/DetailViewButtonsViewController.swift
View file @
8fad103a
...
...
@@ -14,7 +14,7 @@ class DetailViewButtonsViewController: UIViewController {
@IBOutlet
var
facilityDetailView
:
UIView
!
var
detailViewController
:
FacilityDetailViewController
?
var
facility
:
WO
K
Facility
!
var
facility
:
WO
P
Facility
!
@IBOutlet
var
favoritesButton
:
UIButton
!
@IBOutlet
var
directionsButton
:
UIButton
!
...
...
@@ -27,11 +27,11 @@ class DetailViewButtonsViewController: UIViewController {
removes from favorites if it is a favorite.
*/
@IBAction
func
setFavButton
(
_
sender
:
Any
)
{
if
(
WO
K
Utilities
.
isFavoriteFacility
(
facility
))
{
// if the facility is a favorite
_
=
WO
K
Utilities
.
removeFavoriteFacility
(
facility
)
// remove it from favorites
if
(
WO
P
Utilities
.
isFavoriteFacility
(
facility
))
{
// if the facility is a favorite
_
=
WO
P
Utilities
.
removeFavoriteFacility
(
facility
)
// remove it from favorites
}
else
{
// else add it to favorites
_
=
WO
K
Utilities
.
addFavoriteFacility
(
facility
)
_
=
WO
P
Utilities
.
addFavoriteFacility
(
facility
)
}
setFavoriteButtonText
()
}
...
...
@@ -67,7 +67,7 @@ class DetailViewButtonsViewController: UIViewController {
@IBAction
func
shareFacility
(
_
sender
:
Any
)
{
let
str
=
"
\(
facility
.
facilityName
)
is
\(
WO
K
Utilities
.
openOrClosedUntil
(
facility
)
!.
lowercased
()
)
"
let
str
=
"
\(
facility
.
facilityName
)
is
\(
WO
P
Utilities
.
openOrClosedUntil
(
facility
)
!.
lowercased
()
)
"
let
shareSheet
=
UIActivityViewController
(
activityItems
:
[
"
\(
str
)
https://whatsopen.gmu.edu/"
],
applicationActivities
:
nil
)
shareSheet
.
excludedActivityTypes
=
[
.
print
,
.
openInIBooks
,
.
addToReadingList
]
// Sorry you can't print a Facility
present
(
shareSheet
,
animated
:
true
,
completion
:
nil
)
...
...
@@ -77,7 +77,7 @@ class DetailViewButtonsViewController: UIViewController {
Change the favorite button text depending on if the facility is a favorite
*/
func
setFavoriteButtonText
()
{
if
(
WO
K
Utilities
.
isFavoriteFacility
(
facility
))
{
if
(
WO
P
Utilities
.
isFavoriteFacility
(
facility
))
{
favoritesButton
.
setTitle
(
"Remove from Favorites"
,
for
:
.
normal
)
favoritesButton
.
titleLabel
?
.
text
=
"Remove from Favorites"
}
...
...
WhatsOpen/WhatsOpen/Views/Filters Views/FiltersTableViewController.swift
View file @
8fad103a
...
...
@@ -40,8 +40,8 @@ class FiltersTableViewController: UITableViewController {
tableView
.
reloadData
()
updateFacilities
()
}
var
filters
:
WO
K
Filters
!
var
facilities
:
List
<
WO
K
Facility
>!
var
filters
:
WO
P
Filters
!
var
facilities
:
List
<
WO
P
Facility
>!
//var allLocations: [Locations] = [Locations]()
//var allCategories: [Categories]! = [Categories]()
...
...
@@ -101,7 +101,7 @@ class FiltersTableViewController: UITableViewController {
case
1
:
return
1
case
2
:
return
WO
K
SortMethod
.
count
return
WO
P
SortMethod
.
count
case
3
:
return
2
default
:
...
...
@@ -163,20 +163,20 @@ class FiltersTableViewController: UITableViewController {
}
return
cell
case
2
:
let
method
:
WO
K
SortMethod
let
method
:
WO
P
SortMethod
let
cellText
:
String
switch
indexPath
.
row
{
case
0
:
method
=
WO
K
SortMethod
.
alphabetical
method
=
WO
P
SortMethod
.
alphabetical
cellText
=
"Alphabetically (A-Z)"
case
1
:
method
=
WO
K
SortMethod
.
reverseAlphabetical
method
=
WO
P
SortMethod
.
reverseAlphabetical
cellText
=
"Reverse Alphabetically (Z-A)"
case
2
:
method
=
WO
K
SortMethod
.
byLocation
method
=
WO
P
SortMethod
.
byLocation
cellText
=
"By Location Name (A-Z)"
default
:
method
=
WO
K
SortMethod
.
alphabetical
method
=
WO
P
SortMethod
.
alphabetical
cellText
=
"Alphabetically (A-Z)"
}
let
cell
:
CheckingTableViewCell
...
...
@@ -261,7 +261,7 @@ class FiltersTableViewController: UITableViewController {
}
func
onlyCheckOne
(
_
method
:
Any
?)
->
Bool
{
filters
.
sortBy
=
method
as!
WO
K
SortMethod
// Be careful when calling this
filters
.
sortBy
=
method
as!
WO
P
SortMethod
// Be careful when calling this
tableView
.
reloadData
()
return
true
}
...
...
WhatsOpen/WhatsOpen/Views/Primary Views/AlertDetailViewController.swift
View file @
8fad103a
...
...
@@ -14,7 +14,7 @@ class AlertDetailViewController: UIViewController {
@IBOutlet
var
imageView
:
UIImageView
!
@IBOutlet
var
nameLabel
:
UILabel
!
@IBOutlet
var
messageView
:
UITextView
!
var
alert
:
WO
K
Alert
!
var
alert
:
WO
P
Alert
!
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
...
...
WhatsOpen/WhatsOpen/Views/Primary Views/FacilitiesListViewController.swift
View file @
8fad103a
...
...
@@ -14,8 +14,8 @@ import WhatsOpenKit
//Realm Model
class
FacilitiesModel
:
Object
{
let
facilities
=
List
<
WO
K
Facility
>
()
let
alerts
=
List
<
WO
K
Alert
>
()
let
facilities
=
List
<
WO
P
Facility
>
()
let
alerts
=
List
<
WO
P
Alert
>
()
@objc
dynamic
var
lastUpdated
=
Date
()
@objc
dynamic
let
id
=
0
}
...
...
@@ -33,21 +33,21 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
deleteRealmIfMigrationNeeded
:
true
))
var
facilitiesArray
=
List
<
WO
K
Facility
>
()
var
alertsList
=
List
<
WO
K
Alert
>
()
var
facilitiesArray
=
List
<
WO
P
Facility
>
()
var
alertsList
=
List
<
WO
P
Alert
>
()
var
currentAlerts
=
List
<
WO
K
Alert
>
()
var
currentAlerts
=
List
<
WO
P
Alert
>
()
// array of facilities that pass the current filters
var
filteredFacilities
=
List
<
WO
K
Facility
>
()
var
filteredFacilities
=
List
<
WO
P
Facility
>
()
// List which actually pertains to what is shown
var
shownFacilities
=
List
<
WO
K
Facility
>
()
var
shownFacilities
=
List
<
WO
P
Facility
>
()
// passing in nil sets the search controller to be this controller
let
searchController
=
UISearchController
(
searchResultsController
:
nil
)
var
filters
=
WO
K
Filters
()
var
filters
=
WO
P
Filters
()
override
var
preferredStatusBarStyle
:
UIStatusBarStyle
{
return
.
default
...
...
@@ -88,12 +88,12 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
- returns:
List of facilities that are favorited
*/
func
filterFacilitiesForFavorites
()
->
List
<
WO
K
Facility
>
{
var
favoriteFacilites
=
List
<
WO
K
Facility
>
()
func
filterFacilitiesForFavorites
()
->
List
<
WO
P
Facility
>
{
var
favoriteFacilites
=
List
<
WO
P
Facility
>
()
// add the facility to favorites list if it is a favorite
favoriteFacilites
=
filteredFacilities
.
filter
({
(
facility
:
WO
K
Facility
)
->
Bool
in
return
WO
K
Utilities
.
isFavoriteFacility
(
facility
)
favoriteFacilites
=
filteredFacilities
.
filter
({
(
facility
:
WO
P
Facility
)
->
Bool
in
return
WO
P
Utilities
.
isFavoriteFacility
(
facility
)
})
return
favoriteFacilites
...
...
@@ -129,7 +129,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
}
func
checkFilterState
()
{
if
(
filters
.
showOpen
&&
filters
.
showClosed
&&
filters
.
openFirst
&&
filters
.
sortBy
==
WO
K
SortMethod
.
alphabetical
)
{
if
(
filters
.
showOpen
&&
filters
.
showClosed
&&
filters
.
openFirst
&&
filters
.
sortBy
==
WO
P
SortMethod
.
alphabetical
)
{
for
f
in
filters
.
onlyFromCategories
{
if
(
f
.
value
!=
true
)
{
LeftButton
.
title
=
"Filter (On)"
...
...
@@ -340,7 +340,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
// all campuses via updateFilterLists
let
campusFilters
=
defaults
.
dictionary
(
forKey
:
"campuses"
)
as!
[
String
:
Bool
]?
let
filteredByCampus
=
List
<
WO
K
Facility
>
()
let
filteredByCampus
=
List
<
WO
P
Facility
>
()
for
facility
in
filteredFacilities
{
if
campusFilters
!
[(
facility
.
facilityLocation
?
.
campus
.
lowercased
())
!
]
!
{
filteredByCampus
.
append
(
facility
)
...
...
@@ -352,7 +352,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
favoritesControlChanges
(
self
)
// Alerts
let
shown
=
List
<
WO
K
Alert
>
()
let
shown
=
List
<
WO
P
Alert
>
()
let
formatter
=
ISO8601DateFormatter
()
formatter
.
timeZone
=
TimeZone
(
identifier
:
"America/New_York"
)
let
now
=
Date
()
...
...
@@ -399,8 +399,8 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
- returns:
List of filtered facilities. Facilities whose names, buildings, or categories match the search text are included.
*/
func
filterFacilitiesForSearchText
(
_
searchText
:
String
)
->
List
<
WO
K
Facility
>
{
var
filtered
:
List
<
WO
K
Facility
>
func
filterFacilitiesForSearchText
(
_
searchText
:
String
)
->
List
<
WO
P
Facility
>
{
var
filtered
:
List
<
WO
P
Facility
>
/*
if showFavorites {
...
...
@@ -425,7 +425,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
LocationsList
.
reloadData
()
return
shownFacilities
}
filtered
=
filteredFacilities
.
filter
({(
facility
:
WO
K
Facility
)
->
Bool
in
filtered
=
filteredFacilities
.
filter
({(
facility
:
WO
P
Facility
)
->
Bool
in
let
hasName
=
facility
.
facilityName
.
lowercased
()
.
contains
(
searchText
.
lowercased
())
let
hasBuilding
=
facility
.
facilityLocation
?
.
building
.
lowercased
()
.
contains
(
searchText
.
lowercased
())
??
false
let
hasAbbreviation
=
facility
.
facilityLocation
?
.
abbreviation
.
lowercased
()
.
contains
(
searchText
.
lowercased
())
??
false
...
...
@@ -527,7 +527,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
* and place that new information into Realm
*/
func
update
(
_
sender
:
Any
,
completion
:
(()
->
())?
=
nil
)
{
WO
K
DownloadController
.
performDownload
{
(
facilities
)
in
WO
P
DownloadController
.
performDownload
{
(
facilities
)
in
if
(
facilities
==
nil
)
{
DispatchQueue
.
main
.
async
{
let
results
=
self
.
realm
.
objects
(
FacilitiesModel
.
self
)
...
...
@@ -547,7 +547,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
}
}
else
{
self
.
facilitiesArray
=
List
<
WO
K
Facility
>
()
self
.
facilitiesArray
=
List
<
WO
P
Facility
>
()
}
}
}
...
...
@@ -593,7 +593,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
}
}
}
WO
K
DownloadController
.
performAlertsDownload
{
(
alerts
)
in
WO
P
DownloadController
.
performAlertsDownload
{
(
alerts
)
in
if
(
alerts
==
nil
)
{
DispatchQueue
.
main
.
async
{
let
results
=
self
.
realm
.
objects
(
FacilitiesModel
.
self
)
...
...
@@ -602,7 +602,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
self
.
alertsList
=
model
.
alerts
}
else
{
self
.
alertsList
=
List
<
WO
K
Alert
>
()
self
.
alertsList
=
List
<
WO
P
Alert
>
()
}
}
}
...
...
@@ -687,7 +687,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
cell
.
gestureRecognizers
?
.
append
(
cell
.
tapRecognizer
)
let
facility
:
WO
K
Facility
let
facility
:
WO
P
Facility
//let dataArray: [Facility]
/*
...
...
@@ -714,13 +714,13 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
cell
.
nameLabel
.
text
=
name
cell
.
categoryLabel
.
text
=
facility
.
category
?
.
categoryName
.
uppercased
()
cell
.
openClosedLabel
.
text
=
WO
K
Utilities
.
openOrClosedUntil
(
facility
)
cell
.
openClosedLabel
.
text
=
WO
P
Utilities
.
openOrClosedUntil
(
facility
)
// TODO: Change the name of this label
cell
.
timeDescriptionLabel
.
text
=
facility
.
facilityLocation
?
.
building
//change appearence based on open state
let
open
=
WO
K
Utilities
.
isOpen
(
facility
:
facility
)
let
open
=
WO
P
Utilities
.
isOpen
(
facility
:
facility
)
if
(
open
==
true
)
{
//cell.openClosedLabel.text = "Open"
cell
.
openClosedLabel
.
textColor
=
UIColor
.
black
...
...
@@ -846,7 +846,7 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
//unused
func
getLocationArray
(
_
facilitiesArray
:
List
<
WO
K
Facility
>
)
->
[
WO
K
Facility
]
{
func
getLocationArray
(
_
facilitiesArray
:
List
<
WO
P
Facility
>
)
->
[
WO
P
Facility
]
{
if
(
!
showFavorites
)
{
return
placeOpenFacilitiesFirstInArray
(
facilitiesArray
)
}
...
...
@@ -861,12 +861,12 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
// Returns an array which has the open locations listed first
// Could be improved in the future because currently this means you're checking
// open status twice per cell
func
placeOpenFacilitiesFirstInArray
(
_
facilitiesArray
:
List
<
WO
K
Facility
>
)
->
[
WO
K
Facility
]
{
var
open
=
[
WO
K
Facility
]()
var
closed
=
[
WO
K
Facility
]()
func
placeOpenFacilitiesFirstInArray
(
_
facilitiesArray
:
List
<
WO
P
Facility
>
)
->
[
WO
P
Facility
]
{
var
open
=
[
WO
P
Facility
]()
var
closed
=
[
WO
P
Facility
]()
for
i
in
facilitiesArray
{
if
(
WO
K
Utilities
.
isOpen
(
facility
:
i
))
{
if
(
WO
P
Utilities
.
isOpen
(
facility
:
i
))
{
open
.
append
(
i
)
}
else
{
...
...
@@ -878,12 +878,12 @@ class FacilitiesListViewController: UIViewController, UICollectionViewDelegate,
}
//unused
func
countForOpenAndClosedFacilities
(
_
facilitiesArray
:
Array
<
WO
K
Facility
>
)
->
(
open
:
Int
,
closed
:
Int
)
{
func
countForOpenAndClosedFacilities
(
_
facilitiesArray
:
Array
<
WO
P
Facility
>
)
->
(
open
:
Int
,
closed
:
Int
)
{
var
open
=
0
var
closed
=
0
for
i
in
facilitiesArray
{
if
(
WO
K
Utilities
.
isOpen
(
facility
:
i
))
{
if
(
WO
P
Utilities
.
isOpen
(
facility
:
i
))
{
open
+=
1
}
else
{
...
...
WhatsOpen/WhatsOpen/Views/Primary Views/FacilityDetailViewController.swift
View file @
8fad103a
...
...
@@ -21,11 +21,11 @@ class FacilityDetailViewController: UIViewController, UITableViewDelegate, UITab
let
activity
=
NSUserActivity
(
activityType
:
"facility"
)
var
facility
:
WO
K
Facility
!
var
facility
:
WO
P
Facility
!
override
var
previewActionItems
:
[
UIPreviewActionItem
]
{
var
title
:
String
if
(
WO
K
Utilities
.
isFavoriteFacility
(
facility
))
{
if
(
WO
P
Utilities
.
isFavoriteFacility
(
facility
))
{
title
=
"Remove from Favorites"
}
else
{
...
...
@@ -60,8 +60,8 @@ class FacilityDetailViewController: UIViewController, UITableViewDelegate, UITab
CategoryLabel
.
text
=
facility
.
category
?
.
categoryName
.
uppercased
()
let
open
=
WO
K
Utilities
.
isOpen
(
facility
:
facility
)
OpenLabel
.
text
=
WO
K
Utilities
.
openOrClosedUntil
(
facility
)
let
open
=
WO
P
Utilities
.
isOpen
(
facility
:
facility
)
OpenLabel
.
text
=
WO
P
Utilities
.
openOrClosedUntil
(
facility
)
OpenLabel
.
layer
.
cornerRadius
=
4
OpenLabel
.
layer
.
masksToBounds
=
true
if
(
open
)
{
...
...
@@ -109,7 +109,7 @@ class FacilityDetailViewController: UIViewController, UITableViewDelegate, UITab
}
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
return
WO
K
Utilities
.
getCurrentSchedule
(
facility
)
!.
openTimes
.
count
return
WO
P
Utilities
.
getCurrentSchedule
(
facility
)
!.
openTimes
.
count
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
...
...
@@ -117,10 +117,10 @@ class FacilityDetailViewController: UIViewController, UITableViewDelegate, UITab
cell
.
selectionStyle
=
.
none
let
schedule
=
WO
K
Utilities
.
getCurrentSchedule
(
facility
)
let
schedule
=
WO
P
Utilities
.
getCurrentSchedule
(
facility
)
let
openTime
=
schedule
!.
openTimes
[
indexPath
.
row
]
cell
.
textLabel
?
.
text
=
WO
K
Utilities
.
getDayOfWeek
(
WO
K
Day
(
rawValue
:
openTime
.
startDay
)
!
)
cell
.
detailTextLabel
?
.
text
=
WO
K
Utilities
.
getFormattedStartandEnd
(
openTime
)
cell
.
textLabel
?
.
text
=
WO
P
Utilities
.
getDayOfWeek
(
WO
P
Day
(
rawValue
:
openTime
.
startDay
)
!
)
cell
.
detailTextLabel
?
.
text
=
WO
P
Utilities
.
getFormattedStartandEnd
(
openTime
)
cell
.
textLabel
?
.
font
=
UIFont
.
preferredFont
(
forTextStyle
:
.
headline
)
cell
.
detailTextLabel
?
.
font
=
UIFont
.
preferredFont
(
forTextStyle
:
.
body
)
...
...
@@ -129,11 +129,11 @@ class FacilityDetailViewController: UIViewController, UITableViewDelegate, UITab
}
func
markAsFavoritePreviewAction
(
_
sendingAction
:
UIPreviewAction
,
sender
:
UIViewController
)
{
if
(
WO
K
Utilities
.
isFavoriteFacility
(
facility
))
{
_
=
WO
K
Utilities
.
removeFavoriteFacility
(
facility
)
if
(
WO
P
Utilities
.
isFavoriteFacility
(
facility
))
{
_
=
WO
P
Utilities
.
removeFavoriteFacility
(
facility
)
}
else
{
_
=
WO
K
Utilities
.
addFavoriteFacility
(
facility
)
_
=
WO
P
Utilities
.
addFavoriteFacility
(
facility
)
}
}
}
WhatsOpen/WhatsOpen/Views/SettingsTableViewController.swift
View file @
8fad103a
...
...
@@ -101,7 +101,7 @@ class SettingsTableViewController: UITableViewController, MFMailComposeViewContr
cell
.
textLabel
?
.
text
=
"Show Alerts"
cell
.
textLabel
?
.
font
=
UIFont
.
preferredFont
(
forTextStyle
:
.
body
)
cell
.
detailTextLabel
?
.
font
=
UIFont
.
preferredFont
(
forTextStyle
:
.
footnote
)
let
alerts
=
WO
K
Utilities
.
getAlertDefaults
()
let
alerts
=
WO
P
Utilities
.
getAlertDefaults
()
var
i
=
0
for
c
in
alerts
{
if
(
c
.
value
==
true
)
{
...
...
@@ -121,7 +121,7 @@ class SettingsTableViewController: UITableViewController, MFMailComposeViewContr
cell
.
textLabel
?
.
text
=
"Show Campuses"
cell
.
textLabel
?
.
font
=
UIFont
.
preferredFont
(
forTextStyle
:
.
body
)
cell
.
detailTextLabel
?
.
font
=
UIFont
.
preferredFont
(
forTextStyle
:
.
footnote
)
let
campuses
=
WO
K
Utilities
.
getCampusDefaults
()
let
campuses
=
WO
P
Utilities
.
getCampusDefaults
()
var
i
=
0
for
c
in
campuses
{
if
(
c
.
value
==
true
)
{
...
...
@@ -280,17 +280,17 @@ class SettingsTableViewController: UITableViewController, MFMailComposeViewContr
if
(
sender
as!
UITableViewCell
)
.
textLabel
?
.
text
==
"Show Alerts"
{
let
destination
=
segue
.
destination
as!
FilterSelectionTableViewController
destination
.
navigationItem
.
title
=
"Show Alerts"
destination
.
getFunc
=
WO
K
Utilities
.
getAlertDefaults
destination
.
selectFunc
=
WO
K
Utilities
.
setAlertDefaults
destination
.
selectAllFunc
=
WO
K
Utilities
.
setAllAlertDefaults
destination
.
getFunc
=
WO
P
Utilities
.
getAlertDefaults
destination
.
selectFunc
=
WO
P
Utilities
.
setAlertDefaults
destination
.
selectAllFunc
=
WO
P
Utilities
.
setAllAlertDefaults
destination
.
updateFacilities
=
updateFacilities
}
else
if
(
sender
as!
UITableViewCell
)
.
textLabel
?
.
text
==
"Show Campuses"
{
let
destination
=
segue
.
destination
as!
FilterSelectionTableViewController
destination
.
navigationItem
.
title
=
"Show Campuses"
destination
.
getFunc
=
WO
K
Utilities
.
getCampusDefaults
destination
.
selectFunc
=
WO
K
Utilities
.
setCampusDefaults
destination
.
selectAllFunc
=
WO
K
Utilities
.
setAllCampusDefaults
destination
.
getFunc
=
WO
P
Utilities
.
getCampusDefaults
destination
.
selectFunc
=
WO
P
Utilities
.
setCampusDefaults
destination
.
selectAllFunc
=
WO
P
Utilities
.
setAllCampusDefaults
destination
.
updateFacilities
=
updateFacilities
}
}
...
...
WhatsOpen/WhatsOpenKit/DownloadController.swift
View file @
8fad103a
...
...
@@ -11,9 +11,9 @@ import RealmSwift
import
Realm
import
ObjectMapper
public
class
WO
K
DownloadController
:
NSObject
{
public
class
WO
P
DownloadController
:
NSObject
{
//https://api.srct.gmu.edu/whatsopen/v2/facilities/?format=json
public
static
func
performDownload
(
completion
:
@escaping
(
_
result
:
List
<
WO
K
Facility
>
?)
->
Void
)
{
public
static
func
performDownload
(
completion
:
@escaping
(
_
result
:
List
<
WO
P
Facility
>
?)
->
Void
)
{
let
requestURL
:
NSURL
=
NSURL
(
string
:
"https://api.srct.gmu.edu/whatsopen/v2/facilities/?format=json"
)
!
let
urlRequest
:
NSMutableURLRequest
=
NSMutableURLRequest
(
url
:
requestURL
as
URL
)
...
...
@@ -33,8 +33,8 @@ public class WOKDownloadController: NSObject {
if
let
dataN
=
data
{
if
let
json
=
try
?
JSONSerialization
.
jsonObject
(
with
:
dataN
,
options
:
[])
as?
[[
String
:
Any
]]
{
// Map function to iterate through each JSON tree
let
facilities
=
json
!.
map
({
(
json
)
->
WO
K
Facility
in
let
facility
=
WO
K
Facility
()
let
facilities
=
json
!.
map
({
(
json
)
->
WO
P
Facility
in
let
facility
=
WO
P
Facility
()
let
map
=
Map
(
mappingType
:
.
fromJSON
,
JSON
:
json
,
toObject
:
true
,
context
:
facility
,
shouldIncludeNilValues
:
true
)
facility
.
mapping
(
map
:
map
)
return
facility
...
...
@@ -52,7 +52,7 @@ public class WOKDownloadController: NSObject {
}
public
static
func
performAlertsDownload
(
completion
:
@escaping
(
_
result
:
List
<
WO
K
Alert
>
?)
->
Void
)
{
public
static
func
performAlertsDownload
(
completion
:
@escaping
(
_
result
:
List
<
WO
P
Alert
>
?)
->
Void
)
{
let
requestURL
:
NSURL
=
NSURL
(
string
:
"https://api.srct.gmu.edu/whatsopen/v2/alerts/?format=json"
)
!
let
urlRequest
:
NSMutableURLRequest
=
NSMutableURLRequest
(
url
:
requestURL
as
URL
)
...
...
@@ -72,8 +72,8 @@ public class WOKDownloadController: NSObject {
if
let
dataN
=
data
{
if
let
json
=
try
?
JSONSerialization
.
jsonObject
(
with
:
dataN
,
options
:
[])
as?
[[
String
:
Any
]]
{
// Map function to iterate through each JSON tree
let
alerts
=
json
!.
map
({
(
json
)
->
WO
K
Alert
in
<