Other Classes

The following classes are available globally.

  • VOActionSheetItem represents one item inside a VOActionSheetViewController.

    See more

    Declaration

    Objective-C

    @interface VOActionSheetItem : NSObject

    Swift

    class VOActionSheetItem : NSObject
  • VOActionSheetViewController is a custom action sheet used by the SDK. It works similarly to a UIAlertController with style UIAlertControllerStyleActionSheet. Each action sheet item is an action in the controller. If there are too many actions to fit on screen, the actions will become scrollable. A cancel action is automatically added.

    See more

    Declaration

    Objective-C

    @interface VOActionSheetViewController : UIViewController

    Swift

    class VOActionSheetViewController : UIViewController
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface VOAddNoteViewController : UIViewController <VOPersonalizationOptionViewControllerProtocol, VORevealPersonalizationViewControllerProtocol>
    
    /**
     Default instantiation method for `VOAddNoteViewController`
     
     @param personalizationOption - contains the configuration options for the note creation
     @param createManager - the manager responsible for handling the flow management in the creation process.
     @param createFlowDelegate - the object responsible for implementing VOAddNoteViewController callbacks
     @return an instance of VOAddNoteViewController
     **/
    + (instancetype)viewControllerWithPersonalizationOption:(VOPersonalizationOption *)personalizationOption
                                              createManager:(VOVoucherCreationManager *)createManager
                                         createFlowDelegate:(nullable id<VOVoucherCreationFlowDelegate>)createFlowDelegate;
    
    /**
     Overloaded instantiation method for 'VOAddNoteViewController' - used to hande the case when a specific note is to be edited
     
     @param personalizationOption - contains the configuration options for the note creation
     @param createManager - the manager responsible for handling the flow management in the creation process.
     @param createFlowDelegate - the object responsible for implementing VOAddNoteViewController callbacks
     @param note - the note to be edited; if this is set a specific note will be loaded, otherwise all notes will be loaded
     @return an instance of VOAddNoteViewController
     **/
    + (instancetype)viewControllerWithPersonalizationOption:(VOPersonalizationOption *)personalizationOption
                               createManager:(VOVoucherCreationManager *)createManager
                          createFlowDelegate:(nullable id<VOVoucherCreationFlowDelegate>)createFlowDelegate
                                  toBeEdited:(nullable VONoteMedia *)note;
    
    @end

    Swift

    class VOAddNoteViewController : UIViewController, VOPersonalizationOptionViewControllerProtocol, VORevealPersonalizationViewControllerProtocol
  • VOButtonTheme is used to theme all buttons of the application.

    See more

    Declaration

    Objective-C

    @interface VOButtonTheme : NSObject <NSCopying>

    Swift

    class VOButtonTheme : NSObject, NSCopying
  • VOConfig is the global config for the VouchrSDK.

    Note

    serverUrlString and sdkIdString must be set or the application will throw an exception when the VOEngine is built.

    These properties can be implemented in code or by plist.

    By Code: Use config initializer and set the properties manually before passing it to the VOEngine.

    By Plist: Add VOConfig.plist and use the defaultConfig initializer or add .plist and use the configWithContentsOfFile:<path_to_plist> initializer

    See more

    Declaration

    Objective-C

    @interface VOConfig : NSObject

    Swift

    class VOConfig : NSObject
  • VOCreationItemView is the view that is dropped into the EnvelopeView of the VoucherCreationViewController. It represents a chosen PersonalizationOption object by the creating User.

    See more

    Declaration

    Objective-C

    @interface VOCreationItemView : UIView

    Swift

    class VOCreationItemView : UIView
  • VOCredential is used to pass credentials to the Vouchr Server when logging in and authenticating VOUsers.

    See more

    Declaration

    Objective-C

    @interface VOCredential : NSObject

    Swift

    class VOCredential : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface VODialogView : UIView <VODialogViewProtocol>
    
    + (instancetype)vouchrDialogWithVouchrTheme:(VOTheme *)vouchrTheme;
    - (void)keyboardWillShow:(NSNotification *)notification;
    - (void)keyboardWillHide:(NSNotification *)notification;
    
    @end

    Swift

    class VODialogView : UIView, VODialogViewProtocol
  • VODiscoverScreenBuilder is used only to help construct the VODiscoverScreenViewController and should not be initialized directly. Instances of these properties should be instantiated and set in the VOEngine vouchrEngineWithBuilder: method.

    See more

    Declaration

    Objective-C

    @interface VODiscoverScreenBuilder : NSObject

    Swift

    class VODiscoverScreenBuilder : NSObject
  • VouchrEngine is a singleton that persists and provides access to core manager dependencies.

    Note

    Usage Notes Initialize the VOEngine using the vouchrEngineWithBuilder: method. Example: VOEngine *vouchrEngine = [VOEngine vouchrEngineWithBuilder:^(VouchrEngineBuilder *builder) { builder.cacheManager = [VOCacheManager new]; builder.networkManager = [VONetworkManager new]; builder.userManager = [[VOUserManager alloc] initWithCacheManager:builder.cacheManager networkManager:builder.networkManager persistManager:nil]; }];
    See more

    Declaration

    Objective-C

    @interface VOEngine : NSObject

    Swift

    class VOEngine : NSObject
  • VOError will be returned inside the userInfo of an NSError on errors from the VouchrServer when using the VONetworkManager to make network calls.

    It can be accessed from the NSError:

    VOError *vouchrError = error.userInfo[@"message"];
    
    See more

    Declaration

    Objective-C

    @interface VOError : NSObject

    Swift

    class VOError : NSObject
  • VOFeedVoucher is a light version of the VOVoucher. It is used for paging through long lists of vouchers such as the user’s sent and recieved vouchers.

    See more

    Declaration

    Objective-C

    @interface VOFeedVoucher : NSObject

    Swift

    class VOFeedVoucher : NSObject
  • VOFontTheme is used to theme all text in the application.

    See more

    Declaration

    Objective-C

    @interface VOFontTheme : NSObject <NSCopying>

    Swift

    class VOFontTheme : NSObject, NSCopying
  • VOFullScreenImageEditViewController is the screen responsible for displaying a selected image and all photo editing options. It allows users to interact with and customize a selected image.

    See more

    Declaration

    Objective-C

    @interface VOFullScreenImageEditViewController : UIViewController

    Swift

    class VOFullScreenImageEditViewController : UIViewController
  • VOGameData contains all the data for a game / challenge. It contains data that will stay static (eg. the title of the game), and data that will change based on which VOVoucher it is in (eg. scoreToWin).

    See more

    Declaration

    Objective-C

    @interface VOGameData : NSObject

    Swift

    class VOGameData : NSObject
  • VOGameDifficulty represents a difficulty a specific VOGameData is to be played at.

    See more

    Declaration

    Objective-C

    @interface VOGameDifficulty : NSObject

    Swift

    class VOGameDifficulty : NSObject
  • VOGameFactory produces UIViewControllers that conform to GameViewControllerProtocol for the specified types. VOGameFactory communicates with the VOVoucherCreationFlowDelegate and delegates outside the SDK if necessary.

    See more

    Declaration

    Objective-C

    @interface VOGameFactory : NSObject

    Swift

    class VOGameFactory : NSObject
  • VOGoogleImageSearchAgent follows the VOSearchAgent protocol to get image’s from Google Custom Search. In increments of 10, it will return 100 or less images on a successful search, depending on the maxSearchResult property of the VOPhotoPersonalizationOption. It searches with safeSearch set to high.

    See more

    Declaration

    Objective-C

    @interface VOGoogleImageSearchAgent : NSObject <VOSearchAgent>

    Swift

    class VOGoogleImageSearchAgent : NSObject, VOSearchAgent
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface VOImages : NSObject
    
    
    #pragma mark - Common
    
    @property (nonatomic) UIImage *commonBackButtonImage;
    @property (nonatomic) UIImage *commonCloseButtonImage; //game banner is different than the rest
    @property (nonatomic) UIImage *commonSelectedCheckmarkImage;
    @property (nonatomic) UIImage *commonEmptyProfileImage;
    @property (nonatomic) UIImage *commonPlayButtonImage;
    @property (nonatomic) UIImage *commonPauseButtonImage;
    @property (nonatomic) UIImage *commonStopButtonImage;
    @property (nonatomic) UIImage *commonSearchButtonImage;
    @property (nonatomic) UIImage *commonHelpButtonImage;
    @property (nonatomic) UIImage *commonAddButtonImage;
    @property (nonatomic) UIImage *commonEditButtonImage;
    @property (nonatomic) UIImage *commonChevronDownImage;
    @property (nonatomic) UIImage *commonChevronDetailImage;
    @property (nonatomic) UIImage *commonYoutubeLogoDetail;
    @property (nonatomic) UIImage *commonVideoFilmstripImage;
    @property (nonatomic) UIImage *commonNoteBackgroundImage;
    @property (nonatomic) UIImage *commonDefaultWrappingPaperImage;
    @property (nonatomic) UIImage *commonCheckmarkImage;
    @property (nonatomic) UIImage *commonRefreshImage;
    
    #pragma mark - Action Sheet
    
    @property (nonatomic) UIImage *actionSheetRecordedVideoMenuIconImage;
    @property (nonatomic) UIImage *actionSheetYoutubeMenuIconImage;
    @property (nonatomic) UIImage *actionSheetCameraRollIconImage;
    @property (nonatomic) UIImage *actionSheetTakePhotoIconImage;
    @property (nonatomic) UIImage *actionSheetGoogleImagesIconImage;
    
    
    #pragma mark - Payment Summary Screen
    
    @property (nonatomic) UIImage *paymentSummaryAmexCardImage;
    @property (nonatomic) UIImage *paymentSummaryDiscoverCardImage;
    @property (nonatomic) UIImage *paymentSummaryMastercardCardImage;
    @property (nonatomic) UIImage *paymentSummaryVisaCardImage;
    @property (nonatomic) UIImage *paymentSummaryPrivacyIconImage;
    @property (nonatomic) UIImage *paymentSummaryPrivacyFriendsIconImage;
    
    
    #pragma mark - Creation Screen
    
    @property (nonatomic) UIImage *personalizationLockedIconImage;
    @property (nonatomic) UIImage *creationScreenBackgroundImage;
    @property (nonatomic) UIImage *creationScreenDeleteImage;
    @property (nonatomic) UIImage *creationPackageRotatingEffectImage;
    
    
    #pragma mark - Recipient Screen
    
    @property (nonatomic) UIImage *recipientScreenPrimaryBackgroundTextureImage;
    @property (nonatomic) UIImage *recipientScreenSecondaryBackgroundTextureImage;
    @property (nonatomic) UIImage *recipientScreenUserSelectedCheckboxIconImage;
    @property (nonatomic) UIImage *recipientScreenUserUnselectedCheckboxIconImage;
    @property (nonatomic) UIImage *recipientScreenSelectFriendIconImage;
    @property (nonatomic) UIImage *recipientScreenSelectContestModeIconImage;
    @property (nonatomic) UIImage *recipientScreenContestModeIconImage;
    
    
    #pragma mark - Challenge Screen
    
    @property (nonatomic) UIImage *addChallengeTutorialNextButtonImage;
    @property (nonatomic) UIImage *challengeScoreReachedWinBannerImage;
    
    
    #pragma mark - Merchant Screen
    
    @property (nonatomic) UIImage *merchantScreenGiftCardBackgroundImage;
    @property (nonatomic) UIImage *merchantScreenDisclaimerTextBottomGradientImage;
    
    
    #pragma mark - Discovery Screen
    
    @property (nonatomic) UIImage *discoverScreenBackgroundImage;
    @property (nonatomic) UIImage *discoverScreenHeaderImage; //currently in builder
    @property (nonatomic) UIImage *discoverScreenAddButtonImage;
    @property (nonatomic) UIImage *discoverScreenDeleteButtonImage;
    @property (nonatomic) UIImage *discoverScreenPlayVideoButtonImage;
    @property (nonatomic) UIImage *discoverScreenReplayVideoButtonImage;
    @property (nonatomic) UIImage *discoverScreenSoundOnIconImage;
    @property (nonatomic) UIImage *discoverScreenSoundOffIconImage;
    
    
    #pragma mark - Reveal Screen
    
    @property (nonatomic) UIImage *revealScreenBackgroundImage;
    @property (nonatomic) UIImage *revealScreenConfettiShape1Image;
    @property (nonatomic) UIImage *revealScreenConfettiShape2Image;
    @property (nonatomic) UIImage *revealScreenConfettiShape3Image;
    @property (nonatomic) UIImage *revealScreenConfettiShape4Image;
    
    
    #pragma mark - Camera Screen
    
    @property (nonatomic) UIImage *cameraPositionToggleButtonImage;
    
    
    @end

    Swift

    class VOImages : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface VOLoadingView : UIView <VOLoadingViewProtocol>
    
    /**
     Convenience initializer
     @param color - the color of the activity indicator view.
     */
    - (instancetype)initWithColor:(UIColor *)color;
    
    @end

    Swift

    class VOLoadingView : UIView, VOLoadingViewProtocol
  • VOMerchants represent a personalization type that is of monetary value (eg. Gift cards, Money Transfers).

    See more

    Declaration

    Objective-C

    @interface VOMerchant : NSObject <NSCoding>

    Swift

    class VOMerchant : NSObject, NSCoding
  • VOMerchantProduct represents a product inside a VOMerchant. Eg. Xbox 3 month membership gift card.

    See more

    Declaration

    Objective-C

    @interface VOMerchantProduct : NSObject

    Swift

    class VOMerchantProduct : NSObject
  • VOMutableVoucher is the mutable model that represents the bundle of personalizations.

    See more

    Declaration

    Objective-C

    @interface VOMutableVoucher : VOVoucher

    Swift

    class VOMutableVoucher : VOVoucher
  • VOPaymentInfo contains data related to a part of the payment process.

    See more

    Declaration

    Objective-C

    @interface VOPaymentInfo : NSObject

    Swift

    class VOPaymentInfo : NSObject
  • VOPaymentMerchantInfo contains all the information related to a specific payment object inside a VOMerchant.

    See more

    Declaration

    Objective-C

    @interface VOPaymentMerchantInfo : NSObject

    Swift

    class VOPaymentMerchantInfo : NSObject
  • VOPersonalizationOption represents a VOVoucher customization which will be available to the user in the voucher creation view controller. A VOPersonalizationOption should exist for each personalization the user allowed access to.

    Note

    VOPersonalizationOption is used as a base class, instantiate an existing subclass (ex. VOPhotoPersonalizationOption) for use.

    Note

    Any properties that are not set will have default values set.
    See more

    Declaration

    Objective-C

    @interface VOPersonalizationOption : NSObject

    Swift

    class VOPersonalizationOption : NSObject
  • PersonalizationOptionBuilder is used only to help construct the VOPersonalizationOption and should not be initialized directly. Instances of these properties should be instantiated and set in the VOPersonalizationOption personalizationOptionWithBuilder: method.

    See more

    Declaration

    Objective-C

    @interface VOPersonalizationOptionBuilder : NSObject

    Swift

    class VOPersonalizationOptionBuilder : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface VOPromo : NSObject
    
    typedef NS_ENUM(NSInteger, VOPromoStatus){
        VOPromoStatusUnknown,
        VOPromoStatusActive,
        VOPromoStatusCancelled,
        VOPromoStatusUnstarted,
        VOPromoStatusExpired,
        VOPromoStatusExhausted,
        VOPromoStatusClaimed,
        VOPromoStatusRequired,
    };
    
    typedef NS_ENUM(NSInteger, VOPromoType){
        VOPromoTypeUnknown,
        VOPromoTypeOffers,
        VOPromoTypeSponsoredGift,
        VOPromoTypeReward
    };
    
    @property (nonatomic) NSString * promoId;
    @property (nonatomic) NSString * code;
    
    @property (nonatomic) NSString * title;
    @property (nonatomic) double amount;
    @property (nonatomic) NSString * formattedAmount;
    @property (nonatomic) NSString * currency;
    @property (nonatomic) NSString * photoUrl;
    @property (nonatomic) NSString * hashTag;
    @property (nonatomic) NSString * promoDescription;
    @property (nonatomic) NSString * shareMessage;
    @property (nonatomic) VOPromoType type;
    @property (nonatomic) VOMerchant * merchant; // Who is sponsoring the promo
    
    @property (nonatomic) VOGameData * gameData;
    @property (nonatomic) VOWrappingPaperMedia * wrappingPaper;
    
    @property (nonatomic) VOPromoStatus status;         //status relative to user (claimed, upgrade etc)
    @property (nonatomic) VOPromoStatus ongoingStatus;  //status of promo apart from user
    
    @property (nonatomic) NSInteger limit;
    @property (nonatomic) NSDate * dateStarts;
    @property (nonatomic) NSDate * dateEnds;
    @property (nonatomic) NSDate * dateClaimable;
    
    @property (nonatomic) NSString *errorDisplayTitle;
    @property (nonatomic) NSString *errorDisplayMessage;
    
    @property (nonatomic) BOOL isSurpriiseMode;
    
    @property (nonatomic) NSArray <VOVoucherMedia *> *medias;
    
    + (VOPromo*)promoFromNSDictionary:(NSDictionary*)dictionary;
    - (NSDictionary *)dictionaryRepresentation;
    
    @end

    Swift

    class VOPromo : NSObject
  • VOSealedVoucherView is a sealed VOEnvelopeView. It shows ribbons and a seal overtop of an VOEnvelopeView.

    See more

    Declaration

    Objective-C

    @interface VOSealedVoucherView : UIView

    Swift

    class VOSealedVoucherView : UIView
  • VOSimpleUser is a simplified, mutable version of VOUser that is used as part of registration or when a full VOUser is not required.

    See more

    Declaration

    Objective-C

    @interface VOSimpleUser : NSObject

    Swift

    class VOSimpleUser : NSObject
  • Manages an array of view controller instances, and presents them within an Android style tab strip interface.

    The view controllers specified in tabViewControllers are presented within a UINavigationController. Switching tabs resets this navigation controller’s root view controller to the appropriate entry in tabViewControllers. The titleView of each root view controller’s navigationItem is managed by this controller, and is used to host the segmented control that presents the tab strip interface.

    Titles for the tabs are taken from each view controller’s title attribute.

    See more

    Declaration

    Objective-C

    @interface VOTabStripContainerViewController : UINavigationController

    Swift

    class VOTabStripContainerViewController : UINavigationController
  • VOTheme is used to theme all views of the application. See the VouchrStyleGuide for how the theming is mapped to each view and style recommendations.

    See more

    Declaration

    Objective-C

    @interface VOTheme : NSObject <NSCopying>

    Swift

    class VOTheme : NSObject, NSCopying
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface VOUI : NSObject
    
    @property (nonatomic, weak, nullable) id<VOUIDelegate> delegate;
    
    + (instancetype)instance;
    
    - (id<VOGiftPackageFactory>)makeGiftPackageFactory;
    
    @end

    Swift

    class VOUI : NSObject
  • VOUser model for the VouchrSDK. Users are used to identify the logged in user and typically gifts are sent to a VOUser(s).

    See more

    Declaration

    Objective-C

    @interface VOUser : NSObject <NSCoding, NSCopying>

    Swift

    class VOUser : NSObject, NSCoding, NSCopying
  • VOUserNetwork is a model to represent the different networks a user has connected with.

    See more

    Declaration

    Objective-C

    @interface VOUserNetwork : NSObject

    Swift

    class VOUserNetwork : NSObject
  • VOVoucher is the model that encompases all components of a ‘gift’. This class is immutable. Use VOMutableVoucher if you need to change values.

    See more

    Declaration

    Objective-C

    @interface VOVoucher : NSObject <NSCoding>

    Swift

    class VOVoucher : NSObject, NSCoding
  • VOVoucherCreationFlowCoordinator is an object that initiates the creation of a VOVoucher.

    See more

    Declaration

    Objective-C

    @interface VOVoucherCreationFlowCoordinator : NSObject

    Swift

    class VOVoucherCreationFlowCoordinator : NSObject
  • VOVoucherCreationManager is an object that encapsulates all dependencies necessary to facilitate the creation of a new VOVoucher.

    See more

    Declaration

    Objective-C

    @interface VOVoucherCreationManager : NSObject

    Swift

    class VOVoucherCreationManager : NSObject
  • VOVoucherMedia is the model for all Media items inside of a VOVoucher. It represents all of the different Media types: Image - Any kind of photo (eg. png, jpg). Animation - Any kind of animated photo (eg. gif). Sound - Any kind of sound (eg. mp3). Youtube - A youtube video. Video - Any kind of video (eg. m4a). Note - Any kind of text.

    See more

    Declaration

    Objective-C

    @interface VOVoucherMedia : NSObject <NSCoding>

    Swift

    class VOVoucherMedia : NSObject, NSCoding
  • VOVoucherPayment contains all payment information including source, destination, and redemption information. Each VOUser requesting a VOVoucher will receive different VOVoucherPayment information depending on their association of the VOVoucher.

    See more

    Declaration

    Objective-C

    @interface VOVoucherPayment : NSObject

    Swift

    class VOVoucherPayment : NSObject
  • VOVoucherRevealFlowCoordinator is responsible for the reveal setup and navigation.

    See more

    Declaration

    Objective-C

    @interface VOVoucherRevealFlowCoordinator : NSObject

    Swift

    class VOVoucherRevealFlowCoordinator : NSObject
  • VOVoucherRevealManager is an object that encapsulates all dependencies necessary to facilitate the reveal of a VOVoucher.

    See more

    Declaration

    Objective-C

    @interface VOVoucherRevealManager : NSObject

    Swift

    class VOVoucherRevealManager : NSObject
  • VoucherRevealManagerBuilder is used to construct the VOVoucherRevealManager and should not be initialized directly.

    See more

    Declaration

    Objective-C

    @interface VoucherRevealManagerBuilder : NSObject

    Swift

    class VoucherRevealManagerBuilder : NSObject
  • VOVoucherRevealViewController is the default reveal view controller for showing the contents of a VOVoucher. The reaveal view controller can be used for previewing, contributing and claiming a VOVoucher.

    See more

    Declaration

    Objective-C

    @interface VOVoucherRevealViewController : UIViewController

    Swift

    class VOVoucherRevealViewController : UIViewController
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface VOVoucherTemplate : NSObject
    
    @property (nonatomic) NSURL *headerImageURL;
    @property (nonatomic) NSString *headerImageAlt;
    @property (nonatomic) NSString *headerText;
    @property (nonatomic) NSString *headerDetails;
    @property (nonatomic) NSURL *backgroundPhotoURL;
    @property (nonatomic) NSDate *dateClaimable;
    @property (nonatomic) NSString *title;
    @property (nonatomic) NSArray<NSDictionary *> *medias;
    @property (nonatomic) VOWrappingPaperMedia *wrappingPaper;
    @property (nonatomic) VOMerchant *merchant;
    @property (nonatomic) double merchantAmount;
    @property (nonatomic) VOGameData *gameData;
    @property (nonatomic) long long templateId;
    @property (nonatomic) long long templateCategoryId;
    @property (nonatomic) BOOL hasSeen;
    
    + (VOVoucherTemplate *)voucherTemplateFromDictionary:(NSDictionary *)dictionary;
    - (VOMutableVoucher *)makeMutableVoucher;
    
    @end

    Swift

    class VOVoucherTemplate : NSObject
  • VOWrappingPaperCategory is the model for representing a collection of like WrappingPapers.

    See more

    Declaration

    Objective-C

    @interface VOWrappingPaperCategory : NSObject

    Swift

    class VOWrappingPaperCategory : NSObject