forked from codeguru85/FastEasyBlog-iOS-app
-
Notifications
You must be signed in to change notification settings - Fork 0
/
HomePageController.m
370 lines (305 loc) · 16.2 KB
/
HomePageController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
//
// HomePageController.m
// FastEasyBlog
//
// Created by yanghua_kobe on 9/5/12.
// Copyright (c) 2012 yanghua_kobe. All rights reserved.
//
#import "HomePageController.h"
#import "SinaWeiboManager.h"
#import "TencentWeiboManager.h"
#import "RenRenManager.h"
#import "RenRenMainController.h"
#import "TianyaMainController.h"
#import "RenRenFeedCategoryController.h"
#import "SettingMainController.h"
#import "PublishController.h"
#import "RevealController.h"
#import "SinaWeiboSwitchController.h"
#import "TencentWeiboSwitchController.h"
#import "ImageHelper.h"
#import "ImageHelper-ImageProcessing.h"
#define CHECKBINDNOTIFICATIONINHOMEPAGE @"checkBindNotificationInHomePage"
typedef enum {
TAG_TIPBUTTON
}TAGS;
@interface HomePageController ()
@property (nonatomic,retain) UIButton *tipBtn;
@property (nonatomic,retain) UIButton *skinBtn;
//注册绑定通知
-(void)registeBindNotification;
//处理通知
-(void)handleNotification:(NSNotification*)notification;
//实例化相关平台的主控制器
-(UINavigationController*)createSinaWeiboNavCtrller;
-(UINavigationController*)createTencentWeiboNavCtrller;
-(RevealController*)createRenRenRevealCtrller;
-(UINavigationController*)createTianyaRevealCtrller; //天涯 待实现
-(UINavigationController*)createPublishNavCtrller;
-(UINavigationController*)createSettingNavCtrller;
@end
@implementation HomePageController
- (void)dealloc{
[[NSNotificationCenter defaultCenter]removeObserver:self name:CHECKBINDNOTIFICATIONINHOMEPAGE object:nil];
[_backgroundImgView release];
[super dealloc];
}
- (id)initWithNibName:(NSString *)nibNameOrNil
bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
_backgroundImgView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, WINDOWWIDTH, WINDOWHEIGHT)];
_backgroundImgView.image=[UIImage imageNamed:@"defaultBG.png"];
_skinBtn=[UIButton initButtonInstanceWithType:UIButtonTypeCustom
frame:CGRectMake(275, 420, 33, 30)
imgName:@"skinBtn.png"
eventTarget:self
touchUpFunc:@selector(skinButton_touchUpInside:)
touchDownFunc:nil];
_sinaWeiboBtn=[UIButton initButtonInstanceWithType:UIButtonTypeCustom
frame:CGRectMake(60, 70, 89, 89)
eventTarget:self
touchUpFunc:@selector(button_TouchUpInside:)
touchDownFunc:nil];
_sinaWeiboBtn.tag=1000;
_tencentWeiboBtn=[UIButton initButtonInstanceWithType:UIButtonTypeCustom
frame:CGRectMake(171, 70, 89, 89)
eventTarget:self
touchUpFunc:@selector(button_TouchUpInside:)
touchDownFunc:nil];
_tencentWeiboBtn.tag=1001;
_renrenBtn=[UIButton initButtonInstanceWithType:UIButtonTypeCustom
frame:CGRectMake(60, 185, 89, 89)
eventTarget:self
touchUpFunc:@selector(button_TouchUpInside:)
touchDownFunc:nil];
_renrenBtn.tag=1002;
_tianyaBtn=[UIButton initButtonInstanceWithType:UIButtonTypeCustom
frame:CGRectMake(171, 185, 89, 89)
eventTarget:self
touchUpFunc:@selector(button_TouchUpInside:)
touchDownFunc:nil];
_tianyaBtn.tag=1003;
_shareBtn=[UIButton initButtonInstanceWithType:UIButtonTypeCustom
frame:CGRectMake(60, 300, 89, 89)
imgName:@"share_homePage.png"
eventTarget:self
touchUpFunc:@selector(button_TouchUpInside:)
touchDownFunc:nil];
_shareBtn.tag=1004;
_settingBtn=[UIButton initButtonInstanceWithType:UIButtonTypeCustom
frame:CGRectMake(171, 300, 89, 89)
imgName:@"setting_homePage.png"
eventTarget:self
touchUpFunc:@selector(button_TouchUpInside:)
touchDownFunc:nil];
_settingBtn.tag=1005;
if (![AppConfig(@"homePage_tip_hasShown") boolValue]) {
// _tipBtn=[UIButton buttonWithType:UIButtonTypeCustom];
// _tipBtn.frame=CGRectMake(0, 0, WINDOWWIDTH, WINDOWHEIGHT-STATUSBARHEIGHT);
// [_tipBtn setBackgroundImage:[UIImage imageNamed:@"homePage_tip.png"] forState:UIControlStateNormal];
// [_tipBtn addTarget:self action:@selector(tipButton_touchUpInside:) forControlEvents:UIControlEventTouchUpInside];
_tipBtn=[UIButton initButtonInstanceWithType:UIButtonTypeCustom
frame:CGRectMake(0, 0, WINDOWWIDTH, WINDOWHEIGHT-STATUSBARHEIGHT)
imgName:@"homePage_tip.png"
eventTarget:self
touchUpFunc:@selector(tipButton_touchUpInside:)
touchDownFunc:nil];
}
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self registeBindNotification];
[self.view addSubview:self.backgroundImgView];
[self.view addSubview:self.sinaWeiboBtn];
[self.view addSubview:self.tencentWeiboBtn];
[self.view addSubview:self.renrenBtn];
[self.view addSubview:self.tianyaBtn];
[self.view addSubview:self.shareBtn];
[self.view addSubview:self.settingBtn];
[self.view addSubview:self.skinBtn];
if (self.tipBtn) {
[self.view addSubview:self.tipBtn];
[self.view bringSubviewToFront:self.tipBtn];
}
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSMutableDictionary *bindDctionary=[[NSMutableDictionary alloc]init];
[bindDctionary setObject:[NSNumber numberWithBool:[SinaWeiboManager isBoundToApplication]] forKey:@"SinaWeibo"];
[bindDctionary setObject:[NSNumber numberWithBool:[TencentWeiboManager isBoundToApplication]] forKey:@"TencentWeibo"];
[bindDctionary setObject:[NSNumber numberWithBool:[RenRenManager isBoundToApplication]] forKey:@"RenRen"];
[bindDctionary setObject:[NSNumber numberWithBool:NO] forKey:@"Tianya"];
[[NSNotificationCenter defaultCenter]postNotificationName:CHECKBINDNOTIFICATIONINHOMEPAGE object:bindDctionary];
[bindDctionary release];
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
#pragma mark - private methods -
- (void)button_TouchUpInside:(id)sender{
UINavigationController *navCtrller=nil;
UIButton *clickedBtn=(UIButton*)sender;
if(clickedBtn){
if(clickedBtn.tag==1000){ //新浪微博
NSLog(@"新浪微博");
navCtrller=[self createSinaWeiboNavCtrller];
navCtrller.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:navCtrller animated:YES];
}else if(clickedBtn.tag==1001){ //腾讯微博
NSLog(@"腾讯微博");
navCtrller=[self createTencentWeiboNavCtrller];
navCtrller.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:navCtrller animated:YES];
}else if(clickedBtn.tag==1002){ //人人网
NSLog(@"人人网");
RevealController *revealCtrller;
revealCtrller=[self createRenRenRevealCtrller];
revealCtrller.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:revealCtrller animated:YES];
}else if(clickedBtn.tag==1003){ //天涯社区
NSLog(@"天涯社区");
UINavigationController *publishMainNavCtrller=[self createTianyaRevealCtrller];
publishMainNavCtrller.modalTransitionStyle=UIModalTransitionStyleCrossDissolve; //底部滑入
[self presentModalViewController:publishMainNavCtrller animated:YES];
return;
}else if(clickedBtn.tag==1004){ //分享心情
NSLog(@"分享心情");
if ([GlobalInstance isEnableNetwork]) {
UINavigationController *publishNavCtrller=[self createPublishNavCtrller];
publishNavCtrller.modalTransitionStyle=UIModalTransitionStyleCoverVertical; //底部滑入
[self presentModalViewController:publishNavCtrller animated:YES];
}else {
[GlobalInstance showMessageBoxWithMessage:@"请先进入“设置-通用-网络”开启网络连接。"];
}
return;
}else if(clickedBtn.tag==1005){ //设置
NSLog(@"设置");
UINavigationController *settingNavCtrller=[self createSettingNavCtrller];
settingNavCtrller.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
[self presentModalViewController:settingNavCtrller animated:YES];
return;
}
}
}
/*
*注册绑定通知
*/
-(void)registeBindNotification{
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(handleNotification:) name:CHECKBINDNOTIFICATIONINHOMEPAGE object:nil];
}
/*
*处理通知
*/
-(void)handleNotification:(NSNotification*)notification{
NSMutableDictionary *bindDictionary=(NSMutableDictionary*)[notification object];
BOOL isBindToSinaWeibo=[(NSNumber*)[bindDictionary objectForKey:@"SinaWeibo"] boolValue];
BOOL isBindToTencentWeibo=[(NSNumber*)[bindDictionary objectForKey:@"TencentWeibo"] boolValue];
BOOL isBindToRenRen=[(NSNumber*)[bindDictionary objectForKey:@"RenRen"] boolValue];
BOOL isBindToTianya=[(NSNumber*)[bindDictionary objectForKey:@"Tianya"] boolValue];
//处理图片
[self.sinaWeiboBtn setBackgroundImage:[UIImage imageNamed:(isBindToSinaWeibo?@"sinaWeibo_binding":@"sinaWeibo_unbind.png")] forState:UIControlStateNormal];
[self.tencentWeiboBtn setBackgroundImage:[UIImage imageNamed:(isBindToTencentWeibo?@"tencentWeibo_binding":@"tencentWeibo_unbind.png")] forState:UIControlStateNormal];
[self.renrenBtn setBackgroundImage:[UIImage imageNamed:(isBindToRenRen?@"renren_binding":@"renren_unbind.png")] forState:UIControlStateNormal];
[self.tianyaBtn setBackgroundImage:[UIImage imageNamed:(isBindToTianya?@"tianya_binding":@"tianya_unbind.png")] forState:UIControlStateNormal];
}
/*
*提示图片点击事件
*/
- (void)tipButton_touchUpInside:(id)sender{
//设置alpha渐变到消失,然后移除
[UIView animateWithDuration:1
animations:^{
self.tipBtn.alpha=0.0;
}
completion:^(BOOL finished){
if (finished) {
[[FEBAppConfig sharedAppConfig]
setValue:[NSNumber numberWithBool:YES]
forKey:@"homePage_tip_hasShown"];
[self.tipBtn removeFromSuperview];
}
}
];
}
- (void)skinButton_touchUpInside:(id)sender{
int currentIndex=[AppConfig(@"current_HomePage_BG_Index") intValue];
currentIndex=(currentIndex==2)?0:++currentIndex;
NSString *resourceName;
if (currentIndex==0) {
resourceName=@"defaultBG.png";
}else {
resourceName=[NSString stringWithFormat:@"IMG_00%d.JPG",currentIndex];
}
UIImage *changedImg=[UIImage imageNamed:resourceName];
self.backgroundImgView.image=changedImg;
[[FEBAppConfig sharedAppConfig] setValue:[NSNumber numberWithInt:currentIndex] forKey:@"current_HomePage_BG_Index"];
}
#pragma mark - init all platform main controllers -
-(UINavigationController*)createSinaWeiboNavCtrller{
SinaWeiboSwitchController *sinaWeiboSwitchCtrller=[[SinaWeiboSwitchController alloc]initWithNibName:@"SinaWeiboSwitchView" bundle:nil];
UINavigationController *sinaWeiboNavigationController=[[[UINavigationController alloc]initWithRootViewController:sinaWeiboSwitchCtrller]autorelease];
[sinaWeiboSwitchCtrller release];
return sinaWeiboNavigationController;
}
-(UINavigationController*)createTencentWeiboNavCtrller{
TencentWeiboSwitchController *tencentWeiboSwitchCtrller=[[TencentWeiboSwitchController alloc]initWithNibName:@"TencentWeiboSwitchView" bundle:nil];
UINavigationController *tencentWeiboNavigationController=[[[UINavigationController alloc]initWithRootViewController:tencentWeiboSwitchCtrller]autorelease];
[tencentWeiboSwitchCtrller release];
return tencentWeiboNavigationController;
}
-(RevealController*)createRenRenRevealCtrller{
RenRenMainController *frontViewController;
RenRenFeedCategoryController *rearViewController;
CGRect tableViewFrame=CGRectMake(0, 0, WINDOWWIDTH, 436);
frontViewController=[[RenRenMainController alloc] initWithRefreshHeaderViewEnabled:YES andLoadMoreFooterViewEnabled:YES andTableViewFrame:tableViewFrame];
// frontViewController = [[RenRenMainController alloc] initWithNibName:@"RenRenMainView" bundle:nil];
rearViewController = [[RenRenFeedCategoryController alloc] initWithNibName:@"RenRenFeedCategoryView" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];
navigationController.navigationItem.title=@"新鲜事";
navigationController.navigationBar.hidden=NO;
navigationController.navigationBar.tintColor=defaultNavigationBGColor;
RevealController *revealController = [[[RevealController alloc] initWithFrontViewController:navigationController rearViewController:rearViewController]autorelease];
[navigationController release];
[frontViewController release];
[rearViewController release];
return revealController;
}
-(UINavigationController*)createTianyaRevealCtrller{
TianyaMainController *publishMainController=[[TianyaMainController alloc]initWithNibName:@"TianyaMainView" bundle:nil];
UINavigationController *publichMainNavigationController=[[[UINavigationController alloc]initWithRootViewController:publishMainController]autorelease];
[publishMainController release];
publichMainNavigationController.navigationBar.hidden=NO;
publichMainNavigationController.navigationBar.tintColor=defaultNavigationBGColor;
return publichMainNavigationController;
}
-(UINavigationController*)createPublishNavCtrller{
PublishController *publishCtrller=[[PublishController alloc]
initWithNibName:@"PublishView"
bundle:nil
content:nil];
UINavigationController *publichNavCtrller=[[[UINavigationController alloc]initWithRootViewController:publishCtrller]autorelease];
[publishCtrller release];
publichNavCtrller.navigationBar.hidden=NO;
publichNavCtrller.navigationBar.tintColor=defaultNavigationBGColor;
return publichNavCtrller;
}
-(UINavigationController*)createSettingNavCtrller{
SettingMainController *settingMainController=[[SettingMainController alloc]initWithNibName:@"SettingMainView" bundle:nil];
UINavigationController *settingNavigationController=[[[UINavigationController alloc]initWithRootViewController:settingMainController]autorelease];
[settingMainController release];
settingNavigationController.navigationBar.hidden=NO;
settingNavigationController.navigationBar.tintColor=defaultNavigationBGColor;
return settingNavigationController;
}
@end