JDFacade.h 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. //
  2. // JSFacade.h
  3. // kneet2
  4. //
  5. // Created by Created by Jason Lee on 10/1/15.
  6. // Copyright (c) 2015 ntels. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. //#import <ReactiveCocoa/ReactiveCocoa.h>
  10. #import "Common.h"
  11. #import "Definitions.h"
  12. #import "CommonUtil.h"
  13. //Categories
  14. #import "NSArray-Addtions.h"
  15. #import "NSDictionary-Additions.h"
  16. #import "NSString-Addtions.h"
  17. #import "NSDate+Utilities.h"
  18. #import "UIView+Additions.h"
  19. #import "UIWindow+Addtions.h"
  20. #import "NSLayoutConstraint+Additions.h"
  21. #import "UIView+FindUIViewController.h"
  22. #import "UITableView+EnumarateCells.h"
  23. #import "TargetConditionals.h"
  24. #import "Responder+Keyboard.h"
  25. #import "UINavigationController+CompletionBlock.h"
  26. #import "UIView+AutoLayout.h"
  27. //Common UI
  28. #import "CustomAlertView.h"
  29. //OpenSource
  30. @import ReactiveObjC;
  31. #import "AppDelegate.h"
  32. #import "LoginModel.h"
  33. #import "ModeModel.h"
  34. #import "DataSelectModel.h"
  35. @class DeviceModel;
  36. @class MainViewController;
  37. typedef void(^JDFacadeCompletionCallBackHandler)(void);
  38. typedef void(^JDFacadeFailureCallBackHandler)(void);
  39. typedef void(^JDFacadeSelectCallBackHandler)(DataSelectModel *seleced);
  40. extern CGRect gKeyboardRect;
  41. @interface JDFacade : NSObject {
  42. BOOL _isHomeHubOnlineState;
  43. }
  44. @property (strong, nonatomic) NSString *deviceUUID; //local uuid
  45. @property (strong, nonatomic) NSString *APNSToken; //APNS 토큰
  46. @property (strong, nonatomic) NSString *deviceHostName; //호스트네임
  47. @property (strong, nonatomic) NSString *keyboardRect; //키보드 사이즈
  48. @property (strong, nonatomic) LoginModel *loginUser;
  49. @property (strong, nonatomic) SignUpModel *signUpUser;
  50. @property (strong, nonatomic) NSString *signType; // 회원가입 유형
  51. @property (strong, nonatomic) NSArray<ModeModel> *modeList;
  52. @property (assign, nonatomic) KNMenuId wishMenuId;
  53. @property (assign, nonatomic) BOOL hasLoggedIn;
  54. //Local Temporary Variables
  55. @property (strong, nonatomic) NSString *tmpHomegrpName;
  56. @property (strong, nonatomic) NSString *tmpEmailId;
  57. @property (strong, nonatomic) NSString *tmpPassword;
  58. //tasks
  59. @property (weak, nonatomic) NSOperation *currentOperation;
  60. @property (weak, nonatomic) MainViewController *mainViewController;
  61. //Local Temporary Variables
  62. + (JDFacade *)facade;
  63. - (AppDelegate *)appDelegate;
  64. //Screens
  65. - (UIViewController *)currentViewController;
  66. - (id)viewControllerOnNaviationController:(Class)viewControllerClass;
  67. - (id)viewControllerOnPresentingViewController:(UIViewController *)vc viewControllerClass:(Class)viewControllerClass;
  68. - (id)viewControllerOnPresentedViewController:(UIViewController *)pvc viewControllerClass:(Class)viewControllerClass;
  69. //Keychain Wrapper
  70. - (void)storeObjectToKeychain:(id)object forKey:(NSString *)aKey;
  71. - (id)objectForKeyFromKeychain:(NSString *)aKey;
  72. - (void)removeObjectAtKeychain:(NSString *)aKey;
  73. //UserDefautls - Local Store
  74. - (void)storeObjectToUserDefaults:(id)object forKey:(NSString *)aKey;
  75. - (id)objectForKeyFromUserDefaults:(NSString *)aKey;
  76. //loading
  77. - (void)loadIndicator:(BOOL)showIndicator allowUserInteraction:(BOOL)allowUserInteracton;
  78. - (void)loadIndicatorWhileExecutingBlock:(dispatch_block_t)block;
  79. - (void)showLoadingWhileExecutingBlock:(dispatch_block_t)block completionHandler:(JDFacadeCompletionCallBackHandler)completion;
  80. //alert
  81. - (void)alert:(NSString *)message;
  82. - (void)warn:(NSString *)message;
  83. - (void)alert:(NSString *)message completionHander:(JDFacadeCompletionCallBackHandler)completion;
  84. - (void)alertTitle:(NSString *)title message:(NSString *)message;
  85. - (void)alertTitle:(NSString *)title message:(NSString *)message completionHander:(JDFacadeCompletionCallBackHandler)completion;
  86. - (void)confirm:(NSString *)message completion:(CustomAlertViewCallBackHandler)completion;
  87. - (void)confirmTitle:(NSString *)title message:(NSString *)message completion:(CustomAlertViewCallBackHandler)completion;
  88. - (void)confirmTitle:(NSString *)title message:(NSString *)message btnOKLabel:(NSString *)btnOKLabel
  89. btnCancelLabel:(NSString *)btnCancelLabel completion:(CustomAlertViewCallBackHandler)completion;
  90. - (void)retryAlert:(NSString *)message target:(id)target selector:(SEL)selector;
  91. - (void)retryAlert:(NSString *)message target:(id)target selector:(SEL)selector arguments:(id)arguments,... NS_REQUIRES_NIL_TERMINATION;
  92. - (void)retryAlert:(NSString *)message completionHander:(JDFacadeCompletionCallBackHandler)handler;
  93. -(void)selectDatas:(id)target listInfo:(DataSelectListModel *)listInfo completion:(JDFacadeSelectCallBackHandler)completion;
  94. - (void)fireLocalNotification:(NSString *)message;
  95. - (void)toast:(NSString *)message;
  96. //Control UI
  97. - (id)getRadioButtonStatus:(id)object;
  98. - (void)setRadioButtonStatus:(id)status object:(id)object;
  99. - (id)getCheckBoxStatus:(id)object;
  100. - (void)setCheckBoxStatus:(id)status object:(id)object;
  101. - (void)presentViewControllerByPush:(UIViewController *)vc;
  102. - (void)presentViewControllerByPush:(UIViewController *)vc pvc:(UIViewController *)pvc;
  103. - (void)dismissViewControllerByPush:(UIViewController *)vc;
  104. - (void)dismissViewControllerByPush:(UIViewController *)vc completion:(JDFacadeCompletionCallBackHandler)completion;
  105. - (void)dismissAllViewControllers;
  106. - (void)dismissModalStack:(BOOL)animated completion:(JDFacadeCompletionCallBackHandler)completion;
  107. //Biz Logic
  108. - (void)requestPollingHomeHubStatusInBackground;
  109. - (void)requestPollingHomeHubStatus:(JDFacadeCompletionCallBackHandler)completion;
  110. //UI Flow
  111. - (void)gotoLoginView;
  112. //- (void)gotoLoginViewWithExpiring;
  113. - (void)logout;
  114. - (void)loadInvitationView;
  115. - (void)loadSettingsNumChangeView;
  116. - (void)loadHomeHubView;
  117. - (void)gotoHomeHubRegistration;
  118. - (void)gotoStartHome:(BOOL)canGoBack;
  119. //- (void)gotoTutorial:(BOOL)isCalledFromMenu;
  120. - (void)gotoWishMenu:(KNMenuId)menuId;
  121. - (void)gotoWishMenu:(KNMenuId)menuId completion:(JDFacadeCompletionCallBackHandler)completion;
  122. //- (void)updateHomegrpListForLoginUser:(JDFacadeCompletionCallBackHandler)completion;
  123. - (void)updateLoginInfo:(JDFacadeCompletionCallBackHandler)completion;
  124. - (void)updateMainViewController;
  125. - (void)loadURLExternalBrowser:(NSString *)URLString;
  126. - (void)alertCameraPermissionDisabled;
  127. //Debug
  128. - (BOOL)redirectNSLog;
  129. - (void)showFlex;
  130. -(NSString *)getUrlWithCustID:(NSString *)str aditional:(NSString *)aditional;
  131. -(NSString *)getUrlWithCustAndGroupID:(NSString *)str aditional:(NSString *)aditional;
  132. -(NSString *)getUrlWithCustAndGroupID:(NSString *)str arguments:(NSArray *)arguments;
  133. -(NSString *)getUrlWithArr:(NSString *)str arguments:(NSArray *)arguments;
  134. -(NSString *)getUrlWithCustGroupIDAndMemberID:(NSString *)str;
  135. -(NSString *)getUrlWithCustAndGroupIDAndInputMemId:(NSString *)str inputId:(NSString *)inputId;
  136. - (NSString*)deviceIconFromSourceSubId:(NSString*)source;
  137. - (NSString*)deviceIconFromSourceName:(NSString*)name;
  138. @end