123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513 |
- //
- // JXMainViewController.m
- //
- // Created by flyeagleTang on 14-4-3.
- // Copyright (c) 2014年 Reese. All rights reserved.
- //
- #import "JXXMMainVc.h"
- #import "JXTabMenuView.h"
- #import "JXMsgViewController.h"
- #import "JXFriendViewController.h"
- #import "AppDelegate.h"
- #import "JXNewFriendViewController.h"
- #import "JXFriendObject.h"
- #import "PSMyViewController.h"
- #ifdef Live_Version
- #import "JXLiveViewController.h"
- #endif
- #import "WeiboViewControlle.h"
- #import "JXSquareViewController.h"
- #import "JXProgressVC.h"
- #import "JXGroupViewController.h"
- #import "OrganizTreeViewController.h"
- #import "JXLabelObject.h"
- #import "JXBlogRemind.h"
- #import "JXRoomPool.h"
- #import "JXDeviceAuthController.h"
- #import "CYWebAddPointVC.h"
- #import "CYWebBettingVC.h"
- #import "gifViewController.h"
- #import "UIView+LK.h"
- #import "JXLinksShareVC.h"
- @interface JXXMMainVc()
- @property (nonatomic, strong) JXLinksShareVC *linksShareVC;
- @property (nonatomic, assign) BOOL isFloatWindow;
- @property (nonatomic, strong) UIButton *suspensionBtn;
- @property (nonatomic, assign) CGRect subWindowFrame;
- @property (nonatomic,strong) XMGOpenGLNavVc *nav1;
- @property (nonatomic,strong) XMGOpenGLNavVc *nav2;
- @property (nonatomic,strong) XMGOpenGLNavVc *nav3;
- @property (nonatomic,strong) XMGOpenGLNavVc *nav4;
- @end
- @implementation JXXMMainVc{
- NSString * _linkName1;
- NSString * _linkName2;
- NSString * _linkURL1;
- NSString * _linkURL2;
- NSString * _imgUrl1;
- NSString * _imgUrl2;
- }
- @synthesize tb=_tb;
- @synthesize btn=_btn,mainView=_mainView;
- @synthesize IS_HR_MODE;
-
- - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
- {
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
-
- self.view.frame=CGRectMake(0, 0, JX_SCREEN_WIDTH, JX_SCREEN_HEIGHT-JX_SCREEN_TOP-70-JX_SCREEN_HEIGHT>=812?64:49);
-
- _bottomView = [[UIImageView alloc] init];
- _bottomView.userInteractionEnabled = YES;
- _bottomView.backgroundColor = HEXCOLOR(0xF1F1F1);
- _bottomView.backgroundColor=[UIColor greenColor];
- [self.view addSubview:_bottomView];
- [_bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.bottom.mas_equalTo(0);
- make.left.and.right.mas_equalTo(0);
- make.height.mas_equalTo(JX_SCREEN_BOTTOM);
- }];
-
- _mainView = [[UIView alloc] init];
- _mainView.backgroundColor=[UIColor yellowColor];
- [self.view addSubview:_mainView];
- [_mainView mas_makeConstraints:^(MASConstraintMaker *make) {
- make.top.mas_equalTo(0);
- make.left.and.right.mas_equalTo(0);
- make.bottom.mas_equalTo(JX_SCREEN_BOTTOM);
- }];
-
-
-
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(closeBtn:) name:@"hidddenBottomView" object:nil];
-
-
- [self buildTop];
-
-
- _msgVc = [[JXMsgViewController alloc] init];
- _nav1 = [[XMGOpenGLNavVc alloc] initWithRootViewController:_msgVc];
- _nav1.navigationBar.hidden=YES;
-
- _gifVc = [[JXWellBeingVc alloc] init];
- _nav2 = [[XMGOpenGLNavVc alloc] initWithRootViewController:_gifVc];
-
- _psMyviewVC = [[JXXMGMyVc alloc] init];
- _nav3 = [[XMGOpenGLNavVc alloc] initWithRootViewController:_psMyviewVC];
-
- [self doSelected:0];
- [g_notify addObserver:self selector:@selector(loginSynchronizeFriends:) name:kXmppClickLoginNotifaction object:nil];
- [g_notify addObserver:self selector:@selector(appDidEnterForeground) name:kApplicationWillEnterForeground object:nil];
- [g_notify addObserver:self selector:@selector(getUserInfo:) name:kXMPPMessageUpadteUserInfoNotification object:nil];
- [g_notify addObserver:self selector:@selector(getRoomSet:) name:kXMPPMessageUpadteGroupNotification object:nil];
- [g_notify addObserver:self selector:@selector(onXmppLoginChanged:) name:kXmppLoginNotifaction object:nil];
- [g_notify addObserver:self selector:@selector(hasLoginOther:) name:kXMPPLoginOtherNotification object:nil];
- [g_notify addObserver:self selector:@selector(showDeviceAuth:) name:kDeviceAuthNotification object:nil];
-
-
- }
- return self;
- }
- -(void)closeBtn:(NSNotification *)note
- {
- NSDictionary *dict=note.userInfo;
- if ([dict[@"jxmessage"] intValue]==1||[dict[@"my"] intValue]==1||[dict[@"gif"] intValue]==1) {
-
- _bottomView.hidden=YES;
- }else{
- _bottomView.hidden=YES;
- }
- }
- -(void)backfUI{
- _bottomView.hidden=NO;
- }
- - (void)dissselfUI{
- _bottomView.hidden=YES;
- return;
-
- }
- - (void)viewWillAppear:(BOOL)animated{
- [super viewWillAppear:animated];
-
- _bottomView.hidden=NO;
- }
- - (void)appEnterForegroundNotif:(NSNotification *)noti {
- [g_server offlineOperation:(g_server.lastOfflineTime *1000 + g_server.timeDifference)/1000 toView:self];
- }
- - (void)getUserInfo:(NSNotification *)noti {
- JXMessageObject *msg = noti.object;
- [g_server getUser:msg.toUserId toView:self];
- }
- - (void)getRoomSet:(NSNotification *)noti {
- JXMessageObject *msg = noti.object;
- // [g_server getRoom:msg.toUserId toView:self];
- }
- -(void)dealloc{
- // [_psMyviewVC.view release];
- // [_msgVc.view release];
- [g_notify removeObserver:self name:kXmppLoginNotifaction object:nil];
- [g_notify removeObserver:self name:kSystemLoginNotifaction object:nil];
- [g_notify removeObserver:self name:kXmppClickLoginNotifaction object:nil];
- [g_notify removeObserver:self name:kXMPPLoginOtherNotification object:nil];
- [g_notify removeObserver:self name:kApplicationWillEnterForeground object:nil];
- [g_notify removeObserver:self name:kXMPPMessageUpadteUserInfoNotification object:nil];
- [g_notify removeObserver:self name:kDeviceAuthNotification object:nil];
- // [super dealloc];
- }
- - (void)viewDidLoad
- {
- [super viewDidLoad];
- // Do any additional setup after loading the view.
- [self loginSynchronizeFriends:nil];
-
- if (g_server.isManualLogin) {
- if (self.isLoadFriendAndGroup) {
- NSArray *array = [[JXLabelObject sharedInstance] fetchAllLabelsFromLocal];
- if (array.count <= 0) {
- // 同步标签
- [g_server friendGroupListToView:self];
- }
- }
- }
-
- // 获取服务器时间
- //[g_server getCurrentTimeToView:self];
- // 获取自己的用户信息
- // [g_server getUser:MY_USER_ID toView:self];
-
-
- }
- - (void)appDidEnterForeground {
- // 获取服务器时间
- [g_server getCurrentTimeToView:self];
- }
- - (void)loginSynchronizeFriends:(NSNotification*)notification{
- //判断服务器好友数量是否与本地一致
- // _friendArray = [g_server.myself fetchAllFriendsOrNotFromLocal];
- // NSLog(@"%d -------%ld",[g_server.myself.friendCount intValue] , [_friendArray count]);
- // if ([g_server.myself.friendCount intValue] > [_friendArray count] && [g_server.myself.friendCount intValue] >0) {
- // [g_App showAlert:Localized(@"JXAlert_SynchFirendOK") delegate:self];
- if (self.isLoadFriendAndGroup) {
- [g_server listAttention:0 userId:MY_USER_ID toView:self];
- }else{
-
- [[JXXMPP sharedInstance] performSelector:@selector(login) withObject:nil afterDelay:2];//2秒后执行xmpp登录
- }
-
- [[JXXMPP sharedInstance] performSelector:@selector(login) withObject:nil afterDelay:2];//2秒后执行xmpp登录
-
- // }
- }
- - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
- if (alertView.tag == 10002) {
- [g_server performSelector:@selector(showLogin) withObject:nil afterDelay:0.5];
- return;
- }else if (buttonIndex == 1) {
- [g_server listAttention:0 userId:MY_USER_ID toView:self];
- }
- }
- - (void)didReceiveMemoryWarning
- {
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-
- }
- -(void)buildTop{
- _tb = [JXTabMenuView alloc];
-
-
- NSString *imageSelect1 = _imgUrl1;
- if (_imgUrl1.length<1) {
- _imgUrl1 = @"find_normal";
- imageSelect1 = @"find_press_gray";
- }
- NSString *imageSelect2 = _imgUrl2;
- if (_imgUrl2.length<1) {
- _imgUrl2 = @"find_normal";
- imageSelect2 = @"find_press_gray";
- }
-
- _tb.items = [NSArray arrayWithObjects:@"首页",@"福利",Localized(@"JX_My"),nil];
-
- _tb.imagesNormal = [NSArray arrayWithObjects:@"news_normal",@"fucaizhongxin",@"me_normal",nil];
- _tb.imagesSelect = [NSArray arrayWithObjects:@"news_press_gray",@"fucaizhongxin",@"me_press_gray",nil];
-
- _tb.delegate = self;
- _tb.onDragout = @selector(onDragout:);
- [_tb setBackgroundImageName:@"MessageListCellBkg"];
- _tb.onClick = @selector(actionSegment:);
- _tb = [_tb initWithFrame:CGRectMake(0, 0, JX_SCREEN_WIDTH, JX_SCREEN_BOTTOM)];
- [_bottomView addSubview:_tb];
-
-
- NSMutableArray *remindArray = [[JXBlogRemind sharedInstance] doFetchUnread];
- [_tb setBadge:2 title:[NSString stringWithFormat:@"%ld",remindArray.count]];
- }
- - (void)onDragout:(id)aa{}
- -(void)actionSegment:(UIButton*)sender{
- [self doSelected:(int)sender.tag];
- }
- -(void)doSelected:(int)n{
- [_selectVC.view removeFromSuperview];
- switch (n){
- case 0:
- {
- _selectVC = _nav1;
-
- }
- break;
- case 1:
- { _selectVC = _nav2;
- }
- break;
- case 2:
- { _selectVC = _nav3;
- }
- break;
-
- }
-
- if (n==0) {
- //[self dissselfUI];
- // _topView.hidden=NO;
- }else{
- // _topView.hidden=YES;
- }
- [_tb selectOne:n];
- [_mainView addSubview:_selectVC.view];
- }
- - (UIStatusBarStyle)preferredStatusBarStyle {
- return UIStatusBarStyleDefault;
- }
-
- - (void)titleClick:(UIButton *)button
- {
-
-
- // [_selectVC.view removeFromSuperview];
- // _selectVC = _psMyviewVC;
- // [_tb selectOne:3];
- // [_mainView addSubview:_selectVC.view];
- //
-
- }
- -(void)onXmppLoginChanged:(NSNumber*)isLogin{
- if([JXXMPP sharedInstance].isLogined == login_status_yes){
- // 获取离线调用接口列表
- [g_server offlineOperation:(g_server.lastOfflineTime *1000 + g_server.timeDifference)/1000 toView:self];
- [self onAfterLogin];
- }
- switch (_tb.selected){
- case 0:
- _btn.hidden = [JXXMPP sharedInstance].isLogined;
- break;
- case 1:
- _btn.hidden = ![JXXMPP sharedInstance].isLogined;
- break;
- case 2:
- _btn.hidden = NO;
- break;
- case 3:
- _btn.hidden = ![JXXMPP sharedInstance].isLogined;
- break;
- }
- }
- -(void)onAfterLogin{
- // [_msgVc scrollToPageUp];
- }
- -(void)hasLoginOther:(NSNotification *)notifcation{
- [g_App showAlert:Localized(@"JXXMPP_Other") delegate:self tag:10002 onlyConfirm:YES];
- }
- - (void)showDeviceAuth:(NSNotification *)notification{
- JXMessageObject *msg = notification.object;
- JXDeviceAuthController *authCon = [[JXDeviceAuthController alloc] initWithMsg:msg];
- // [self presentViewController:authCon animated:YES completion:nil];
- UIViewController *lastVC = (UIViewController *)g_navigation.subViews.lastObject;
- [lastVC presentViewController:authCon animated:YES completion:nil];
- }
- -(void) didServerResultSucces:(JXConnection*)aDownload dict:(NSDictionary*)dict array:(NSArray*)array1{
- //更新本地好友
- return;
- if ([aDownload.action isEqualToString:act_AttentionList]) {
- JXProgressVC * pv = [JXProgressVC alloc];
- pv.dbFriends = (long)[_friendArray count];
- pv.dataArray = array1;
- pv = [pv init];
- if (array1.count > 300) {
- [g_navigation pushViewController:pv animated:YES];
- }
- // [self.view addSubview:pv.view];
-
- }
-
- // 同步标签
- if ([aDownload.action isEqualToString:act_FriendGroupList]) {
-
- for (NSInteger i = 0; i < array1.count; i ++) {
- NSDictionary *dict = array1[i];
- JXLabelObject *labelObj = [[JXLabelObject alloc] init];
- labelObj.groupId = dict[@"groupId"];
- labelObj.groupName = dict[@"groupName"];
- labelObj.userId = dict[@"userId"];
-
- NSArray *userIdList = dict[@"userIdList"];
- NSString *userIdListStr = [userIdList componentsJoinedByString:@","];
- if (userIdListStr.length > 0) {
- labelObj.userIdList = [NSString stringWithFormat:@"%@", userIdListStr];
- }
- [labelObj insert];
- }
-
- // 删除服务器上已经删除的
- NSArray *arr = [[JXLabelObject sharedInstance] fetchAllLabelsFromLocal];
- for (NSInteger i = 0; i < arr.count; i ++) {
- JXLabelObject *locLabel = arr[i];
- BOOL flag = NO;
- for (NSInteger j = 0; j < array1.count; j ++) {
- NSDictionary * dict = array1[j];
-
- if ([locLabel.groupId isEqualToString:dict[@"groupId"]]) {
- flag = YES;
- break;
- }
- }
-
- if (!flag) {
- [locLabel delete];
- }
- }
- }
- if ([aDownload.action isEqualToString:act_offlineOperation]) {
- for (NSDictionary *dict in array1) {
- if ([[dict objectForKey:@"tag"] isEqualToString:@"label"]) {
- [g_notify postNotificationName:kOfflineOperationUpdateLabelList object:nil];
- }
- else if ([[dict objectForKey:@"tag"] isEqualToString:@"friend"]) {
- [g_server getUser:[dict objectForKey:@"friendId"] toView:self];
- }
- else if ([[dict objectForKey:@"tag"] isEqualToString:@"room"]) {
- [g_server getRoom:[dict objectForKey:@"friendId"] toView:self];
- }
- }
- }
- if ([aDownload.action isEqualToString:act_UserGet]) {
- JXUserObject *user = [[JXUserObject alloc] init];
- [user getDataFromDict:dict];
-
- if ([user.userId intValue] == [MY_USER_ID intValue]) {
- [g_server doSaveUser:dict];
- user.bubbleFontId = [dict objectForKey:@"bubbleFontId"];
- user.gradeIndex = [dict objectForKey:@"gradeIndex"];
- // 保存自己
- [user insert];
- [user update];
-
- }else {
- JXUserObject *user1 = [[JXUserObject sharedInstance] getUserById:user.userId];
- user.content = user1.content;
- user.timeSend = user1.timeSend;
- [user update];
- }
-
- [g_notify postNotificationName:kOfflineOperationUpdateUserSet object:user];
- }
- if ([aDownload.action isEqualToString:act_roomGet]) {
- JXUserObject *user = [[JXUserObject alloc] init];
- [user getDataFromDict:dict];
- user.userId = [dict objectForKey:@"jid"];
- user.roomId = [dict objectForKey:@"id"];
- user.userNickname = [dict objectForKey:@"name"];
- if(![g_xmpp.roomPool getRoom:user.userId] || ![user haveTheUser]){
- user.userDescription = [dict objectForKey:@"desc"];
- user.showRead = [dict objectForKey:@"showRead"];
- user.showMember = [dict objectForKey:@"showMember"];
- user.allowSendCard = [dict objectForKey:@"allowSendCard"];
- user.chatRecordTimeOut = [dict objectForKey:@"chatRecordTimeOut"];
- user.talkTime = [dict objectForKey:@"talkTime"];
- user.allowInviteFriend = [dict objectForKey:@"allowInviteFriend"];
- user.allowUploadFile = [dict objectForKey:@"allowUploadFile"];
- user.allowConference = [dict objectForKey:@"allowConference"];
- user.allowSpeakCourse = [dict objectForKey:@"allowSpeakCourse"];
-
- user.offlineNoPushMsg = [(NSDictionary *)[dict objectForKey:@"member"] objectForKey:@"offlineNoPushMsg"];
-
- user.isNeedVerify = [dict objectForKey:@"isNeedVerify"];
- user.createUserId = [dict objectForKey:@"userId"];
- user.content = @" ";
- user.topTime = nil;
-
- [user insertRoom];
- [g_xmpp.roomPool joinRoom:user.userId title:user.userNickname lastDate:nil isNew:NO];
- }else {
- NSDictionary * groupDict = [user toDictionary];
- roomData * roomdata = [[roomData alloc] init];
- [roomdata getDataFromDict:groupDict];
- [roomdata getDataFromDict:dict];
- JXUserObject *user1 = [[JXUserObject sharedInstance] getUserById:roomdata.roomJid];
- user.content = user1.content;
- user.status = user1.status;
- user.offlineNoPushMsg = [NSNumber numberWithBool:roomdata.offlineNoPushMsg];
- user.msgsNew = user1.msgsNew;
- [user update];
- }
-
- [g_notify postNotificationName:kOfflineOperationUpdateUserSet object:user];
- }
- }
- -(int) didServerResultFailed:(JXConnection*)aDownload dict:(NSDictionary*)dict{
-
- return hide_error;
- }
- -(int) didServerConnectError:(JXConnection*)aDownload error:(NSError *)error{//error为空时,代表超时
-
- return hide_error;
- }
-
- @end
|