├── .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 | --------------------------------------------------------------------------------