Bläddra i källkod

- 자동로그인 , 아이디 저장 기능 적용 완료
- 로그인 상태에 따라 옵션버튼 출력하는 부분 작업 완

KaRam Kim 8 år sedan
förälder
incheckning
7ada201c09

+ 32 - 20
OneCable/Classes/CommonUI/MorePopOverViewController.m

@@ -38,39 +38,51 @@
     for (UIButton *btn in _btnCollArray) {
         btn.hidden = YES;
     }
-    
+
     int i = 0;
     for (MoreBtnModel *btnInfo in btnArray)
     {
-        [self setBtnImage:i btnInfo:btnInfo];
-        [_btnCollArray[i] setHidden:NO];
-        [_btnCollArray[i] setTag:i];
+        [self setBtn:i btnInfo:btnInfo];
         i++;
     }
-    
-    for (int i = 0; i < btnArray.count; i++)
-    {
-        
-    }
+//
+//    for (int i = 0; i < btnArray.count; i++)
+//    {
+//        
+//    }
 }
 
--(void)setBtnImage:(int)index btnInfo:(MoreBtnModel *)btnInfo
+-(void)setBtn:(int)index btnInfo:(MoreBtnModel *)btnInfo
 {
+    NSLog(@"Btn Info : %@", btnInfo);
+    
     UIButton *btn = _btnCollArray[index];
-    for ( int i = UIControlStateNormal; i <= UIControlStateReserved; i++)
-    {
-        if ([btnInfo getBtnImg:i] != nil)
-        {
-            [btn setImage:[btnInfo getBtnImg:i]  forState:i];
-        }
-    }
+    NSLog(@"Btn Info1 : %@", btn);
+    [btn setImage:[btnInfo getBtnImg:UIControlStateNormal] forState:UIControlStateNormal];
+    [btn setImage:[btnInfo getBtnImg:UIControlStateHighlighted] forState:UIControlStateHighlighted];
+//    for ( int i = UIControlStateNormal; i <= UIControlStateReserved; i++)
+//    {
+//        if ([btnInfo getBtnImg:i] != nil)
+//        {
+//            [btn setImage:[btnInfo getBtnImg:i]  forState:i];
+//        }
+//    }
+    [btn setHidden:NO];
+    [btn setTag:btnInfo.btnType];
+    [btn setEnabled:btnInfo.isEnable];
+    
+    NSLog(@"Btn Info2 : %@", btn);
 }
 
 
 - (IBAction)btnAction:(id)sender {
-    if([self.delegate respondsToSelector:@selector(moreBtnAction:)]){
-        [self.delegate moreBtnAction:sender];
-    }
+    [_poc dismissPopoverAnimated:YES completion:^{
+        if([self.delegate respondsToSelector:@selector(moreBtnAction:)]){
+            [self.delegate moreBtnAction:sender];
+        }
+    }];
+    
+    
 }
 
 

+ 1 - 1
OneCable/Classes/Handler/SocketServiceHandler.h

@@ -14,7 +14,7 @@
 @optional
 - (void) socketConnectComplete;
 - (void) socketDidReceiveMessage:(id)message info:(NSDictionary *)info;
-- (void) didFailWithError:(NSError *)error;
+- (void) socketDidFailWithError:(NSError *)error;
 - (void) socketDidReceivePong:(NSData *)pongPayload;
 - (void) socketDidCloseWithCode:(NSInteger)code;
 

+ 1 - 1
OneCable/Classes/Model/MoreBtnModel.h

@@ -9,7 +9,7 @@
 #import <Foundation/Foundation.h>
 
 typedef enum {
-    MasterTransfer = 9001,
+    MasterTransfer = 90001,
     AddMember,
     Add,
     Del,

+ 2 - 1
OneCable/Classes/Util/CommonUtil.h

@@ -212,6 +212,7 @@ typedef enum {
 #pragma mark - timezone
 + (SortDictionary *)timeZoneDict;
 
-
+#pragma mark - Color
++(UIColor *)convertFromRGBToUIColor:(NSString *)hexRGB;
 
 @end

+ 3 - 0
OneCable/Classes/Util/CommonUtil.m

@@ -1051,4 +1051,7 @@
     return [[SortDictionary alloc] initWithDictionary:dic];
 }
 
+#pragma mark - Color
++(UIColor *)convertFromRGBToUIColor:(NSString *)hexRGB;
+
 @end

+ 49 - 25
OneCable/Classes/ViewControllers/HomeMemberScreens/HomeMemberViewController.m

@@ -100,7 +100,7 @@
     
     [self setThingsPopoverOptions];
     [self initRefreshController];
-    [self setMemberMoreBtnArray];
+    [self setMoreBtnArray];
 }
 
 - (void)initRefreshController {
@@ -219,7 +219,7 @@
 
 - (IBAction)btnOptionTouched:(id)sender
 {
-    NSMutableArray *btnArray = [NSMutableArray array];
+//    NSMutableArray *btnArray = [NSMutableArray array];
 
     
     //img_bg_morepopup_icon_masterchange, img_bg_morepopup_icon_masterchange_press
@@ -229,9 +229,10 @@
 //    NSMutableArray *btnArray = [NSMutableArray arrayWithObjects:[NSNumber numberWithInteger:masterChange],[NSNumber numberWithInteger:add],[NSNumber numberWithInteger:del], nil];
 //
 //    [self toggleOptionsWithArray:sender btnArray:btnArray];
+    [self toggleOptionsWithArray:sender btnArray:_arrMoreBtn];
 }
 
-- (void)setMemberMoreBtnArray {
+- (void)setMoreBtnArray {
     if (_arrMoreBtn == nil) {
         _arrMoreBtn = [NSMutableArray array];
     }
@@ -240,32 +241,40 @@
         [_btnOption setHidden:YES];
     }
     
-    for (int i = 0; i < 4; i++) {
-        MoreBtnModel *btnModel;
-        switch (i) {
-            case 0:{
-                btnModel = [[MoreBtnModel alloc] initWithTyep:MasterTransfer isEnable:YES];
-                if (![[JDFacade facade].loginUser isHomehubOnline]) {
-                    [btnModel setEnable:NO];
+    if([[JDFacade facade].loginUser.gradeCode isEqualToString:KNEET_MEMBER_SIMPLE]) {
+        for (int i = 0; i < 4; i++) {
+            MoreBtnModel *btnModel;
+            switch (i) {
+                case 0:{
+                    btnModel = [[MoreBtnModel alloc] initWithTyep:MasterTransfer isEnable:YES];
+                    if (![[JDFacade facade].loginUser isHomehubOnline]) {
+                        [btnModel setEnable:NO];
+                    }
                 }
+                    
+                    break;
+                case 1:
+                    btnModel = [[MoreBtnModel alloc] initWithTyep:AddMember isEnable:YES];
+                    break;
+                case 2:
+                    btnModel = [[MoreBtnModel alloc] initWithTyep:Del isEnable:YES];
+                    break;
+                case 3:
+                    btnModel = [[MoreBtnModel alloc] initWithTyep:Refresh isEnable:YES];
+                    break;
+                    
+                default:
+                    break;
             }
-                
-                break;
-            case 1:
-                btnModel = [[MoreBtnModel alloc] initWithTyep:AddMember isEnable:YES];
-                break;
-            case 2:
-                btnModel = [[MoreBtnModel alloc] initWithTyep:Del isEnable:YES];
-                break;
-            case 3:
-                btnModel = [[MoreBtnModel alloc] initWithTyep:Refresh isEnable:YES];
-                break;
-                
-            default:
-                break;
+            [_arrMoreBtn addObject:btnModel];
         }
+    }
+    else {
+        MoreBtnModel *btnModel = [[MoreBtnModel alloc] initWithTyep:Refresh isEnable:YES];
         [_arrMoreBtn addObject:btnModel];
     }
+    
+    
 }
 
 
@@ -605,7 +614,22 @@
 //    [_selectedCoverIcon faceOffImage];
 //}
 
-
+#pragma mark - MoreButtonDelegate
+-(void)moreBtnAction:(id)sender
+{
+    NSInteger tag = [(UIButton *)sender tag];
+    NSLog(@"MoreBtn Action : %li", (long)tag);
+    switch (tag) {
+        case MasterTransfer:
+        {
+        
+        }
+            break;
+            
+        default:
+            break;
+    }
+}
 
 #pragma mark - MemoryWarning
 - (void)didReceiveMemoryWarning

+ 31 - 16
OneCable/Classes/ViewControllers/MainScreens/LoginViewController.m

@@ -120,6 +120,7 @@
     }
     
     if (_chkIdSave.checked) {
+        NSLog(@"Save ID : %@", [[JDFacade facade] objectForKeyFromKeychain:USDEF_SESSION_LOGIN_ID]);
         _txtEmail.text = [[JDFacade facade] objectForKeyFromKeychain:USDEF_SESSION_LOGIN_ID];
     }
         
@@ -135,7 +136,7 @@
                             @"message_type": @"auth"};
 
     [self sendDataToSocket:param];
-    
+    [[JDFacade facade] loadIndicator:YES allowUserInteraction:NO];
 //    [[RequestHandler handler] sendAsyncPostRequestAPIPath:API_POST_SIGN_IN parameters:param modelClass:[LoginModel class] completion:^(id responseObject) {
 //        if (!responseObject) {//응답결과가 잘못되었거나 없을 경우,
 //            return;
@@ -245,10 +246,13 @@
         }
 
         [RequestHandler handler].authorization = loginInfo.authorization;
-// TODO : 자동로그인 / 아이디 저장 관련 작업하기
+
+        
+        [[JDFacade facade] storeObjectToUserDefaults:@(_chkAutoLogin.checked) forKey:USDEF_APP_AUTO_LOGIN];
+        [[JDFacade facade] storeObjectToUserDefaults:@(_chkIdSave.checked) forKey:USDEF_APP_SAVE_ID];
         if (_chkAutoLogin.checked) {//자동로그인 설정 시, 인증 토큰 저장
-            [[JDFacade facade] storeObjectToKeychain:@(_chkAutoLogin.checked) forKey:USDEF_APP_AUTO_LOGIN];
-            [[JDFacade facade] storeObjectToKeychain:[JDFacade facade].tmpEmailId forKey:USDEF_SESSION_LOGIN_PWD];
+            [[JDFacade facade] storeObjectToKeychain:[_txtEmail.text trim] forKey:USDEF_SESSION_LOGIN_ID];
+            [[JDFacade facade] storeObjectToKeychain:[_txtPasswd.text trim] forKey:USDEF_SESSION_LOGIN_PWD];
         } else {
             [[JDFacade facade] removeObjectAtKeychain:USDEF_SESSION_AUTOTOKEN];
             [[JDFacade facade] removeObjectAtKeychain:USDEF_SESSION_LOGIN_PWD];
@@ -258,8 +262,8 @@
         }
         
         if (_chkIdSave.checked) {
-            [[JDFacade facade] storeObjectToKeychain:@(_chkIdSave.checked) forKey:USDEF_APP_SAVE_ID];
-//            [[JDFacade facade] storeObjectToUserDefaultsuser:[_txtEmail.text trim] forKey:USDEF_SESSION_LOGIN_ID];
+            
+            [[JDFacade facade] storeObjectToKeychain:[_txtEmail.text trim] forKey:USDEF_SESSION_LOGIN_ID];
         } else {
             if (!_chkAutoLogin.checked) {
                 [[JDFacade facade] removeObjectAtKeychain:USDEF_SESSION_LOGIN_ID];
@@ -336,22 +340,26 @@
 
 - (void)requestLogout {
     //parameters
-    NSString *path = [NSString stringWithFormat:API_POST_SIGN_OUT];
-
-    [[RequestHandler handler] sendAsyncGetRequestAPIPath:path parameters:nil modelClass:[JDJSONModel class] completion:^(id responseObject) {
-        [self actionAfterLogout];
-
-    } failure:^(id errorObject) {
-        JDErrorModel *error = (JDErrorModel *)errorObject;
-        [[JDFacade facade] alert:error.errorMessage];
-    }];
+    [self actionAfterLogout];
+//    NSString *path = [NSString stringWithFormat:API_POST_SIGN_OUT];
+//
+//    [[RequestHandler handler] sendAsyncGetRequestAPIPath:path parameters:nil modelClass:[JDJSONModel class] completion:^(id responseObject) {
+//        [self actionAfterLogout];
+//
+//    } failure:^(id errorObject) {
+//        JDErrorModel *error = (JDErrorModel *)errorObject;
+//        [[JDFacade facade] alert:error.errorMessage];
+//    }];
 }
 
 - (void)actionAfterLogout {
 
     //자동 로그인 설정 - 취소
     [[JDFacade facade] storeObjectToUserDefaults:@(NO) forKey:USDEF_APP_AUTO_LOGIN];
-    [[JDFacade facade] removeObjectAtKeychain:USDEF_SESSION_AUTOTOKEN];
+    [[JDFacade facade] removeObjectAtKeychain:USDEF_SESSION_LOGIN_PWD];
+    if (![[[JDFacade facade] objectForKeyFromUserDefaults:USDEF_APP_SAVE_ID] boolValue]) {
+        [[JDFacade facade] removeObjectAtKeychain:USDEF_SESSION_LOGIN_ID];
+    }
     
     [JDFacade facade].loginUser = nil;
     
@@ -439,6 +447,7 @@
     {
         CASE (@"auth")
         {
+            [[JDFacade facade] loadIndicator:NO allowUserInteraction:YES];
             if (result.isSuccess) {
                 LoginModel *loginInfo = [[LoginModel alloc] initWithDictionary:info error:nil];;
                 if (loginInfo) {//API 성공 ,함
@@ -460,6 +469,12 @@
     }
 }
 
+- (void) socketDidFailWithError:(NSError *)error {
+    [[JDFacade facade] loadIndicator:NO allowUserInteraction:YES];
+}
+
+
+
 #pragma mark - MemoryWarning
 - (void)didReceiveMemoryWarning
 {