Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mag loft feature storyboard #497

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
31 changes: 24 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
.DS_Store
Baker.xcodeproj/*.mode1v3
Baker.xcodeproj/*.pbxuser
Baker.xcodeproj/xcuserdata
Baker.xcodeproj/project.xcworkspace/xcuserdata
Baker.xcodeproj/project.xcworkspace/xcshareddata
build/
ld/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
*.DS_Store
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
Pods/
Binary file added ADMag.bundle/ADMagModel.mom
Binary file not shown.
Binary file added ADMag.bundle/Info.plist
Binary file not shown.
1 change: 1 addition & 0 deletions ADMag.framework/ADMag
1 change: 1 addition & 0 deletions ADMag.framework/Headers
Binary file added ADMag.framework/Versions/A/ADMag
Binary file not shown.
120 changes: 120 additions & 0 deletions ADMag.framework/Versions/A/Headers/ADMag.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
//
// ADMag.h
// ADMag
//
// Created by Dimas Gabriel on 11/28/14.
// Copyright (c) 2014 ADMag. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ADMagWebView.h"

/**
* Esta classe é responsável por todas as operações necessárias para baixar, fazer cache e exibir
* os ADs (encartes) de um determinado issue.
*/
@interface ADMag : NSObject

/**
* Este método é responsável por inicar a SDK e deve, obrigatoriamente, ser chamado antes de qualquer
* outro método da SDK. Você pode chamar este método no application:didFinishLaunchingWithOptions:
* do seu AppDelegate.
*
* @param apiKey A API Key disponibilizada para você.
*/
+ (void) startWithAPIKey:(NSString *)apiKey;

/**
* Este método de classe retorna uma instância compartilhada para acesso aos métodos da SDK.
* Sempre utilize esta instância para acessar a SDK.
*
* @return Retorna uma instância da SDK, do tipo ADMag.
*/
+ (instancetype)sharedInstance;

// Publications

/**
* Adiciona um pubilicação. Deve ser chamado antes de fazer o cache dos ADs.
*
* @param publicationId Um inteiro encapsulado em um NSNumber representando o ID de uma determinada publicação.
*/
- (void) addPublication:(NSNumber *)publicationId;

/**
* Adiciona um conjunto de publicações, de forma semelhante ao método addPublication:. Pode ser utilizado
* para adicionar mais de uma publicação ao mesmo tempo.
*
* @param publicationsIds Um array de ints encapsulados em NSNumbers, cada um representando uma determinada
* publicação.
*/
- (void) addPublications:(NSArray *)publicationsIds;

// Issue ADs Cache

/**
* Este método é responsável por fazer o download e cache local dos ADs de um determinado Issue.
* Deve ser chamado sempre depois do addPublication e antes do adWebViewForIssueWithIdentifier:.
*
* @param issueIdentifier O identificador único do Issue
* @param issueName O nome do Issue
* @param issueCoverURL A URL da imagem de cover do Issue
* @param publicationId O ID da publicação a qual o Issue pertence
* @param numberOfPages O número total de páginas do Issue
* @param blackList Um array de ints, encapsuldados em NSNumbers, contendo o número de páginas que não devem receber Ads.
* @param pageStepBlock Bloco chamada sempre que um AD foi baixado e inserido no cache local.
* @param completionBlockTotalAdsSize: Bloco chamado para informar o tamanho (em bytes) de todos os ads que serão baixados pelo SDK. Utilizado para dar feedback ao app sobre tamanho dos arquivos a serem baixados.
* @param completionBlock Bloco chamado quando todos os ADs do Issue foram baixados. cachedAdsOages é um Array de NSNumbers contendo as páginas do Issue que possuem ADs.
*/
- (void) cacheADsForIssueWithIdentifier:(NSString *)issueIdentifier
issueName:(NSString *)issueName
issueCoverURL:(NSString *)issueCoverURL
publication:(NSNumber *)publicationId
numberOfPages:(NSInteger)numberOfPages
blackList:(NSArray *)blackList
pageStepBlock:(void (^)(BOOL succeeded, NSInteger pageNumber))pageStepBlock
completionBlock:(void (^)(NSInteger totalAdsSize))completionBlockTotalAdsSize
completionBlock:(void (^)(NSArray *cachedAdsPages))completionBlock;

/**
*
* Apaga os ads de uma edicao. Necessario implementar no botao de delete da edicao
*/
- (void) deleteAdsForIssueWithIdentifier:(NSString *)issueIdentifier;

- (NSInteger) totalSizeAdsForDownload:(NSArray *)ads;


/**
* Método utilizado para consultar as páginas de um determinado issue que possuem ADs baixados e disponíveis para serem inseridos.
*
* @param issueIdentifier O identificador do issue a ser consultado.
*
* @return Retorna um array de ints, encapsuldados em NSNumbers, contendo as páginas que possuem ADs.
*/
- (NSArray *) pagesWithAdsForIssueIdentifier:(NSString *)issueIdentifier;


/**
* Método utilizado para consultar informações das paginas que receberam ADs .
*
* @param issueIdentifier O identificador do issue a ser consultado.
*
* @return Retorna um array de AdmagAdsInfo, contendo a página, nome da campanha e uuid da inserção que possuem ADs.
*/
- (NSArray *) infoAdsForIssueIdentifier:(NSString *)issueIdentifier;


/**
* Este método deve ser utilizado para exibir um encarte (AD).
*
* @param issueIdentifier Identificador do issue a qual o encarte sera inserido
* @param pageNumber Número da página em que o encarte será inserido
* @param success Bloco chamado em caso de sucesso. Este bloco contém uma webview do tipo ADMagWebView contendo o encarte já renderizado e pronto para ser inserido. Você pode inserir este encarte utilizando addSubiview em alguma view do seu aplicativo.
* @param failure Bloco chamado em caso de erro. Verifique o objeto error para mais detalhes.
*/
- (void) adWebViewForIssueWithIdentifier:(NSString *)issueIdentifier
pageNumber:(NSNumber *)pageNumber
success:(void (^)(ADMagWebView *webview))success
failure:(void (^)(NSError *error))failure;
@end
16 changes: 16 additions & 0 deletions ADMag.framework/Versions/A/Headers/ADMagAdsInfo.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//
// AdmagAdsInfo.h
// ADMag
//
// Created by Giancarlo Rubio on 20/03/15.
// Copyright (c) 2015 ADMag. All rights reserved.
//

@interface ADMagAdsInfo:NSObject

@property(nonatomic) NSInteger pageNumber;
@property(nonatomic, copy) NSString* campaigName;
@property(nonatomic, copy) NSString* uuid;

@end

36 changes: 36 additions & 0 deletions ADMag.framework/Versions/A/Headers/ADMagWebView.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
//
// ADMagWebView.h
// ADMag
//
// Created by Dimas Gabriel on 12/9/14.
// Copyright (c) 2014 ADMag. All rights reserved.
//

#import <UIKit/UIKit.h>

@class MTCCDAdInsertionEntity;

/**
* Esta classe representa uma UIWebView responsável por renderizar e exibir os ADs (encartes) da lib ADMag.
*/
@interface ADMagWebView : UIWebView <UIWebViewDelegate>

/**
* Método interno que não deve ser utilizado por terceiros.
*
*/
- (void) loadContentForAdvertising:(MTCCDAdInsertionEntity *)ad
success:(void (^)())success
failure:(void (^)(NSError *error))failure;

/**
* Este método deve ser chamado sempre que esta WebView ficar visível para o usuário.
*/
- (void) onShow;

/**
* Deve ser chamado sempre que a WebView não estiver mais visível para o usuário.
*/
- (void) onHide;

@end
Loading