Skip to content

Commit 3799d88

Browse files
authored
Release v3.0.9 (#122)
* [iOS] [14551] Open Infrastructure Summit changes. - Changes app icons and summit logos. - Replaces OpenStack Summit references to Open Infrastructure Summit. * [iOS] [14576] Adds app sponsor at bottom of menu. * [CoreSummit] [iOS] [14573] Adds room filter. Hides room and venue filters until show date. * [iOS] [watchOS] [14551] Replaces app icons. * [iOS] [watchOS] Changes app name. From OpenStack Summit to Open Infrastructure Summit. * Version bump to 3.0.9 * [iOS] [14536] Changes about description. * [iOS] [14635] Adds date format fix to Splash and About summit dates. * [iOS] Fixes summit website and code of conduct links.
1 parent bfb2ebf commit 3799d88

File tree

60 files changed

+610
-241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+610
-241
lines changed

OpenStack Summit/CoreSummit/EventManagedObject.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ public extension EventManagedObject {
195195
tracks: [Identifier] = [],
196196
trackGroups: [Identifier] = [],
197197
levels: [Level] = [],
198+
rooms: [Identifier] = [],
198199
venues: [Identifier] = [],
199200
summit: Identifier,
200201
context: NSManagedObjectContext) throws -> [EventManagedObject] {
@@ -238,6 +239,14 @@ public extension EventManagedObject {
238239
predicates.append(levelsPredicate)
239240
}
240241

242+
if rooms.isEmpty == false {
243+
244+
//let roomsPredicate = NSPredicate(format: "location.id IN %@", rooms)
245+
let roomsPredicate: Predicate = (#keyPath(EventManagedObject.location.id)).in(rooms)
246+
247+
predicates.append(roomsPredicate)
248+
}
249+
241250
if venues.isEmpty == false {
242251

243252
// NSPredicate(format: "venue.id IN %@", venues)

OpenStack Summit/CoreSummit/VenueRoomManagedObject.swift

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import Foundation
1010
import CoreData
11+
import Predicate
1112

1213
public final class VenueRoomManagedObject: LocationManagedObject {
1314

@@ -48,3 +49,42 @@ extension VenueRoom: CoreDataEncodable {
4849
return managedObject
4950
}
5051
}
52+
53+
// MARK - Fetches
54+
55+
public extension VenueRoomManagedObject {
56+
57+
static var sortDescriptors: [NSSortDescriptor] {
58+
59+
return [NSSortDescriptor(key: #keyPath(VenueRoomManagedObject.name), ascending: true)]
60+
}
61+
}
62+
63+
public extension VenueRoom {
64+
65+
/// Fetch all rooms that have some event associated with them.
66+
static func scheduled(for summit: Identifier, context: NSManagedObjectContext) throws -> [VenueRoom] {
67+
68+
// NSPredicate(format: "location != nil AND summit == %@", summitManagedObject))
69+
let eventsPredicate: Predicate = .keyPath(#keyPath(EventManagedObject.location)) != .value(.null)
70+
&& #keyPath(EventManagedObject.summit.id) == summit
71+
72+
let events = try context.managedObjects(EventManagedObject.self, predicate: eventsPredicate)
73+
74+
let locations = Set(events.compactMap({ $0.location }))
75+
.sorted(by: { $0.name < $1.name })
76+
77+
var rooms = [VenueRoomManagedObject]()
78+
79+
for location in locations {
80+
81+
if let room = location as? VenueRoomManagedObject {
82+
83+
rooms.append(room)
84+
}
85+
}
86+
87+
return VenueRoom.from(managedObjects: rooms)
88+
}
89+
}
90+

OpenStack Summit/OpenStack Summit.xcodeproj/project.pbxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5330,6 +5330,7 @@
53305330
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
53315331
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
53325332
CODE_SIGN_IDENTITY = "iPhone Developer";
5333+
DISPLAY_NAME = "Open Infrastructure Summit";
53335334
FRAMEWORK_SEARCH_PATHS = $SRCROOT/../Carthage/Build/WatchOS;
53345335
IBSC_MODULE = OpenStackSummitWatch_Extension;
53355336
INFOPLIST_FILE = OpenStackSummitWatch/Info.plist;
@@ -5518,6 +5519,7 @@
55185519
CLANG_ENABLE_MODULES = YES;
55195520
CODE_SIGN_ENTITLEMENTS = "$(CONFIGURATION).entitlements";
55205521
CODE_SIGN_IDENTITY = "iPhone Developer";
5522+
DISPLAY_NAME = "Open Infrastracture Summit";
55215523
FRAMEWORK_SEARCH_PATHS = (
55225524
$SRCROOT/../Carthage/Build/iOS,
55235525
$SRCROOT/../Vendor,
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>

OpenStack Summit/OpenStack Summit.xcodeproj/xcshareddata/xcschemes/OpenStack Summit.xcscheme

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29-
language = ""
3029
shouldUseLaunchSchemeArgsEnv = "YES">
3130
<Testables>
3231
<TestableReference
@@ -53,10 +52,9 @@
5352
</AdditionalOptions>
5453
</TestAction>
5554
<LaunchAction
56-
buildConfiguration = "Debug"
55+
buildConfiguration = "Release"
5756
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
5857
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
59-
language = ""
6058
launchStyle = "0"
6159
useCustomWorkingDirectory = "NO"
6260
ignoresPersistentStateOnLaunch = "NO"

OpenStack Summit/OpenStack Summit/AboutViewController.swift

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,19 +88,28 @@ final class AboutViewController: UITableViewController, RevealViewController, Em
8888

8989
@IBAction func showLink(_ sender: UIButton) {
9090

91+
var summitWebsite = "https://www.openstack.org"
92+
var codeOfConduct = "https://www.openstack.org/legal/community-code-of-conduct"
93+
94+
if let summitManagedObject = self.currentSummit {
95+
96+
summitWebsite = summitManagedObject.webpageURL
97+
codeOfConduct = "\(summitWebsite)/code-of-conduct"
98+
}
99+
91100
let link = Link(rawValue: sender.tag)!
92101

93102
switch link {
94103

95-
case .openStackWebsite:
104+
case .summitWebsite:
96105

97-
let url = URL(string: "https://openstack.org")!
106+
let url = URL(string: summitWebsite)!
98107

99108
open(url)
100109

101110
case .codeOfConduct:
102111

103-
let url = URL(string: "https://www.openstack.org/summit/barcelona-2016/code-of-conduct")!
112+
let url = URL(string: codeOfConduct)!
104113

105114
open(url)
106115

@@ -198,12 +207,22 @@ final class AboutViewController: UITableViewController, RevealViewController, Em
198207
}
199208
else {
200209

210+
let calendar = Calendar.current
211+
212+
var startDateFormat = "MMMM dd-"
213+
var endDateFormat = "dd, yyyy"
214+
215+
if !calendar.isDate(summit.end, equalTo: summit.start, toGranularity: .month) {
216+
217+
startDateFormat = "MMMM dd - "
218+
endDateFormat = "MMMM dd, yyyy"
219+
}
220+
201221
let dateFormatter = DateFormatter()
202222
dateFormatter.timeZone = TimeZone(identifier: summit.timeZone)
203-
dateFormatter.dateFormat = "MMMM dd-"
223+
dateFormatter.dateFormat = startDateFormat
204224
let stringDateFrom = dateFormatter.string(from: summit.start)
205-
206-
dateFormatter.dateFormat = "dd, yyyy"
225+
dateFormatter.dateFormat = endDateFormat
207226
let stringDateTo = dateFormatter.string(from: summit.end)
208227

209228
cell.dateLabel.text = "\(stringDateFrom)\(stringDateTo)"
@@ -368,7 +387,7 @@ private extension AboutViewController {
368387

369388
enum Link: Int {
370389

371-
case openStackWebsite
390+
case summitWebsite
372391
case codeOfConduct
373392
case appSupport
374393
case generalInquiries

OpenStack Summit/OpenStack Summit/AppDelegate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ final class AppDelegate: UIResponder, UIApplicationDelegate, SummitActivityHandl
3232
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
3333

3434
// print app info
35-
print("Launching OpenStack Summit v\(AppVersion) Build \(AppBuild)")
35+
print("Launching OpenInfrastructure Summit v\(AppVersion) Build \(AppBuild)")
3636
print("Using Environment: \(AppEnvironment.rawValue)")
3737

3838
// update app build preference
54.3 KB
Loading
25.2 KB
Loading

OpenStack Summit/OpenStack Summit/Assets.xcassets/AppIcon.appiconset/Contents.json

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,51 @@
11
{
22
"images" : [
33
{
4-
"idiom" : "iphone",
54
"size" : "20x20",
5+
"idiom" : "iphone",
6+
"filename" : "iPhone_Notification_iOS7-12@2x.png",
67
"scale" : "2x"
78
},
89
{
9-
"idiom" : "iphone",
1010
"size" : "20x20",
11+
"idiom" : "iphone",
12+
"filename" : "iPhone_Notification_iOS7-12@3x.png",
1113
"scale" : "3x"
1214
},
1315
{
1416
"size" : "29x29",
1517
"idiom" : "iphone",
16-
"filename" : "iPhone_Spotlight@2x.png",
18+
"filename" : "iPhone_Settings_iOS7-12@2x.png",
1719
"scale" : "2x"
1820
},
1921
{
2022
"size" : "29x29",
2123
"idiom" : "iphone",
22-
"filename" : "iPhone_Spotlight@3x.png",
24+
"filename" : "iPhone_Settings_iOS7-12@3x.png",
2325
"scale" : "3x"
2426
},
2527
{
2628
"size" : "40x40",
2729
"idiom" : "iphone",
28-
"filename" : "iPhone_Spotlight_iOS7-9@2x.png",
30+
"filename" : "iPhone_Spotlight_iOS7-12@2x.png",
2931
"scale" : "2x"
3032
},
3133
{
3234
"size" : "40x40",
3335
"idiom" : "iphone",
34-
"filename" : "iPhone_Spotlight_iOS7-9@3x.png",
36+
"filename" : "iPhone_Spotlight_iOS7-12@3x.png",
3537
"scale" : "3x"
3638
},
3739
{
3840
"size" : "60x60",
3941
"idiom" : "iphone",
40-
"filename" : "iPhone_App_iOS7-9@2x.png",
42+
"filename" : "iPhone_App_iOS7-12@2x.png",
4143
"scale" : "2x"
4244
},
4345
{
4446
"size" : "60x60",
4547
"idiom" : "iphone",
46-
"filename" : "iPhone_App_iOS7-9@3x.png",
48+
"filename" : "iPhone_App_iOS7-12@3x.png",
4749
"scale" : "3x"
4850
},
4951
{
@@ -52,8 +54,9 @@
5254
"scale" : "1x"
5355
},
5456
{
55-
"idiom" : "ipad",
5657
"size" : "20x20",
58+
"idiom" : "ipad",
59+
"filename" : "iPad_Notifications_iOS7-12@2x.png",
5760
"scale" : "2x"
5861
},
5962
{
@@ -71,37 +74,37 @@
7174
{
7275
"size" : "40x40",
7376
"idiom" : "ipad",
74-
"filename" : "iPad_Spotlight_iOS7-9.png",
77+
"filename" : "iPad_Spotlight_iOS7-12.png",
7578
"scale" : "1x"
7679
},
7780
{
7881
"size" : "40x40",
7982
"idiom" : "ipad",
80-
"filename" : "iPad_Spotlight_iOS7-9@2x.png",
83+
"filename" : "iPad_Spotlight_iOS7-12@2x.png",
8184
"scale" : "2x"
8285
},
8386
{
8487
"size" : "76x76",
8588
"idiom" : "ipad",
86-
"filename" : "iPad_App_iOS7-9.png",
89+
"filename" : "iPad_App_iOS7-12.png",
8790
"scale" : "1x"
8891
},
8992
{
9093
"size" : "76x76",
9194
"idiom" : "ipad",
92-
"filename" : "iPad_App_iOS7-9@2x.png",
95+
"filename" : "iPad_App_iOS7-12@2x.png",
9396
"scale" : "2x"
9497
},
9598
{
9699
"size" : "83.5x83.5",
97100
"idiom" : "ipad",
98-
"filename" : "iPad_ProApp_iOS9@2x.png",
101+
"filename" : "iPad_ProApp_iOS12@2x.png",
99102
"scale" : "2x"
100103
},
101104
{
102105
"size" : "1024x1024",
103106
"idiom" : "ios-marketing",
104-
"filename" : "AppStore.png",
107+
"filename" : "AppStore.jpeg",
105108
"scale" : "1x"
106109
}
107110
],

0 commit comments

Comments
 (0)