2 // LauncherViewController.m
5 // Created by Quang Anh Do on 25/05/2010.
6 // Copyright 2010 Quang Anh Do. All rights reserved.
9 #import "LauncherViewController.h"
10 #import "ATutorAppDelegate.h"
11 #import "CommonFunctions.h"
13 @interface LauncherViewController (Private)
20 @implementation LauncherViewController
22 @synthesize launcherView;
23 @synthesize logoutButton;
27 if (self = [super init]) {
28 self.consumer = [(ATutorAppDelegate *)[[UIApplication sharedApplication] delegate] consumer];
35 [launcherView release];
36 [logoutButton release];
45 logoutButton = [[UIBarButtonItem alloc] initWithTitle:TTLocalizedString(@"Logout", @"")
46 style:UIBarButtonItemStyleBordered
47 target:self action:@selector(logout)];
49 self.title = TTLocalizedString(@"ATutor Social", @"");
52 - (void)viewWillAppear:(BOOL)animated {
53 [super viewWillAppear:animated];
54 self.navigationItem.rightBarButtonItem = [self isLoggedIn] ? logoutButton : nil;
57 - (void)didReceiveMemoryWarning {
58 // Releases the view if it doesn't have a superview.
59 [super didReceiveMemoryWarning];
61 // Release any cached data, images, etc that aren't in use.
64 - (void)viewDidUnload {
65 [super viewDidUnload];
66 // Release any retained subviews of the main view.
67 // e.g. self.myOutlet = nil;
73 launcherView = [[TTLauncherView alloc] initWithFrame:self.view.bounds];
75 launcherView.delegate = self;
76 launcherView.backgroundColor = [UIColor colorWithRed:0.875 green:0.871 blue:0.925 alpha:1.000];
77 launcherView.columnCount = 2;
79 // Attempt to restore data if exists
82 [self.view addSubview:launcherView];
86 #pragma mark TTLauncherViewDelegate
88 - (void)launcherViewDidBeginEditing:(TTLauncherView*)launcher {
89 [self.navigationItem setRightBarButtonItem:[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
91 action:@selector(endEditing)] autorelease]
95 - (void)launcherViewDidEndEditing:(TTLauncherView*)launcher {
96 [self.navigationItem setRightBarButtonItem:logoutButton animated:YES];
98 // Persist data the ugly way
99 NSData *pages = [NSKeyedArchiver archivedDataWithRootObject:launcherView.pages];
100 [[NSUserDefaults standardUserDefaults] setObject:pages forKey:@"launcher.pages"];
103 - (void)launcherView:(TTLauncherView*)launcher didSelectItem:(TTLauncherItem*)item {
104 if ([item.title isEqualToString:TTLocalizedString(@"Activities", @"")]) {
105 [[TTNavigator navigator] openURLAction:[[TTURLAction actionWithURLPath:@"atutor://activities"] applyAnimated:YES]];
106 } else if ([item.title isEqualToString:TTLocalizedString(@"Contacts", @"")]) {
107 [[TTNavigator navigator] openURLAction:[[TTURLAction actionWithURLPath:@"atutor://contacts"] applyAnimated:YES]];
108 } else if ([item.title isEqualToString:TTLocalizedString(@"Gadgets", @"")]) {
109 [[TTNavigator navigator] openURLs:
110 [NSString stringWithFormat:@"%@/mods/_standard/social/applications.php", kATutorURL], nil];
111 } else if ([item.title isEqualToString:TTLocalizedString(@"Groups", @"")]) {
112 [[TTNavigator navigator] openURLAction:[[TTURLAction actionWithURLPath:@"atutor://groups"] applyAnimated:YES]];
117 #pragma mark QAWebControllerDelegate
119 - (void)didFinishAuthorizationInWebViewController:(QAWebController *)webViewController {
120 [consumer finishAuthProcess];
122 [[(ATutorAppDelegate *)[[UIApplication sharedApplication] delegate] helper] fetchContactList];
128 - (void)restorePages {
129 NSData *pages = [[NSUserDefaults standardUserDefaults] objectForKey:@"launcher.pages"];
131 launcherView.pages = [NSKeyedUnarchiver unarchiveObjectWithData:pages];
133 for (NSString *module in [NSArray arrayWithObjects:@"Activities", @"Contacts", @"Gadgets", @"Groups", nil]) {
134 [launcherView addItem:[[[TTLauncherItem alloc] initWithTitle:TTLocalizedString(module, @"")
135 image:[NSString stringWithFormat:@"bundle://%@.png", module]
136 URL:[NSString stringWithFormat:@"atutor://modules/%@", module]
137 canDelete:NO] autorelease]
144 return consumer.accessToken != nil;
148 [consumer clearAuthentication];
150 [self.navigationItem setRightBarButtonItem:nil animated:YES];
152 alertMessage(@"", @"You have been logged out");