├── .gitignore
├── .travis.yml
├── Cartfile
├── Cartfile.resolved
├── Gemfile
├── LICENSE.md
├── README.md
├── Remember The Date.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── xcshareddata
│ └── xcschemes
│ └── Remember The Date.xcscheme
├── Remember The Date
├── AppDelegate.h
├── AppDelegate.m
├── Base.lproj
│ ├── LaunchScreen.xib
│ └── Main.storyboard
├── Categories
│ ├── NSData+RememberTheDate.h
│ └── NSData+RememberTheDate.m
├── EmptyView.xib
├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ ├── Contents.json
│ │ ├── Icon-60.png
│ │ ├── Icon-60@2x.png
│ │ ├── Icon-60@3x.png
│ │ ├── Icon-76.png
│ │ ├── Icon-76@2x.png
│ │ ├── Icon-Small.png
│ │ ├── Icon-Small@2x-1.png
│ │ ├── Icon-Small@2x.png
│ │ ├── Icon-Small@3x.png
│ │ ├── Icon-Spotlight-40.png
│ │ ├── Icon-Spotlight-40@2x-1.png
│ │ ├── Icon-Spotlight-40@2x.png
│ │ ├── Icon-Spotlight-40@3x.png
│ │ ├── Icon-Spotlight-41.png
│ │ ├── Icon-Spotlight-42.png
│ │ ├── Icon-iPadPro@2x.png
│ │ └── iTunesArtwork@2x.png
│ ├── Contents.json
│ ├── addDate.imageset
│ │ ├── Contents.json
│ │ └── glyph-profile.pdf
│ ├── addProfile.imageset
│ │ ├── Contents.json
│ │ └── glyph-add.pdf
│ ├── addUser.imageset
│ │ ├── Contents.json
│ │ └── glyph-date.pdf
│ ├── check.imageset
│ │ ├── Contents.json
│ │ └── glyph-check.pdf
│ ├── close.imageset
│ │ ├── Contents.json
│ │ └── glyph-close.pdf
│ ├── close_icon.imageset
│ │ ├── Contents.json
│ │ ├── icoClose.png
│ │ ├── icoClose@2x-1.png
│ │ ├── icoClose@2x.png
│ │ ├── icoClose@3x-1.png
│ │ └── icoClose@3x.png
│ ├── defaultProfile.imageset
│ │ ├── Contents.json
│ │ └── glyph-profile-add.pdf
│ ├── delete.imageset
│ │ ├── Contents.json
│ │ └── glyph-delete.pdf
│ ├── email.imageset
│ │ ├── Contents.json
│ │ └── glyph-email.pdf
│ ├── empty.imageset
│ │ ├── Contents.json
│ │ ├── emtpy.png
│ │ ├── emtpy@2x 2-1.png
│ │ ├── emtpy@2x 2.png
│ │ ├── emtpy@2x-1.png
│ │ └── emtpy@2x.png
│ ├── emptyBackground.imageset
│ │ ├── Contents.json
│ │ └── glyph-placeholder.pdf
│ ├── help.imageset
│ │ ├── Contents.json
│ │ └── glyph-help.pdf
│ ├── help_icon.imageset
│ │ ├── Contents.json
│ │ ├── icoHelp.png
│ │ ├── icoHelp@2x-1.png
│ │ ├── icoHelp@2x.png
│ │ ├── icoHelp@3x-2.png
│ │ └── icoHelp@3x.png
│ ├── helplanding.imageset
│ │ ├── Contents.json
│ │ ├── helplanding.png
│ │ ├── helplanding@2x-1.png
│ │ ├── helplanding@2x.png
│ │ ├── helplanding@3x-1.png
│ │ └── helplanding@3x.png
│ ├── home_icon.imageset
│ │ ├── Contents.json
│ │ ├── icoHome.png
│ │ ├── icoHome@2x-1.png
│ │ ├── icoHome@2x.png
│ │ ├── icoHome@3x-1.png
│ │ └── icoHome@3x.png
│ ├── launch-icon-ios.imageset
│ │ ├── Contents.json
│ │ └── launch-icon-ios.pdf
│ ├── name.imageset
│ │ ├── Contents.json
│ │ └── glyph-person.pdf
│ ├── photo_icon.imageset
│ │ ├── Contents.json
│ │ ├── icoPhoto.png
│ │ ├── icoPhoto@2x-1.png
│ │ ├── icoPhoto@2x.png
│ │ ├── icoPhoto@3x-1.png
│ │ └── icoPhoto@3x.png
│ ├── plus_active_icon.imageset
│ │ ├── Contents.json
│ │ ├── icoAddActive.png
│ │ ├── icoAddActive@2x-1.png
│ │ ├── icoAddActive@2x.png
│ │ ├── icoAddActive@3x-1.png
│ │ └── icoAddActive@3x.png
│ ├── plus_icon.imageset
│ │ ├── Contents.json
│ │ ├── icoAdd.png
│ │ ├── icoAdd@2x-1.png
│ │ ├── icoAdd@2x.png
│ │ ├── icoAdd@3x-1.png
│ │ └── icoAdd@3x.png
│ └── user_icon.imageset
│ │ ├── Contents.json
│ │ ├── icoUser.png
│ │ ├── icoUser@2x-1.png
│ │ ├── icoUser@2x.png
│ │ ├── icoUser@3x-1.png
│ │ └── icoUser@3x.png
├── Images
│ ├── Launchimage 6 Plus.png
│ ├── Launchimage 6.png
│ ├── Launchimage4s.png
│ ├── Launchimage5s.png
│ ├── bgTab.png
│ ├── bgTab@2x.png
│ ├── bgTab@3x.png
│ ├── btnContactSupport.png
│ ├── btnContactSupport@2x.png
│ ├── btnContactSupport@3x.png
│ ├── btnFeedback.png
│ ├── btnFeedback@2x.png
│ ├── btnFeedback@3x.png
│ ├── btnHelpCenter.png
│ ├── btnHelpCenter@2x.png
│ ├── btnHelpCenter@3x.png
│ ├── btnOpenTickets.png
│ ├── btnOpenTickets@2x.png
│ ├── btnOpenTickets@3x.png
│ ├── emtpy.png
│ ├── emtpy@2x 2.png
│ ├── emtpy@2x.png
│ ├── helplanding.png
│ ├── helplanding@2x.png
│ ├── helplanding@3x.png
│ ├── icoAdd.png
│ ├── icoAdd@2x.png
│ ├── icoAdd@3x.png
│ ├── icoAddActive.png
│ ├── icoAddActive@2x.png
│ ├── icoAddActive@3x.png
│ ├── icoClose.png
│ ├── icoClose@2x.png
│ ├── icoClose@3x.png
│ ├── icoHelp.png
│ ├── icoHelp@2x.png
│ ├── icoHelp@3x.png
│ ├── icoHelpActive.png
│ ├── icoHelpActive@2x.png
│ ├── icoHelpActive@3x.png
│ ├── icoHome.png
│ ├── icoHome@2x.png
│ ├── icoHome@3x.png
│ ├── icoHomeActive.png
│ ├── icoHomeActive@2x.png
│ ├── icoHomeActive@3x.png
│ ├── icoPhoto.png
│ ├── icoPhoto@2x.png
│ ├── icoPhoto@3x.png
│ ├── icoUser.png
│ ├── icoUser@2x.png
│ ├── icoUser@3x.png
│ ├── icon.png
│ ├── icon100.png
│ ├── icon1024.png
│ ├── icon114.png
│ ├── icon120.png
│ ├── icon144.png
│ ├── icon152.png
│ ├── icon180.png
│ ├── icon29.png
│ ├── icon40.png
│ ├── icon50.png
│ ├── icon512.png
│ ├── icon57.png
│ ├── icon58.png
│ ├── icon72.png
│ ├── icon76.png
│ ├── icon80.png
│ ├── icon@2x.png
│ ├── rma_error.png
│ ├── rma_error@2x.png
│ ├── rma_tick.png
│ └── rma_tick@2x.png
├── Info.plist
├── Launch Screen.storyboard
├── Localizable.strings
├── Remember The Date.entitlements
├── View Controllers
│ ├── CreateProfileTableViewController.h
│ ├── CreateProfileTableViewController.m
│ ├── DateTableViewController.h
│ ├── DateTableViewController.m
│ ├── NewDateViewController.h
│ ├── NewDateViewController.m
│ ├── RequestListViewController.h
│ ├── RequestListViewController.m
│ ├── SaveTheDateTabBarController.h
│ ├── SaveTheDateTabBarController.m
│ ├── ZenHelpViewController.h
│ └── ZenHelpViewController.m
└── main.m
├── Remember The DateTests
├── Info.plist
└── Remember_The_DateTests.m
├── fastlane
├── Appfile
└── Fastfile
└── scripts
└── travis.sh
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
4 |
5 | ## User settings
6 | xcuserdata/
7 |
8 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
9 | *.xcscmblueprint
10 | *.xccheckout
11 |
12 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
13 | build/
14 | DerivedData/
15 | Index/
16 | *.moved-aside
17 | *.pbxuser
18 | !default.pbxuser
19 | *.mode1v3
20 | !default.mode1v3
21 | *.mode2v3
22 | !default.mode2v3
23 | *.perspectivev3
24 | !default.perspectivev3
25 |
26 | ## Obj-C/Swift specific
27 | *.hmap
28 |
29 | ## App packaging
30 | *.ipa
31 | *.dSYM.zip
32 | *.dSYM
33 |
34 | # CocoaPods
35 | #
36 | # We recommend against adding the Pods directory to your .gitignore. However
37 | # you should judge for yourself, the pros and cons are mentioned at:
38 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
39 | #
40 | # Pods/
41 | #
42 | # Add this line if you want to avoid checking in source code from the Xcode workspace
43 | # *.xcworkspace
44 |
45 | # Carthage
46 | #
47 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
48 | # Carthage/Build/iOS
49 | Carthage/Checkouts
50 |
51 | # fastlane
52 | #
53 | # It is recommended to not store the screenshots in the git repo.
54 | # Instead, use fastlane to re-generate the screenshots whenever they are needed.
55 | # For more information about the recommended setup visit:
56 | # https://docs.fastlane.tools/best-practices/source-control/#source-control
57 |
58 | fastlane/report.xml
59 | fastlane/Preview.html
60 | fastlane/screenshots/**/*.png
61 | fastlane/test_output
62 |
63 | # Code Injection
64 | #
65 | # After new code Injection tools there's a generated folder /iOSInjectionProject
66 | # https://github.com/johnno1962/injectionforxcode
67 |
68 | iOSInjectionProject/
69 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | os: osx
2 | osx_image: xcode11.3
3 | language: swift
4 | cache:
5 | bundler: true
6 | directories:
7 | - "/home/travis/.rvm/"
8 | branches:
9 | only:
10 | - master
11 | matrix:
12 | include:
13 | - name: iOS Remember the Date App
14 | before_install:
15 | - sh ./scripts/travis.sh before_install
16 | install:
17 | - sh ./scripts/travis.sh install
18 | script:
19 | - sh ./scripts/travis.sh build
20 |
21 |
--------------------------------------------------------------------------------
/Cartfile:
--------------------------------------------------------------------------------
1 | # Answer Bot
2 | github "zendesk/answer_bot_sdk_ios" ~> 4.0.0
3 | # Chat
4 | github "zendesk/chat_sdk_ios" ~> 4.0.0
5 | # Support
6 | github "zendesk/support_sdk_ios" ~> 7.0.0
7 |
--------------------------------------------------------------------------------
/Cartfile.resolved:
--------------------------------------------------------------------------------
1 | github "zendesk/answer_bot_providers_sdk_ios" "4.0.0"
2 | github "zendesk/answer_bot_sdk_ios" "4.0.0"
3 | github "zendesk/chat_providers_sdk_ios" "4.0.0"
4 | github "zendesk/chat_sdk_ios" "4.0.0"
5 | github "zendesk/commonui_sdk_ios" "8.0.0"
6 | github "zendesk/core_sdk_ios" "4.0.0"
7 | github "zendesk/messaging_sdk_ios" "5.0.0"
8 | github "zendesk/messagingapi_sdk_ios" "5.0.0"
9 | github "zendesk/sdkconfigurations_sdk_ios" "3.0.0"
10 | github "zendesk/support_providers_sdk_ios" "7.0.0"
11 | github "zendesk/support_sdk_ios" "7.0.0"
12 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "danger"
4 | gem "fastlane"
5 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | By downloading or accessing this software, You agree to the Zendesk Master Subscription Agreement (https://www.zendesk.com/company/customers-partners/#master-subscription-agreement) and Application Developer and API License Agreement (https://www.zendesk.com/company/customers-partners/#application-developer-api-license-agreement) and acknowledge that such terms govern Your use of and access to the software.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | # Zendesk Mobile SDK iOS Demo app
4 |
5 | The "Remember the Date" demo app demonstrates how to use the Zendesk Mobile SDK to build native support into your mobile application.
6 |
7 | ##### The following Zendesk Mobile SDK features are demonstrated in the "Remember The Date" app.
8 |
9 | * Create/Submit a Zendesk ticket request
10 | * View an existing Zendesk ticket request
11 | * Access and search your Zendesk Help Center Self Service content
12 | * Accessing the Zendesk "Rate my app" feature
13 |
14 | Please submit bug reports to [Zendesk](https://rememberthedate.zendesk.com/requests/new). Pull requests are welcome.
15 |
16 | ### Licence:
17 |
18 | By downloading or using the Zendesk Mobile SDK, You agree to the Zendesk Master
19 | Subscription Agreement https://www.zendesk.com/company/customers-partners/#master-subscription-agreement and Application Developer and API License
20 | Agreement https://www.zendesk.com/company/customers-partners/#application-developer-api-license-agreement and
21 | acknowledge that such terms govern Your use of and access to the Mobile SDK.
22 |
--------------------------------------------------------------------------------
/Remember The Date.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Remember The Date.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Remember The Date.xcodeproj/xcshareddata/xcschemes/Remember The Date.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
49 |
50 |
51 |
52 |
53 |
54 |
64 |
66 |
72 |
73 |
74 |
75 |
76 |
77 |
83 |
85 |
91 |
92 |
93 |
94 |
96 |
97 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/Remember The Date/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/9/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | extern NSString * const APNS_ID_KEY;
12 |
13 | @interface AppDelegate : UIResponder
14 |
15 | @property (strong, nonatomic) UIWindow *window;
16 |
17 |
18 | @end
19 |
20 |
--------------------------------------------------------------------------------
/Remember The Date/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/9/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import "NSData+RememberTheDate.h"
11 | #import
12 | #import
13 | #import
14 |
15 | @import SupportSDK;
16 | @import ZendeskCoreSDK;
17 | @import AnswerBotProvidersSDK;
18 | @import CommonUISDK;
19 |
20 | #define RED_COLOR [UIColor colorWithRed:232.0f/255.f green:42.0f/255.0f blue:42.0f/255.0f alpha:1.0f]
21 | #define ORANGE_COLOR [UIColor colorWithRed:253.0f/255.f green:144.0f/255.0f blue:38.0f/255.0f alpha:1.0f]
22 | #define ORANGE_COLOR_40 [UIColor colorWithRed:253.0f/255.f green:144.0f/255.0f blue:38.0f/255.0f alpha:0.4f]
23 |
24 | #define TEXT_COLOR [UIColor colorWithRed:150.0f/255.f green:110.0f/255.0f blue:90.0f/255.0f alpha:1.0f]
25 | #define TEXT_COLOR_40 [UIColor colorWithRed:150.0f/255.f green:110.0f/255.0f blue:90.0f/255.0f alpha:.4f]
26 |
27 | #define PLACEHOLDER_COLOR [UIColor colorWithRed:217.0f/255.f green:205.0f/255.0f blue:200.0f/255.0f alpha:1.0f]
28 | #define NAVBAR_COLOR [UIColor colorWithRed:240.0f/255.f green:240.0f/255.0f blue:240.0f/255.0f alpha:1.0f]
29 | #define EMAIL_COLOR [UIColor colorWithRed:214.0f/255.f green:214.0f/255.0f blue:214.0f/255.0f alpha:1.0f]
30 |
31 | static NSString * APP_ID = @"e5dd7520b178e21212f5cc2751a28f4b5a7dc76698dc79bd";
32 | static NSString * ZENDESK_URL = @"https://rememberthedate.zendesk.com";
33 | static NSString * CLIENT_ID = @"client_for_rtd_jwt_endpoint";
34 |
35 | NSString * const APNS_ID_KEY = @"APNS_ID_KEY";
36 |
37 | @interface AppDelegate ()
38 |
39 | @end
40 |
41 | @implementation AppDelegate
42 |
43 |
44 | -(void) setupSDKStyle {
45 |
46 | // status bar
47 | [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
48 |
49 | // nav bar
50 | NSDictionary *navbarAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
51 | [UIColor whiteColor] ,NSForegroundColorAttributeName, nil];
52 | [[UINavigationBar appearance] setTitleTextAttributes:navbarAttributes];
53 | [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
54 | [[UINavigationBar appearance] setBarTintColor:[[UIColor alloc] initWithRed:0 green:(188.0/255.0) blue:(212.0/255.0) alpha:1.0]];
55 |
56 | ZDKCommonTheme.currentTheme.primaryColor = [[UIColor alloc] initWithRed:0 green:(188.0/255.0) blue:(212.0/255.0) alpha:1.0];
57 | ZDKCommonTheme.currentTheme.primaryColor = [[UIColor alloc] initWithRed:0 green:(188.0/255.0) blue:(212.0/255.0) alpha:1.0];
58 | }
59 |
60 |
61 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
62 |
63 | // sync the default
64 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
65 | [defaults synchronize];
66 |
67 | // Visual setup
68 |
69 | [[UITextView appearance] setTintColor:[[UIColor alloc] initWithRed:0 green:(188.0/255.0) blue:(212.0/255.0) alpha:1.0]];
70 | [[UITabBar appearance] setSelectedImageTintColor: [[UIColor alloc] initWithRed:0 green:(188.0/255.0) blue:(212.0/255.0) alpha:1.0]];
71 | [[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
72 | // [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
73 | [application setStatusBarStyle:UIStatusBarStyleLightContent];
74 |
75 | // Request Local Notifications
76 | if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
77 | [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
78 | }
79 |
80 | // Register for remote notfications
81 | if ([UIApplication instancesRespondToSelector:@selector(registerForRemoteNotifications)]) {
82 |
83 | UIUserNotificationType types = UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;
84 |
85 | UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
86 | [application registerUserNotificationSettings:settings];
87 | [application registerForRemoteNotifications];
88 |
89 | } else if ([UIApplication instancesRespondToSelector:@selector(registerForRemoteNotificationTypes:)]) {
90 |
91 | UIRemoteNotificationType types = UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound;
92 |
93 | [application registerForRemoteNotificationTypes:types];
94 |
95 | }
96 | //
97 | // Enable logging for debug builds
98 | //
99 |
100 | #ifdef DEBUG
101 | [ZDKClassicCoreLogger setEnabled:YES];
102 | #else
103 | [ZDKClassicCoreLogger setEnabled:NO];
104 | #endif
105 |
106 | //
107 | // Initialize the Zendesk SDK
108 | //
109 | [ZDKClassicZendesk initializeWithAppId:@"e5dd7520b178e21212f5cc2751a28f4b5a7dc76698dc79bd" clientId:@"client_for_rtd_jwt_endpoint" zendeskUrl:@"https://rememberthedate.zendesk.com"];
110 | [ZDKSupport initializeWithZendesk:[ZDKClassicZendesk instance]];
111 | [ZDKAnswerBot initializeWithZendesk:[ZDKClassicZendesk instance] support:[ZDKSupport instance]];
112 |
113 |
114 | //
115 | // Style the SDK
116 | //
117 | [self setupSDKStyle];
118 |
119 | //
120 | // Initialise the chat SDK
121 | //
122 | [ZDKChat initializeWithAccountKey:@"2qNzXIeOGKD0LbLOWgAclb72G3LLfOHK" queue:dispatch_get_main_queue()];
123 |
124 | //
125 | // The rest of the Mobile SDK code can be found in ZenHelpViewController.m
126 | //
127 | return YES;
128 | }
129 |
130 |
131 | - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
132 |
133 | //
134 | // Register the Support SDK for push notifications
135 | //
136 | NSString *identifier = [deviceToken deviceIdentifier];
137 | [[NSUserDefaults standardUserDefaults] setObject:identifier forKey:APNS_ID_KEY];
138 |
139 | if ([[ZDKClassicZendesk instance] objCIdentity] != nil ) {
140 |
141 | NSString * locale = [[NSLocale preferredLanguages] firstObject];
142 | [[[ZDKClassicPushProvider alloc] initWithZendesk:[ZDKClassicZendesk instance]] registerWithDeviceIdentifier:identifier locale:locale completion:^(NSString * _Nullable registrationResponse, NSError * _Nullable error) {
143 | if (error) {
144 | NSLog(@"Couldn't register device: %@. Error: %@ in %@", identifier, error, self.class);
145 | } else if (registrationResponse) {
146 |
147 | NSLog(@"Successfully registered device: %@ in %@", identifier, self.class);
148 | }
149 | }];
150 |
151 | }
152 |
153 | //
154 | // Register the Chat SDK for push notifications
155 | //
156 | [[[ZDKChat instance] pushNotificationsProvider] registerPushToken: deviceToken];
157 | }
158 |
159 | - (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
160 | NSLog(@"Recieved push payload:\n%@", userInfo);
161 | NSString * requestID = userInfo[@"zendesk_sdk_request_id"];
162 | if (requestID != nil) {
163 | [self handleSupportPush:requestID];
164 | completionHandler;
165 | } else {
166 | [self handleChatPush:userInfo inApplication: application];
167 | completionHandler;
168 | }
169 |
170 | }
171 |
172 | - (void) handleSupportPush:(NSString *)requestID {
173 | if ([[ZDKSupport instance] refreshRequestWithRequestId:requestID]) {
174 | return;
175 | } else {
176 | UIWindow *window = [UIApplication sharedApplication].delegate.window;
177 | UIViewController *controller = window.rootViewController;
178 |
179 | UIViewController *sdkController = [ZDKRequestUi buildRequestUiWithRequestId:requestID];
180 | UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:sdkController];
181 |
182 | [controller presentViewController:navController animated:true completion:nil];
183 | }
184 | }
185 |
186 | - (void) handleChatPush:(NSDictionary *)userInfo inApplication:(UIApplication *) application {
187 | [[[ZDKChat instance] pushNotificationsProvider] didReceiveRemoteNotification:userInfo in:application];
188 | }
189 |
190 | @end
191 |
--------------------------------------------------------------------------------
/Remember The Date/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Remember The Date/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
38 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
151 |
165 |
177 |
191 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 |
548 |
549 |
550 |
551 |
552 |
553 |
554 |
555 |
556 |
557 |
558 |
559 |
560 |
561 |
562 |
563 |
564 |
565 |
566 |
567 |
568 |
569 |
570 |
571 |
572 |
573 |
574 |
575 |
576 |
577 |
578 |
579 |
580 |
581 |
582 |
583 |
584 |
585 |
586 |
587 |
588 |
589 |
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
--------------------------------------------------------------------------------
/Remember The Date/Categories/NSData+RememberTheDate.h:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * NSData+RememberTheDate.h
4 | * Remember The Date
5 | *
6 | * Created by RememberTheDate on 09/03/2015.
7 | *
8 | * Copyright (c) 2015 RememberTheDate. All rights reserved.
9 | *
10 | * By downloading or using the Zendesk Mobile SDK, You agree to the Zendesk Master
11 | * Subscription Agreement https://www.zendesk.com/company/customers-partners/#master-subscription-agreement and Application Developer and API License
12 | * Agreement https://www.zendesk.com/company/customers-partners/#application-developer-api-license-agreement and
13 | * acknowledge that such terms govern Your use of and access to the Mobile SDK.
14 | *
15 | */
16 |
17 | #import
18 |
19 | @interface NSData (RememberTheDate)
20 |
21 | - (NSString *) deviceIdentifier;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Remember The Date/Categories/NSData+RememberTheDate.m:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * NSData+RememberTheDate.m
4 | * Remember The Date
5 | *
6 | * Created by RememberTheDate on 09/03/2015.
7 | *
8 | * Copyright (c) 2015 RememberTheDate. All rights reserved.
9 | *
10 | * By downloading or using the Zendesk Mobile SDK, You agree to the Zendesk Master
11 | * Subscription Agreement https://www.zendesk.com/company/customers-partners/#master-subscription-agreement and Application Developer and API License
12 | * Agreement https://www.zendesk.com/company/customers-partners/#application-developer-api-license-agreement and
13 | * acknowledge that such terms govern Your use of and access to the Mobile SDK.
14 | *
15 | */
16 |
17 | #import "NSData+RememberTheDate.h"
18 |
19 | @implementation NSData (RememberTheDate)
20 |
21 | - (NSString *) deviceIdentifier {
22 |
23 | NSMutableString* identifier = [NSMutableString stringWithString:[self.description uppercaseString]];
24 | [identifier replaceOccurrencesOfString:@"<" withString:@"" options:0 range:NSMakeRange(0, identifier.length)];
25 | [identifier replaceOccurrencesOfString:@">" withString:@"" options:0 range:NSMakeRange(0, identifier.length)];
26 | [identifier replaceOccurrencesOfString:@" " withString:@"" options:0 range:NSMakeRange(0, identifier.length)];
27 | return identifier;
28 | }
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Remember The Date/EmptyView.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-Spotlight-42.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-60.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-Small@2x-1.png",
19 | "scale" : "2x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-Small@3x.png",
25 | "scale" : "3x"
26 | },
27 | {
28 | "size" : "40x40",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-Spotlight-40@2x.png",
31 | "scale" : "2x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-Spotlight-40@3x.png",
37 | "scale" : "3x"
38 | },
39 | {
40 | "size" : "60x60",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-60@2x.png",
43 | "scale" : "2x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-60@3x.png",
49 | "scale" : "3x"
50 | },
51 | {
52 | "idiom" : "ipad",
53 | "size" : "20x20",
54 | "scale" : "1x"
55 | },
56 | {
57 | "size" : "20x20",
58 | "idiom" : "ipad",
59 | "filename" : "Icon-Spotlight-40.png",
60 | "scale" : "2x"
61 | },
62 | {
63 | "size" : "29x29",
64 | "idiom" : "ipad",
65 | "filename" : "Icon-Small.png",
66 | "scale" : "1x"
67 | },
68 | {
69 | "size" : "29x29",
70 | "idiom" : "ipad",
71 | "filename" : "Icon-Small@2x.png",
72 | "scale" : "2x"
73 | },
74 | {
75 | "size" : "40x40",
76 | "idiom" : "ipad",
77 | "filename" : "Icon-Spotlight-41.png",
78 | "scale" : "1x"
79 | },
80 | {
81 | "size" : "40x40",
82 | "idiom" : "ipad",
83 | "filename" : "Icon-Spotlight-40@2x-1.png",
84 | "scale" : "2x"
85 | },
86 | {
87 | "size" : "76x76",
88 | "idiom" : "ipad",
89 | "filename" : "Icon-76.png",
90 | "scale" : "1x"
91 | },
92 | {
93 | "size" : "76x76",
94 | "idiom" : "ipad",
95 | "filename" : "Icon-76@2x.png",
96 | "scale" : "2x"
97 | },
98 | {
99 | "size" : "83.5x83.5",
100 | "idiom" : "ipad",
101 | "filename" : "Icon-iPadPro@2x.png",
102 | "scale" : "2x"
103 | },
104 | {
105 | "size" : "1024x1024",
106 | "idiom" : "ios-marketing",
107 | "filename" : "iTunesArtwork@2x.png",
108 | "scale" : "1x"
109 | }
110 | ],
111 | "info" : {
112 | "version" : 1,
113 | "author" : "xcode"
114 | }
115 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-60.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-60@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-60@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-76.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Small.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Small@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Small@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-40@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-41.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-41.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-42.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-42.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/Icon-iPadPro@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/addDate.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-profile.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/addDate.imageset/glyph-profile.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/addDate.imageset/glyph-profile.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/addProfile.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-add.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/addProfile.imageset/glyph-add.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/addProfile.imageset/glyph-add.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/addUser.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-date.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/addUser.imageset/glyph-date.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/addUser.imageset/glyph-date.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/check.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-check.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/check.imageset/glyph-check.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/check.imageset/glyph-check.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/close.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-close.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/close.imageset/glyph-close.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/close.imageset/glyph-close.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/close_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "icoClose.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "icoClose@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "icoClose@3x.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "icoClose@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "icoClose@3x-1.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/close_icon.imageset/icoClose.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/close_icon.imageset/icoClose.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/close_icon.imageset/icoClose@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/close_icon.imageset/icoClose@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/close_icon.imageset/icoClose@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/close_icon.imageset/icoClose@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/close_icon.imageset/icoClose@3x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/close_icon.imageset/icoClose@3x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/close_icon.imageset/icoClose@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/close_icon.imageset/icoClose@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/defaultProfile.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-profile-add.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/defaultProfile.imageset/glyph-profile-add.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/defaultProfile.imageset/glyph-profile-add.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/delete.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-delete.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/delete.imageset/glyph-delete.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/delete.imageset/glyph-delete.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/email.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-email.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/email.imageset/glyph-email.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/email.imageset/glyph-email.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/empty.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "emtpy.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "emtpy@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "emtpy@2x 2.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "emtpy@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "emtpy@2x 2-1.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/empty.imageset/emtpy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/empty.imageset/emtpy.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/empty.imageset/emtpy@2x 2-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/empty.imageset/emtpy@2x 2-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/empty.imageset/emtpy@2x 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/empty.imageset/emtpy@2x 2.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/empty.imageset/emtpy@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/empty.imageset/emtpy@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/empty.imageset/emtpy@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/empty.imageset/emtpy@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/emptyBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-placeholder.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/emptyBackground.imageset/glyph-placeholder.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/emptyBackground.imageset/glyph-placeholder.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/help.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-help.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/help.imageset/glyph-help.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/help.imageset/glyph-help.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/help_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "icoHelp.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "icoHelp@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "icoHelp@3x.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "icoHelp@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "icoHelp@3x-2.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp@3x-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp@3x-2.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/help_icon.imageset/icoHelp@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/helplanding.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "helplanding.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "helplanding@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "helplanding@3x.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "helplanding@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "helplanding@3x-1.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/helplanding.imageset/helplanding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/helplanding.imageset/helplanding.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/helplanding.imageset/helplanding@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/helplanding.imageset/helplanding@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/helplanding.imageset/helplanding@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/helplanding.imageset/helplanding@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/helplanding.imageset/helplanding@3x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/helplanding.imageset/helplanding@3x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/helplanding.imageset/helplanding@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/helplanding.imageset/helplanding@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/home_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "icoHome.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "icoHome@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "icoHome@3x.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "icoHome@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "icoHome@3x-1.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/home_icon.imageset/icoHome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/home_icon.imageset/icoHome.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/home_icon.imageset/icoHome@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/home_icon.imageset/icoHome@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/home_icon.imageset/icoHome@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/home_icon.imageset/icoHome@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/home_icon.imageset/icoHome@3x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/home_icon.imageset/icoHome@3x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/home_icon.imageset/icoHome@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/home_icon.imageset/icoHome@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/launch-icon-ios.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "launch-icon-ios.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/launch-icon-ios.imageset/launch-icon-ios.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/launch-icon-ios.imageset/launch-icon-ios.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/name.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "glyph-person.pdf",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/name.imageset/glyph-person.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/name.imageset/glyph-person.pdf
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/photo_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "icoPhoto.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "icoPhoto@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "icoPhoto@3x.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "icoPhoto@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "icoPhoto@3x-1.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto@3x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto@3x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/photo_icon.imageset/icoPhoto@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_active_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "icoAddActive.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "icoAddActive@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "icoAddActive@3x.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "icoAddActive@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "icoAddActive@3x-1.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive@3x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive@3x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_active_icon.imageset/icoAddActive@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "icoAdd.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "icoAdd@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "icoAdd@3x.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "icoAdd@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "icoAdd@3x-1.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd@3x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd@3x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/plus_icon.imageset/icoAdd@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/user_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "1x",
6 | "filename" : "icoUser.png"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "2x",
11 | "filename" : "icoUser@2x.png"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "3x",
16 | "filename" : "icoUser@3x.png"
17 | },
18 | {
19 | "idiom" : "ipad",
20 | "scale" : "1x",
21 | "filename" : "icoUser@2x-1.png"
22 | },
23 | {
24 | "idiom" : "ipad",
25 | "scale" : "2x",
26 | "filename" : "icoUser@3x-1.png"
27 | }
28 | ],
29 | "info" : {
30 | "version" : 1,
31 | "author" : "xcode"
32 | }
33 | }
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/user_icon.imageset/icoUser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/user_icon.imageset/icoUser.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/user_icon.imageset/icoUser@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/user_icon.imageset/icoUser@2x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/user_icon.imageset/icoUser@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/user_icon.imageset/icoUser@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/user_icon.imageset/icoUser@3x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/user_icon.imageset/icoUser@3x-1.png
--------------------------------------------------------------------------------
/Remember The Date/Images.xcassets/user_icon.imageset/icoUser@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images.xcassets/user_icon.imageset/icoUser@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/Launchimage 6 Plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/Launchimage 6 Plus.png
--------------------------------------------------------------------------------
/Remember The Date/Images/Launchimage 6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/Launchimage 6.png
--------------------------------------------------------------------------------
/Remember The Date/Images/Launchimage4s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/Launchimage4s.png
--------------------------------------------------------------------------------
/Remember The Date/Images/Launchimage5s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/Launchimage5s.png
--------------------------------------------------------------------------------
/Remember The Date/Images/bgTab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/bgTab.png
--------------------------------------------------------------------------------
/Remember The Date/Images/bgTab@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/bgTab@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/bgTab@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/bgTab@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnContactSupport.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnContactSupport.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnContactSupport@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnContactSupport@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnContactSupport@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnContactSupport@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnFeedback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnFeedback.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnFeedback@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnFeedback@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnFeedback@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnFeedback@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnHelpCenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnHelpCenter.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnHelpCenter@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnHelpCenter@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnHelpCenter@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnHelpCenter@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnOpenTickets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnOpenTickets.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnOpenTickets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnOpenTickets@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/btnOpenTickets@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/btnOpenTickets@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/emtpy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/emtpy.png
--------------------------------------------------------------------------------
/Remember The Date/Images/emtpy@2x 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/emtpy@2x 2.png
--------------------------------------------------------------------------------
/Remember The Date/Images/emtpy@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/emtpy@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/helplanding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/helplanding.png
--------------------------------------------------------------------------------
/Remember The Date/Images/helplanding@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/helplanding@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/helplanding@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/helplanding@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoAdd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoAdd.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoAdd@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoAdd@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoAdd@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoAdd@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoAddActive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoAddActive.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoAddActive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoAddActive@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoAddActive@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoAddActive@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoClose.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoClose.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoClose@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoClose@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoClose@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoClose@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHelp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHelp.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHelp@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHelp@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHelp@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHelp@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHelpActive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHelpActive.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHelpActive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHelpActive@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHelpActive@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHelpActive@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHome.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHome@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHome@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHome@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHome@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHomeActive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHomeActive.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHomeActive@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHomeActive@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoHomeActive@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoHomeActive@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoPhoto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoPhoto.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoPhoto@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoPhoto@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoPhoto@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoPhoto@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoUser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoUser.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoUser@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoUser@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icoUser@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icoUser@3x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon100.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon1024.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon114.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon120.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon144.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon152.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon180.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon180.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon29.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon40.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon50.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon512.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon57.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon58.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon72.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon76.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon80.png
--------------------------------------------------------------------------------
/Remember The Date/Images/icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/icon@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/rma_error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/rma_error.png
--------------------------------------------------------------------------------
/Remember The Date/Images/rma_error@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/rma_error@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Images/rma_tick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/rma_tick.png
--------------------------------------------------------------------------------
/Remember The Date/Images/rma_tick@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/sdk_demo_app_ios/6e4d55a1551e17e785bb596df542f7b9f8b45b41/Remember The Date/Images/rma_tick@2x.png
--------------------------------------------------------------------------------
/Remember The Date/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | $(PRODUCT_NAME)
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | $(MARKETING_VERSION)
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | $(CURRENT_PROJECT_VERSION)
25 | LSRequiresIPhoneOS
26 |
27 | NSCameraUsageDescription
28 | We need camera access in order to allow you to capture images and attach them
29 |
30 |
31 | NSPhotoLibraryUsageDescription
32 | We need to access your photos in order to attach them
33 | UIBackgroundModes
34 |
35 | fetch
36 | remote-notification
37 |
38 | UILaunchStoryboardName
39 | Launch Screen
40 | UIMainStoryboardFile
41 | Main
42 | UIRequiredDeviceCapabilities
43 |
44 | armv7
45 |
46 | UIStatusBarHidden
47 |
48 | UIStatusBarStyle
49 | UIStatusBarStyleLightContent
50 | UIStatusBarTintParameters
51 |
52 | UINavigationBar
53 |
54 | Style
55 | UIBarStyleDefault
56 | Translucent
57 |
58 |
59 |
60 | UISupportedInterfaceOrientations
61 |
62 | UIInterfaceOrientationPortrait
63 | UIInterfaceOrientationPortraitUpsideDown
64 | UIInterfaceOrientationLandscapeLeft
65 | UIInterfaceOrientationLandscapeRight
66 |
67 | UISupportedInterfaceOrientations~ipad
68 |
69 | UIInterfaceOrientationPortrait
70 | UIInterfaceOrientationPortraitUpsideDown
71 | UIInterfaceOrientationLandscapeLeft
72 | UIInterfaceOrientationLandscapeRight
73 |
74 | UIUserInterfaceStyle
75 | Light
76 | UIViewControllerBasedStatusBarAppearance
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/Remember The Date/Launch Screen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Remember The Date/Localizable.strings:
--------------------------------------------------------------------------------
1 | /*
2 | Localizable.strings
3 | CoreSDKSample
4 |
5 | Created by RTD on 18/03/2014.
6 | Copyright (c) 2014 RTD. All rights reserved.
7 | */
8 |
9 |
10 | //shared
11 | "ios.ZDKRequests.connectionError" = "No internet connection";
12 |
13 |
14 | // request creation
15 | "ios.ZDKRequests.createRequest.title" = "Contact us";
16 | "ios.ZDKRequests.createRequest.requestSubject" = "RTD SDK request";
17 | "ios.ZDKRequests.createRequest.cancel.button" = "Cancel";
18 | "ios.ZDKRequests.createRequest.submit.button" = "Submit";
19 | "ios.ZDKRequests.createRequest.description.placeholder" = "Description";
20 | "ios.ZDKRequests.createRequest.error.request" = "Your request failed to send";
21 | "ios.ZDKRequests.createRequest.email.placeholder" = "Email (mandatory)";
22 |
23 | // request list
24 | "ios.ZDKRequests.requestList.empty" = "No requests currently open";
25 | "ios.ZDKRequests.requestList.error" = "Failed to get request list";
26 | "ios.ZDKRequests.requestList.retryButton" = "Retry";
27 | "ios.ZDKRequests.requestList.title" = "Request List";
28 |
29 |
30 | // request comments
31 | "ios.ZDKRequests.commentSubmittion.error" = "Failed to send comment";
32 |
33 |
34 | // device details labels
35 | "ios.ZDKKAPI.request.sendFeedback.device.osVersion" = "OS version:";
36 | "ios.ZDKAPI.request.sendFeedback.device.model" = "Model:";
37 | "ios.ZDKAPI.request.sendFeedback.device.location" = "Location Services:";
38 | "ios.ZDKAPI.request.sendFeedback.device.totalMemory" = "Total Device Memory:";
39 | "ios.ZDKAPI.request.sendFeedback.device.freeDiskspace" = "Free Diskspace:";
40 | "ios.ZDKAPI.request.sendFeedback.device.batteryLevel" = "Battery Level:";
41 |
42 | // comment submission
43 | "ios.ZDKRequests.commentEntry.placeholder" = "Comment";
44 |
45 | //comment list
46 | "ios.ZDKRequests.commentList.error" = "Failed to get request list";
47 | "ios.ZDKRequests.commentList.retryButton" = "Retry";
48 |
49 | // help center
50 | "ios.ZDKHelpCenter.support.title" = "Knowledge Base";
51 | "ios.ZDKHelpCenter.searchField.placeholder" = "How can we help?";
52 |
53 | //No results found
54 | "ios.ZDKHelpCenter.noCategories.title" = "No categories found";
55 | "ios.ZDKHelpCenter.noSections.title" = "No sections found";
56 | "ios.ZDKHelpCenter.noArticles.title" = "No articles found";
57 | "ios.ZDKHelpCenter.noSearchResults.title" = "No articles found";
58 |
59 | // Errors
60 | "ios.ZDKHelpCenter.toastRetryButton" = "Retry";
61 | "ios.ZDKHelpCenter.toastOkButton" = "Ok";
62 | "ios.ZDKHelpCenter.categoriesError" = "Error retrieving categories";
63 | "ios.ZDKHelpCenter.sectionsError" = "Error retrieving sections";
64 | "ios.ZDKHelpCenter.articlesError" = "Error retrieving articles";
65 | "ios.ZDKHelpCenter.articleError" = "Error retrieving article";
66 |
67 | //Rate my app
68 | "ios.RMA.dialog.rateApp.button" = "Yes, rate RTD";
69 | "ios.RMA.dialog.sendFeedback.button" = "No, send us Feedback";
70 | "ios.RMA.dialog.dismiss.button" = "Don't ask me again";
71 | "ios.RMA.dialog.header.title" = "Are you happy with RTD?";
72 | "ios.RMA.request.header.title" = "Sorry about that";
73 | "ios.RMA.request.header.description" = "We want to make it better. Please tell us about any issues you're having.";
74 | "ios.RMA.request.success.title" = "Feeback sent.";
75 | "ios.RMA.request.success.description" = "Thank you for contacting RTD. We'll respond as soon as possible.";
76 | "ios.RMA.request.error.title" = "Something went wrong.";
77 | "ios.RMA.request.error.description" = "There was an error. Please try again or go back and edit your feedback.";
78 | "ios.RMA.request.textView.placeholder" = "Describe your issue";
79 | "ios.RMA.request.back.button" = "Back";
80 | "ios.RMA.request.sendFeedback.close.button" = "Close";
81 | "ios.RMA.request.sendFeedback.tryAgain.button" = "Try again";
82 | "ios.RMA.request.sendFeedback.button" = "Send Feedback";
83 | "ios.RMA.request.sendFeedback.subject" = "Rate my app request";
84 | "ios.RMA.request.sendFeedback.additionalSubdomain" = "Subdomain:";
85 | "ios.RMA.request.sendFeedback.success.toastMessage" = "Thank you for contacting RTD";
86 | "ios.RMA.request.sendFeedback.error.toastMessage" = "There was an error, please try again";
87 | "ios.ZDKAPI.request.sendFeedback.device.osVersion" = "OS version:";
88 | "ios.ZDKAPI.request.sendFeedback.device.model" = "Model:";
89 | "ios.ZDKAPI.request.sendFeedback.device.location" = "Location Services:";
90 | "ios.ZDKAPI.request.sendFeedback.device.totalMemory" = "Total Device Memory:";
91 | "ios.ZDKAPI.request.sendFeedback.device.freeDiskspace" = "Free Diskspace:";
92 | "ios.ZDKAPI.request.sendFeedback.device.batteryLevel" = "Battery Level:";
93 |
94 |
--------------------------------------------------------------------------------
/Remember The Date/Remember The Date.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 | com.apple.developer.default-data-protection
8 | NSFileProtectionComplete
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/CreateProfileTableViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // CreateProfileTableViewController.h
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CreateProfileTableViewController : UITableViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/CreateProfileTableViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // CreateProfileTableViewController.m
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import "CreateProfileTableViewController.h"
12 |
13 | extern NSString *APNS_ID_KEY;
14 |
15 | @interface CreateProfileTableViewController ()
16 | @property (weak, nonatomic) IBOutlet UIButton *pictureButton;
17 | @property (weak, nonatomic) IBOutlet UITextField *nameTextField;
18 | @property (weak, nonatomic) IBOutlet UITextField *emailTextField;
19 | @property (weak, nonatomic) IBOutlet UIBarButtonItem *barButton;
20 | @property (weak, nonatomic) IBOutlet UITableViewCell *profileCell;
21 | @property (strong, nonatomic) IBOutlet UITableView *tableView;
22 |
23 | @property (assign, nonatomic) BOOL isSignedIn;
24 | @end
25 |
26 | @implementation CreateProfileTableViewController
27 |
28 | - (void)viewDidLoad {
29 | [super viewDidLoad];
30 | self.tableView.tableFooterView = [[UIView alloc] init];
31 | }
32 |
33 | - (void)viewWillAppear:(BOOL)animated
34 | {
35 | [super viewWillAppear:animated];
36 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
37 | [self.nameTextField setEnabled:NO];
38 | [self.emailTextField setEnabled:NO];
39 |
40 | self.isSignedIn = YES;
41 |
42 | if ([defaults stringForKey:@"userName"] != nil)
43 | {
44 | // We have a profile!
45 | self.nameTextField.text = [defaults stringForKey:@"userName"];
46 | self.emailTextField.text = [defaults stringForKey:@"email"];
47 | [self.nameTextField setTintColor:[[UIColor alloc] initWithRed:0 green:(188.0/255.0) blue:(212.0/255.0) alpha:1.0]];
48 | [self.emailTextField setTintColor:[[UIColor alloc] initWithRed:0 green:(188.0/255.0) blue:(212.0/255.0) alpha:1.0]];
49 |
50 | NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
51 | NSString *documentsDirectory = [paths firstObject];
52 | NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
53 | UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
54 |
55 | if (img != nil) {
56 | [self.pictureButton setImage:img forState:UIControlStateNormal];
57 | self.pictureButton.layer.cornerRadius = CGRectGetWidth(self.pictureButton.frame)/2;
58 | self.pictureButton.layer.masksToBounds = YES;
59 | }
60 |
61 | }
62 |
63 | }
64 | - (IBAction)editButtonTapped:(id)sender {
65 |
66 | if (self.isSignedIn) {
67 | [self.nameTextField setEnabled:YES];
68 | [self.emailTextField setEnabled:YES];
69 | [self.barButton setTitle:@"Done"];
70 | [self.barButton setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17 weight:UIFontWeightSemibold]} forState:UIControlStateNormal];
71 | if (self.nameTextField.text == nil || [self.nameTextField.text isEqualToString: @""]) {
72 | [self.nameTextField becomeFirstResponder];
73 | } else if ([self.nameTextField hasText] && [self.emailTextField hasText]) {
74 | [self.nameTextField becomeFirstResponder];
75 | } else {
76 | [self.emailTextField becomeFirstResponder];
77 | }
78 | self.isSignedIn = NO;
79 | } else {
80 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
81 | [defaults setObject:self.nameTextField.text forKey:@"userName"];
82 | [defaults setObject:self.emailTextField.text forKey:@"email"];
83 | [defaults synchronize];
84 |
85 | id userIdentity = [[ZDKObjCJwt alloc] initWithToken:self.emailTextField.text];
86 | [[ZDKClassicZendesk instance] setIdentity:userIdentity];
87 |
88 | NSString *pushIdentifier = [[NSUserDefaults standardUserDefaults] objectForKey:APNS_ID_KEY];
89 |
90 | //Push is en
91 | if(pushIdentifier) {
92 | NSString * locale = [[NSLocale preferredLanguages] firstObject];
93 |
94 | [[[ZDKClassicPushProvider alloc] initWithZendesk:[ZDKClassicZendesk instance]] registerWithDeviceIdentifier:pushIdentifier locale:locale completion:^(NSString * _Nullable registrationResponse, NSError * _Nullable error) {
95 | if (error) {
96 |
97 | NSLog(@"Couldn't register device: %@. Error: %@ in %@", pushIdentifier, error, self.class);
98 |
99 | } else if (registrationResponse) {
100 |
101 | NSLog(@"Successfully registered device: %@ in %@", pushIdentifier, self.class);
102 | }
103 | }];
104 |
105 | }
106 | self.isSignedIn = YES;
107 | [self.nameTextField setEnabled:NO];
108 | [self.emailTextField setEnabled:NO];
109 | [self.barButton setTitle:@"Edit"];
110 | [self.barButton setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17 weight:UIFontWeightRegular]} forState:UIControlStateNormal];
111 | }
112 | }
113 |
114 | - (void)didReceiveMemoryWarning {
115 | [super didReceiveMemoryWarning];
116 | // Dispose of any resources that can be recreated.
117 | }
118 |
119 | - (IBAction)onPictureButtonTapped:(id)sender {
120 | [self.nameTextField resignFirstResponder];
121 | [self.emailTextField resignFirstResponder];
122 | UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"Select a photo source", @"")
123 | delegate:self
124 | cancelButtonTitle:NSLocalizedString(@"Cancel", @"")
125 | destructiveButtonTitle:nil otherButtonTitles:nil];
126 |
127 | if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
128 | {
129 | [actionSheet addButtonWithTitle:NSLocalizedString(@"Camera", @"")];
130 | }
131 |
132 | [actionSheet addButtonWithTitle:NSLocalizedString(@"Photo Library", @"")];
133 | [actionSheet showInView:self.view];
134 |
135 | }
136 |
137 | #pragma mark - UIActionSheet
138 |
139 | - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
140 | {
141 | if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:@"Camera"])
142 | {
143 | // Camera
144 |
145 | UIImagePickerController *picker = [[UIImagePickerController alloc] init];
146 | picker.delegate = self;
147 | picker.allowsEditing = YES;
148 | picker.sourceType = UIImagePickerControllerSourceTypeCamera;
149 |
150 | //iOS 8 workaround for compability with iPad
151 | if([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0 && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
152 | {
153 | [[NSOperationQueue mainQueue] addOperationWithBlock:^{
154 | [self presentViewController:picker animated:YES completion:^{
155 |
156 | }];
157 | }];
158 | }
159 | else
160 | {
161 | [self presentViewController:picker animated:YES completion:^{
162 |
163 | }];
164 | }
165 |
166 | }
167 | else if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:NSLocalizedString(@"Photo Library", @"")])
168 | {
169 | UIImagePickerController *picker = [[UIImagePickerController alloc] init];
170 | picker.delegate = self;
171 | picker.allowsEditing = YES;
172 | picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
173 |
174 | //iOS 8 workaround for compability with iPad
175 | if([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0 && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
176 | {
177 | [[NSOperationQueue mainQueue] addOperationWithBlock:^{
178 | [self presentViewController:picker animated:YES completion:^{
179 |
180 | }];
181 | }];
182 | }
183 | else
184 | {
185 | [self presentViewController:picker animated:YES completion:^{
186 |
187 | }];
188 | }
189 |
190 | }
191 | }
192 |
193 | #pragma mark - ImagePicker
194 |
195 | - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
196 | {
197 | UIImage *img = [info objectForKey:UIImagePickerControllerEditedImage];
198 | [self.pictureButton setImage:img forState:UIControlStateNormal];
199 |
200 | // Let's save the file
201 | NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
202 | NSString *documentsDirectory = [paths firstObject];
203 | NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
204 | NSData *imageData = UIImagePNGRepresentation(img);
205 | [imageData writeToFile:savedImagePath atomically:NO];
206 | self.pictureButton.layer.cornerRadius = CGRectGetWidth(self.pictureButton.frame)/2;
207 | self.pictureButton.layer.masksToBounds = YES;
208 |
209 | // And dismiss
210 | [picker dismissViewControllerAnimated:YES completion:^{
211 |
212 | }];
213 | }
214 |
215 | @end
216 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/DateTableViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // DateTableViewController.h
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface DateTableViewController : UITableViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/DateTableViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // DateTableViewController.m
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import "DateTableViewController.h"
10 | #import "NewDateViewController.h"
11 |
12 | @interface DateTableViewController ()
13 | @property (nonatomic, strong) NSArray *notificationsArray;
14 | @property (nonatomic, strong) NSDateFormatter *formatter;
15 | @property (nonatomic, strong) NSIndexPath *indexPathToBeDeleted;
16 | @property (nonatomic, strong) UIView *emptyView;
17 | @end
18 |
19 | @implementation DateTableViewController
20 |
21 | - (void)viewDidLoad {
22 | [super viewDidLoad];
23 |
24 | self.formatter = [[NSDateFormatter alloc] init];
25 | [self.formatter setTimeStyle:NSDateFormatterNoStyle];
26 | [self.formatter setDateStyle:NSDateFormatterShortStyle];
27 | [self.formatter setDateFormat:@"EEE, dd MMM, HH:mm"];
28 |
29 | self.emptyView = [[[NSBundle mainBundle] loadNibNamed:@"EmptyView" owner:nil options:nil] firstObject];
30 | self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
31 | self.tableView.backgroundColor = [UIColor colorWithRed:(250.0/255.0) green:(250.0/255.0) blue:(250.0/255.0) alpha:1];
32 | [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
33 | self.emptyView.frame = self.view.frame;
34 | self.emptyView.center = self.view.center;
35 | self.edgesForExtendedLayout = UIRectEdgeBottom;
36 | [self.view addSubview:self.emptyView];
37 | }
38 |
39 | - (void)viewWillAppear:(BOOL)animated
40 | {
41 | [self reloadTableView];
42 | [super viewWillAppear:animated];
43 | }
44 |
45 | - (void)viewDidAppear:(BOOL)animated
46 | {
47 | [super viewDidAppear:animated];
48 | }
49 |
50 | - (void)didReceiveMemoryWarning {
51 | [super didReceiveMemoryWarning];
52 | // Dispose of any resources that can be recreated.
53 | }
54 |
55 | #pragma mark - UITableView
56 |
57 | - (void)reloadTableView
58 | {
59 | UIApplication *application = [UIApplication sharedApplication];
60 | self.notificationsArray = [application scheduledLocalNotifications];
61 | [self.tableView reloadData];
62 | }
63 |
64 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
65 | {
66 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DateCell" forIndexPath:indexPath];
67 |
68 | UILabel *dateName = (UILabel *)[cell viewWithTag:1001];
69 | UILabel *date = (UILabel *)[cell viewWithTag:1002];
70 |
71 | UILocalNotification *currentNotification = [self.notificationsArray objectAtIndex:indexPath.row];
72 |
73 | dateName.text = currentNotification.alertBody;
74 | date.text = [self.formatter stringFromDate:currentNotification.fireDate];
75 |
76 | if (indexPath.row == self.notificationsArray.count -1) {
77 | [cell setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];
78 | } else {
79 | [cell setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 0)];
80 | }
81 |
82 | return cell;
83 | }
84 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
85 | {
86 | NSInteger number = [self.notificationsArray count];
87 | if (number > 0)
88 | {
89 | [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
90 | [self.emptyView removeFromSuperview];
91 | }
92 | else
93 | {
94 | if ([self.emptyView superview] == nil)
95 | {
96 | [self.view addSubview:self.emptyView];
97 | }
98 | [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
99 | }
100 |
101 | return number;
102 | }
103 |
104 | - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
105 | {
106 | return YES;
107 | }
108 |
109 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
110 | {
111 | [tableView deselectRowAtIndexPath:indexPath animated:YES];
112 |
113 | UINavigationController *addController = [self.storyboard instantiateViewControllerWithIdentifier:@"newDate"];
114 | NewDateViewController *newDateVC = [[addController childViewControllers] firstObject];
115 |
116 | newDateVC.notification = [self.notificationsArray objectAtIndex:indexPath.row];
117 |
118 | [self presentViewController:addController animated:YES completion:^{
119 |
120 | }];
121 |
122 | }
123 |
124 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
125 | {
126 | return 70;
127 | }
128 |
129 | #pragma mark - AlertView
130 |
131 | - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
132 | {
133 | if ([[alertView buttonTitleAtIndex:buttonIndex] isEqualToString:NSLocalizedString(@"OK", @"")])
134 | {
135 | UILocalNotification *notification = [self.notificationsArray objectAtIndex:self.indexPathToBeDeleted.row];
136 | [[UIApplication sharedApplication] cancelLocalNotification:notification];
137 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
138 | [self reloadTableView];
139 | });
140 |
141 | self.indexPathToBeDeleted = nil;
142 | }
143 | }
144 |
145 | @end
146 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/NewDateViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // NewDateViewController.h
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NewDateViewController : UIViewController
12 | @property (nonatomic, strong) UILocalNotification *notification;
13 | @end
14 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/NewDateViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // NewDateViewController.m
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import "NewDateViewController.h"
10 |
11 | #define MINUTE 60
12 | #define HOUR 60*MINUTE
13 | #define DAY HOUR*24
14 |
15 | @interface NewDateViewController ()
16 | @property (weak, nonatomic) IBOutlet UITextField *dateNameTextField;
17 | @property (weak, nonatomic) IBOutlet UIDatePicker *datePicker;
18 | @property (weak, nonatomic) IBOutlet UIBarButtonItem *deleteButton;
19 | @property (weak, nonatomic) IBOutlet UITextField *dateText;
20 |
21 | @end
22 |
23 | @implementation NewDateViewController
24 |
25 | - (void)viewDidLoad {
26 | [super viewDidLoad];
27 | NSDate *now = [NSDate date];
28 | self.datePicker.minimumDate = now;
29 | self.datePicker.date = [NSDate dateWithTimeIntervalSinceNow:300.0];
30 | self.datePicker.backgroundColor = [UIColor whiteColor];
31 | [self.dateNameTextField setTintColor:[[UIColor alloc] initWithRed:0 green:(188.0/255.0) blue:(212.0/255.0) alpha:1.0]];
32 | // Do any additional setup after loading the view.
33 | if (self.notification == nil) {
34 | [self.deleteButton setTintColor:[UIColor clearColor]];
35 | [self.deleteButton setEnabled:NO];
36 | }
37 | NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
38 | [formatter setDateFormat:@"EEE, dd MMM, HH:mm"];
39 | [self.dateText setText:[formatter stringFromDate: self.datePicker.date]];
40 | [self.dateText setEnabled:NO];
41 |
42 | }
43 | - (IBAction)setDate:(id)sender {
44 | NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
45 | [formatter setDateFormat:@"EEE, dd MMM, HH:mm"];
46 |
47 | [self.dateText setText:[formatter stringFromDate: self.datePicker.date]];
48 | }
49 |
50 | - (void)viewWillAppear:(BOOL)animated
51 | {
52 | if (self.notification != nil)
53 | {
54 | self.datePicker.date = self.notification.fireDate;
55 | self.dateNameTextField.text = self.notification.alertBody;
56 | }
57 | }
58 |
59 | - (void)viewDidAppear:(BOOL)animated
60 | {
61 | [super viewDidAppear:animated];
62 | [self.dateNameTextField becomeFirstResponder];
63 | }
64 |
65 | - (void)didReceiveMemoryWarning {
66 | [super didReceiveMemoryWarning];
67 | // Dispose of any resources that can be recreated.
68 | }
69 | - (IBAction)deleteTapped:(id)sender {
70 | [[UIApplication sharedApplication] cancelLocalNotification:self.notification];
71 | [self dismissViewControllerAnimated:YES completion:^{}];
72 | }
73 |
74 | - (IBAction)onAddTapped:(id)sender {
75 | if ([self.dateNameTextField.text isEqualToString:@""] == NO) {
76 | [self.dateNameTextField resignFirstResponder];
77 | BOOL isAfter = [self.datePicker.date compare:[NSDate date]] == NSOrderedDescending;
78 |
79 | if (isAfter) {
80 | if (self.notification != nil) {
81 | [[UIApplication sharedApplication] cancelLocalNotification:self.notification];
82 | }
83 |
84 | UILocalNotification *notification = [[UILocalNotification alloc] init];
85 | notification.fireDate = self.datePicker.date;
86 | notification.timeZone = [NSTimeZone localTimeZone];
87 | notification.alertBody = self.dateNameTextField.text;
88 | notification.soundName = UILocalNotificationDefaultSoundName;
89 | [[UIApplication sharedApplication] scheduleLocalNotification:notification];
90 |
91 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
92 | [self dismissViewControllerAnimated:YES completion:^{
93 |
94 | }];
95 | });
96 | } else {
97 | // Tell the user
98 | [[self alertViewWithMessage:NSLocalizedString(@"The date/time should be after, well, now.", @"")] show];
99 | }
100 | } else {
101 | // Tell the user
102 | [[self alertViewWithMessage:NSLocalizedString(@"You must fill a Title", @"")] show];
103 | }
104 | }
105 |
106 | /// Returns an alertView to display
107 | -(UIAlertView*)alertViewWithMessage:(NSString*)string {
108 | return [[UIAlertView alloc] initWithTitle:@"Wait a second..."
109 | message:string
110 | delegate:self
111 | cancelButtonTitle:@"OK, doing it now :)"
112 | otherButtonTitles:nil];
113 | }
114 |
115 |
116 | - (IBAction)onCancelTapped:(id)sender {
117 | [self.dateNameTextField resignFirstResponder];
118 | [self dismissViewControllerAnimated:YES completion:^{}];
119 | }
120 |
121 |
122 | @end
123 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/RequestListViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // RequestListViewController.h
3 | // CoreSDKSample
4 | //
5 | // Created by Zendesk on 09/07/2014.
6 | // Copyright (c) 2014 Zendesk. All rights reserved.
7 | //
8 |
9 |
10 | #import
11 | #import
12 |
13 | @interface RequestListViewController : ZDKUIViewController
14 |
15 | @property (nonatomic, strong) UIScrollView *requestListContainer;
16 | @property (nonatomic, strong) UIView *header;
17 | @property (nonatomic, strong) ZDKRequestListTable *requestList;
18 |
19 |
20 | @end
21 |
22 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/RequestListViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // RequestListViewController.m
3 | // CoreSDKSample
4 | //
5 | // Created by Zendesk on 09/07/2014.
6 | // Copyright (c) 2014 Zendesk. All rights reserved.
7 | //
8 |
9 |
10 | #import "RequestListViewController.h"
11 |
12 |
13 | @implementation RequestListViewController
14 |
15 |
16 | - (void) viewDidLoad
17 | {
18 | [super viewDidLoad];
19 |
20 | self.title = @"My open tickets";
21 | self.contentView.backgroundColor = [UIColor colorWithWhite:0.94f alpha:1.0f];
22 |
23 | // request list header
24 | _header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.contentView.frame.size.width, 25)];
25 | _header.backgroundColor = [UIColor colorWithWhite:0.97f alpha:1.0f];
26 | [self.contentView addSubview:_header];
27 |
28 | float borderHeight = [UIScreen mainScreen].scale == 1.0 ? 1 : 0.5;
29 |
30 | UIView *topBorder = [[UIView alloc] initWithFrame:CGRectMake(0, 0, _header.frame.size.width, borderHeight)];
31 | topBorder.backgroundColor = [UIColor colorWithWhite:0.88f alpha:1.0f];
32 | topBorder.autoresizingMask = UIViewAutoresizingFlexibleWidth;
33 | [_header addSubview:topBorder];
34 |
35 | UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(25.0f, 0, _header.frame.size.width, _header.frame.size.height)];
36 | headerLabel.backgroundColor = [UIColor clearColor];
37 | headerLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth;
38 | headerLabel.text = @"Your tickets";
39 | headerLabel.textColor = [UIColor colorWithWhite:0.33f alpha:1.0f];
40 | headerLabel.font = [UIFont systemFontOfSize:11];
41 | [_header addSubview:headerLabel];
42 |
43 | UIView *lowerBorder = [[UIView alloc] initWithFrame:CGRectMake(0, _header.frame.size.height - borderHeight, _header.frame.size.width, borderHeight)];
44 | lowerBorder.backgroundColor = [UIColor colorWithWhite:0.88f alpha:1.0f];
45 | lowerBorder.autoresizingMask = UIViewAutoresizingFlexibleWidth;
46 | [_header addSubview:lowerBorder];
47 |
48 | // wrap the request list view into a scrollview.
49 | _requestList = [ZDKRequests newRequestListWith:self andSelector:@selector(requestListUpdated)];
50 | _requestListContainer = [[UIScrollView alloc] initWithFrame:CGRectZero];
51 | _requestListContainer.backgroundColor = [UIColor whiteColor];
52 | [self.requestListContainer addSubview:_requestList];
53 |
54 | [self.contentView addSubview:_requestListContainer];
55 |
56 | [self refreshPeriodically];
57 |
58 | }
59 |
60 |
61 | -(void) refreshRequestList {
62 | [_requestList refresh];
63 | }
64 |
65 | -(void) refreshPeriodically {
66 | NSTimer* timer = [NSTimer timerWithTimeInterval:30.0f target:self selector:@selector(refreshRequestList) userInfo:nil repeats:YES];
67 | [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
68 |
69 | }
70 |
71 | - (void) viewWillLayoutSubviews
72 | {
73 | [super viewWillLayoutSubviews];
74 |
75 | [self layoutContent];
76 |
77 | }
78 |
79 |
80 | - (CGFloat)topOfViewOffset
81 | {
82 | CGFloat top = 0;
83 | if ([self respondsToSelector:@selector(topLayoutGuide)])
84 | {
85 | top = self.topLayoutGuide.length;
86 | }
87 | return top;
88 | }
89 |
90 | -(CGFloat) AACStatusBarHeight
91 | {
92 | CGSize statusBarSize = [[UIApplication sharedApplication] statusBarFrame].size;
93 | return MIN(statusBarSize.width, statusBarSize.height);
94 | }
95 |
96 | - (void) layoutContent
97 | {
98 | //[super layoutContent];
99 |
100 | float header_offset = 0;
101 | if ([self.navigationController.navigationBar isTranslucent]) {
102 | header_offset = self.navigationController.navigationBar.frame.size.height + [self AACStatusBarHeight];
103 | }
104 |
105 | _header.frame = CGRectMake(0, header_offset, self.contentView.frame.size.width, _header.frame.size.height);
106 |
107 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
108 | // On layout setup the request list frame as desired, using 'tableHeight' to get the table height
109 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
110 |
111 | float containerOriginY = CGRectGetMaxY(_header.frame);
112 | float containerHeight = self.contentView.frame.size.height - _header.frame.size.height;
113 |
114 | _requestList.frame= CGRectMake(0, 0, self.contentView.frame.size.width, [_requestList tableHeight]);
115 | _requestListContainer.frame = CGRectMake(0, containerOriginY , self.contentView.frame.size.width, containerHeight);
116 | _requestListContainer.contentSize = CGSizeMake(self.contentView.frame.size.width, [_requestList tableHeight]);
117 | }
118 |
119 |
120 | - (void) requestListUpdated
121 | {
122 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
123 | // On receiving a notification the table has been updated, use the new height to arrange your UI
124 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
125 |
126 | //[UIView animateWithDuration:0.25f animations:^{
127 | _requestList.frame= CGRectMake(0, CGRectGetMaxY(_header.frame), self.contentView.frame.size.width, [_requestList tableHeight]);
128 | //}];
129 |
130 | [self.view setNeedsLayout];
131 | }
132 |
133 |
134 | - (void) dealloc
135 | {
136 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
137 | // Remember to remove this class as a notification observer on dealloc
138 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
139 |
140 | [_requestList unregisterForEvents:self];
141 | }
142 |
143 |
144 | @end
145 |
146 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/SaveTheDateTabBarController.h:
--------------------------------------------------------------------------------
1 | //
2 | // SaveTheDateTabBarController.h
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SaveTheDateTabBarController : UITabBarController
12 |
13 | -(void) hideTabbar;
14 | -(void) showTabbar;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/SaveTheDateTabBarController.m:
--------------------------------------------------------------------------------
1 | //
2 | // SaveTheDateTabBarController.m
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import "SaveTheDateTabBarController.h"
10 |
11 | #define BUTTON_ADD_TAG 100
12 |
13 | @interface SaveTheDateTabBarController ()
14 |
15 | @end
16 |
17 | @implementation SaveTheDateTabBarController
18 |
19 | - (void)viewDidLoad
20 | {
21 | [super viewDidLoad];
22 | [self.viewControllers enumerateObjectsUsingBlock:^(UIViewController *vc, NSUInteger idx, BOOL *stop) {
23 | vc.title = nil;
24 | }];
25 | [self.tabBar setClipsToBounds:YES];
26 |
27 | }
28 |
29 |
30 | -(void) hideTabbar {
31 | [self.tabBar setHidden:YES];
32 | [[self.view viewWithTag:BUTTON_ADD_TAG] setHidden:YES];
33 | }
34 |
35 | -(void) showTabbar {
36 | [self.tabBar setHidden:NO];
37 | [[self.view viewWithTag:BUTTON_ADD_TAG] setHidden:NO];
38 | }
39 |
40 | - (void)didTapAdd:(id)sender
41 | {
42 | UINavigationController *addController = [self.storyboard instantiateViewControllerWithIdentifier:@"newDate"];
43 | [self presentViewController:addController animated:YES completion:^{
44 |
45 | }];
46 | }
47 |
48 | - (void)didReceiveMemoryWarning {
49 | [super didReceiveMemoryWarning];
50 | // Dispose of any resources that can be recreated.
51 | }
52 |
53 |
54 | @end
55 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/ZenHelpViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ZenHelpViewController.h
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ZenHelpViewController : UIViewController
12 | @property (weak, nonatomic) IBOutlet UIButton *helpCenterButton;
13 | @property (weak, nonatomic) IBOutlet UIButton *contactUsButton;
14 | @property (weak, nonatomic) IBOutlet UIButton *myTicketsButton;
15 | @property (weak, nonatomic) IBOutlet UIButton *startChatButton;
16 | @property (weak, nonatomic) IBOutlet UILabel *topLabel;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Remember The Date/View Controllers/ZenHelpViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ZenHelpViewController.m
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/10/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 | #import
13 | #import
14 | #import
15 | #import
16 | #import
17 |
18 | #import "ZenHelpViewController.h"
19 | #import "SaveTheDateTabBarController.h"
20 |
21 |
22 | @interface ZenHelpViewController ()
23 | @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
24 | @property (weak, nonatomic) IBOutlet UIView *contentView;
25 | @end
26 |
27 | @implementation ZenHelpViewController
28 |
29 | - (BOOL) setupIdentity {
30 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
31 |
32 | if ([defaults stringForKey:@"userName"]) {
33 | NSString *email = [defaults stringForKey:@"email"];
34 |
35 | if (email.length > 0) {
36 | id userIdentity = [[ZDKObjCJwt alloc] initWithToken:email];
37 | [[ZDKClassicZendesk instance] setIdentity:userIdentity];
38 |
39 | return YES;
40 | }
41 | }
42 | return NO;
43 | }
44 |
45 | -(ZDKRequestUiConfiguration*) setupSupportInformation {
46 | ZDKRequestUiConfiguration * config = [ZDKRequestUiConfiguration new];
47 |
48 | NSString *appVersionString = [NSString stringWithFormat:@"version_%@",
49 | [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]];
50 |
51 | config.ticketFormID = @62609;
52 |
53 | ZDKCustomField *customeFieldApplicationVersion = [[ZDKCustomField alloc] initWithFieldId:@24328555 value:appVersionString];
54 | //OS version
55 | ZDKCustomField *customFieldOSVersion = [[ZDKCustomField alloc] initWithFieldId:@24273979 value:[UIDevice currentDevice].systemVersion];
56 | //Device model
57 | ZDKCustomField *customFieldDeviceModel = [[ZDKCustomField alloc] initWithFieldId:@24273989 value:[ZDKDeviceInfo deviceType]];
58 | //Device memory
59 | NSString *deviceMemory = [NSString stringWithFormat:@"%f MB", [ZDKDeviceInfo totalDeviceMemory]];
60 | ZDKCustomField *customFieldDeviceMemory = [[ZDKCustomField alloc] initWithFieldId:@24273999 value:deviceMemory];
61 | //Device free space
62 | NSString *deviceFreeSpace = [NSString stringWithFormat:@"%f GB", [ZDKDeviceInfo freeDiskspace]];
63 | ZDKCustomField *customFieldDeviceFreeSpace = [[ZDKCustomField alloc] initWithFieldId:@24274009 value:deviceFreeSpace];
64 | //Device battery level
65 | NSString *deviceBatteryLevel = [NSString stringWithFormat:@"%f", [ZDKDeviceInfo batteryLevel]];
66 | ZDKCustomField *customFieldDeviceBatteryLevel = [[ZDKCustomField alloc] initWithFieldId:@24274019 value:deviceBatteryLevel];
67 |
68 | config.customFields = @[customeFieldApplicationVersion,
69 | customFieldOSVersion,
70 | customFieldDeviceModel,
71 | customFieldDeviceMemory,
72 | customFieldDeviceFreeSpace,
73 | customFieldDeviceBatteryLevel];
74 |
75 | config.tags = @[@"ratemyapp_ios", @"paying_customer"];
76 |
77 | return config;
78 | }
79 |
80 | - (void)viewDidLoad {
81 | [super viewDidLoad];
82 |
83 | CGFloat contentViewHeight = self.contentView.frame.size.height;
84 | CGFloat selfHeight = self.view.frame.size.height;
85 | if(selfHeight > contentViewHeight) {
86 | _scrollView.scrollEnabled = NO;
87 | }
88 | self.helpCenterButton.titleLabel.font = [UIFont fontWithName:@"SFPro-Text-Semibold" size:15.0];
89 | self.contactUsButton.titleLabel.font = [UIFont fontWithName:@"SFPro-Text-Semibold" size:15.0];
90 | self.myTicketsButton.titleLabel.font = [UIFont fontWithName:@"SFPro-Text-Semibold" size:15.0];
91 | self.startChatButton.titleLabel.font = [UIFont fontWithName:@"SFPro-Text-Semibold" size:15.0];
92 |
93 | self.helpCenterButton.layer.cornerRadius = 20.0;
94 | self.contactUsButton.layer.cornerRadius = 20.0;
95 | self.myTicketsButton.layer.cornerRadius = 20.0;
96 | self.startChatButton.layer.cornerRadius = 20.0;
97 |
98 | if ((self.traitCollection.horizontalSizeClass == UIUserInterfaceSizeClassRegular)
99 | && (self.traitCollection.verticalSizeClass == UIUserInterfaceSizeClassRegular)) {
100 | self.topLabel.font = [UIFont fontWithName:@"SFProText" size:17.0];
101 | self.topLabel.textAlignment = NSTextAlignmentCenter;
102 | } else {
103 | self.topLabel.font = [UIFont fontWithName:@"SFProText" size:13.0];
104 | }
105 | }
106 |
107 | /// Show support component
108 | - (IBAction)showHelpCenter:(id)sender {
109 |
110 | if ([self setupIdentity]) {
111 | if([ZDKUIUtil isPad]) {
112 | ZDKRequestUiConfiguration * config = [self setupSupportInformation];
113 | UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:[ZDKHelpCenterUi buildHelpCenterOverviewUiWithConfigs:@[config]]];
114 | [self.navigationController presentViewController:navController animated:YES completion:nil];
115 | } else {
116 | [self.navigationController pushViewController:[ZDKHelpCenterUi buildHelpCenterOverviewUi] animated:YES];
117 | }
118 | } else {
119 | UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Wait a second..."
120 | message:@"You need to go in the profile screen and setup your email ..."
121 | delegate:self
122 | cancelButtonTitle:@"OK, doing it now :)"
123 | otherButtonTitles:nil];
124 | [alert show];
125 | }
126 |
127 | }
128 |
129 | /// Request Creation component
130 | - (IBAction)contactSupport:(id)sender {
131 |
132 | if ([self setupIdentity]) {
133 |
134 | self.navigationController.modalPresentationStyle = UIModalPresentationOverCurrentContext;
135 |
136 | ZDKRequestUiConfiguration *config = [self setupSupportInformation];
137 | ZDKAnswerBotEngine *abEngine = [ZDKAnswerBotEngine engineAndReturnError:nil];
138 | ZDKSupportEngine *supportEngine = [ZDKSupportEngine engineAndReturnError:nil];
139 | NSArray> *engines = @[(id )abEngine, (id )supportEngine];
140 | UIViewController *requestController = [[ZDKClassicMessaging instance] buildUIWithEngines:engines configs:@[config] error:nil];
141 |
142 | [self.navigationController pushViewController:requestController animated:YES];
143 |
144 | } else {
145 | [[self alertView] show];
146 | }
147 |
148 | }
149 |
150 | /// Show Request List component
151 | - (IBAction)showMyRequests:(id)sender {
152 |
153 | if ([self setupIdentity]) {
154 | ZDKRequestUiConfiguration * config = [self setupSupportInformation];
155 | UIViewController * requestListController = [ZDKRequestUi buildRequestListWith:@[config]];
156 | UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:requestListController];
157 |
158 | if([ZDKUIUtil isPad]) {
159 |
160 | self.navigationController.modalPresentationStyle = UIModalPresentationFormSheet;
161 | navController.modalPresentationStyle = UIModalPresentationFormSheet;
162 |
163 | [self.navigationController presentViewController:navController animated:YES completion:nil];
164 |
165 | } else {
166 | self.navigationController.modalPresentationStyle = UIModalPresentationOverCurrentContext;
167 | [self.navigationController pushViewController:requestListController animated:YES];
168 | }
169 | } else {
170 | [[self alertView] show];
171 | }
172 |
173 | }
174 |
175 | /// Show Chat component
176 | - (IBAction)showChat:(id)sender {
177 | // update the visitor info before starting the chat
178 | NSString *visitorEmail = [self userEmail];
179 |
180 | if (visitorEmail) {
181 | ZDKVisitorInfo *visitorInfo = [[ZDKVisitorInfo alloc] initWithName:[self userName]
182 | email:[self userEmail]
183 | phoneNumber:@""];
184 | [[[ZDKChat instance] profileProvider] setVisitorInfo:visitorInfo
185 | completion:^(ZDKVisitorInfo *visitor, NSError *error) { }];
186 | ZDKChat.instance.configuration.visitorInfo = visitorInfo;
187 | }
188 | ZDKChatConfiguration *config = [ZDKChatConfiguration new];
189 | config.preChatFormConfiguration = [[ZDKChatFormConfiguration alloc] initWithName:ZDKFormFieldStatusOptional
190 | email:ZDKFormFieldStatusOptional
191 | phoneNumber:ZDKFormFieldStatusHidden
192 | department:ZDKFormFieldStatusOptional];
193 | ZDKClassicMessagingConfiguration *messagingConfig = [ZDKClassicMessagingConfiguration new];
194 | messagingConfig.isMultilineResponseOptionsEnabled = YES;
195 | messagingConfig.name = @"RTD2";
196 | ZDKAnswerBotEngine *abEngine = [ZDKAnswerBotEngine engineAndReturnError:nil];
197 | ZDKChatEngine *chatEngine = [ZDKChatEngine engineAndReturnError:nil];
198 | NSArray> *engines = @[(id )abEngine, (id )chatEngine];
199 |
200 | UIViewController *viewController = [[ZDKClassicMessaging instance] buildUIWithEngines:engines configs:@[messagingConfig, config] error:nil];
201 |
202 | // present as new modal using global pre-chat config and whatever visitor info has been persisted
203 | [self.navigationController pushViewController:viewController animated:YES];
204 | }
205 |
206 | -(NSString *) userEmail {
207 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
208 | if ([defaults stringForKey:@"userName"] != nil) {
209 | NSString* email = [defaults stringForKey:@"email"];
210 | if ([email length] > 0) {
211 | return email;
212 | }
213 | }
214 | return nil;
215 | }
216 |
217 | - (NSString *) userName {
218 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
219 | return [defaults stringForKey:@"userName"];
220 | }
221 |
222 | -(void)viewWillAppear:(BOOL)animated {
223 | [super viewWillAppear:animated];
224 |
225 | //
226 | // Setup the support information
227 | //
228 | [self setupSupportInformation];
229 |
230 | SaveTheDateTabBarController * tabbarController = (SaveTheDateTabBarController*)self.tabBarController;
231 | [tabbarController showTabbar];
232 | }
233 |
234 | /// Returns an alertView to display
235 | -(UIAlertView*)alertView {
236 | return [[UIAlertView alloc] initWithTitle:@"Wait a second..."
237 | message:@"You need to go in the profile screen and setup your email ..."
238 | delegate:self
239 | cancelButtonTitle:@"OK, doing it now :)"
240 | otherButtonTitles:nil];
241 | }
242 |
243 | - (void)didReceiveMemoryWarning {
244 | [super didReceiveMemoryWarning];
245 | }
246 |
247 | @end
248 |
--------------------------------------------------------------------------------
/Remember The Date/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Remember The Date
4 | //
5 | // Created by Zendesk on 10/9/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Remember The DateTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Remember The DateTests/Remember_The_DateTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // Remember_The_DateTests.m
3 | // Remember The DateTests
4 | //
5 | // Created by Zendesk on 10/9/14.
6 | // Copyright (c) 2014 RememberTheDate. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface Remember_The_DateTests : XCTestCase
13 |
14 | @end
15 |
16 | @implementation Remember_The_DateTests
17 |
18 | - (void)setUp {
19 | [super setUp];
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 | }
22 |
23 | - (void)tearDown {
24 | // Put teardown code here. This method is called after the invocation of each test method in the class.
25 | [super tearDown];
26 | }
27 |
28 | - (void)testExample {
29 | // This is an example of a functional test case.
30 | XCTAssert(YES, @"Pass");
31 | }
32 |
33 | - (void)testPerformanceExample {
34 | // This is an example of a performance test case.
35 | [self measureBlock:^{
36 | // Put the code you want to measure the time of here.
37 | }];
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/fastlane/Appfile:
--------------------------------------------------------------------------------
1 | app_identifier("com.zendesk.mobilesdk.rememberthedate")
2 |
--------------------------------------------------------------------------------
/fastlane/Fastfile:
--------------------------------------------------------------------------------
1 |
2 | default_platform(:ios)
3 | setup_travis
4 |
5 | platform :ios do
6 | desc "Build the project for running tests."
7 | lane :build_for_testing do
8 | scan(build_for_testing: true)
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/scripts/travis.sh:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 |
3 | if [[ "$1" == "before_install" ]]; then
4 | gem update --system
5 | gem install bundler
6 | exit $?
7 | elif [[ "$1" == "install" ]]; then
8 | bundle install
9 | exit $?
10 | elif [[ "$1" == "build" ]]; then
11 | bundle exec fastlane build_for_testing
12 | exit $?
13 | else
14 | exit 1
15 | fi
16 |
--------------------------------------------------------------------------------