NewsBlur/clients/ios/Classes/NewsBlurAppDelegate.h

383 lines
16 KiB
C
Raw Normal View History

//
// NewsBlurAppDelegate.h
// NewsBlur
//
// Created by Samuel Clay on 6/16/10.
// Copyright NewsBlur 2010. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "BaseViewController.h"
#import "FMDatabaseQueue.h"
#define FEED_DETAIL_VIEW_TAG 1000001
#define STORY_DETAIL_VIEW_TAG 1000002
#define FEED_TITLE_GRADIENT_TAG 100003
2012-06-20 09:32:55 -07:00
#define FEED_DASHBOARD_VIEW_TAG 100004
2012-07-03 11:15:09 -07:00
#define SHARE_MODAL_HEIGHT 120
2012-07-23 15:27:20 -07:00
#define STORY_TITLES_HEIGHT 240
#define DASHBOARD_TITLE @"NewsBlur"
@class NewsBlurViewController;
@class DashboardViewController;
2012-06-19 10:55:46 -07:00
@class FeedsMenuViewController;
@class FeedDetailViewController;
@class FeedDetailMenuViewController;
2012-06-20 09:32:55 -07:00
@class FeedDashboardViewController;
@class FirstTimeUserViewController;
2012-07-22 14:23:50 -07:00
@class FirstTimeUserAddSitesViewController;
@class FirstTimeUserAddFriendsViewController;
@class FirstTimeUserAddNewsBlurViewController;
@class FriendsListViewController;
@class FontSettingsViewController;
@class StoryDetailViewController;
@class StoryPageControl;
2012-06-21 11:53:48 -07:00
@class ShareViewController;
@class LoginViewController;
@class AddSiteViewController;
@class MoveSiteViewController;
2012-12-24 23:01:25 -08:00
@class TrainerViewController;
@class OriginalStoryViewController;
2012-07-01 18:26:39 -07:00
@class UserProfileViewController;
@class NBContainerViewController;
2013-06-21 17:48:06 -07:00
@class IASKAppSettingsViewController;
@class UnreadCounts;
2012-06-15 16:35:54 -07:00
@interface NewsBlurAppDelegate : BaseViewController <UIApplicationDelegate, UIAlertViewDelegate, UINavigationControllerDelegate> {
UIWindow *window;
2012-07-22 14:23:50 -07:00
UINavigationController *ftuxNavigationController;
UINavigationController *navigationController;
2012-07-31 17:17:02 -07:00
UINavigationController *modalNavigationController;
2012-08-13 18:45:06 -07:00
UINavigationController *shareNavigationController;
UINavigationController *userProfileNavigationController;
UINavigationController *trainNavigationController;
NBContainerViewController *masterContainerViewController;
2012-07-22 14:23:50 -07:00
FirstTimeUserViewController *firstTimeUserViewController;
FirstTimeUserAddSitesViewController *firstTimeUserAddSitesViewController;
FirstTimeUserAddFriendsViewController *firstTimeUserAddFriendsViewController;
FirstTimeUserAddNewsBlurViewController *firstTimeUserAddNewsBlurViewController;
DashboardViewController *dashboardViewController;
NewsBlurViewController *feedsViewController;
2012-06-19 10:55:46 -07:00
FeedsMenuViewController *feedsMenuViewController;
FeedDetailViewController *feedDetailViewController;
FeedDetailMenuViewController *feedDetailMenuViewController;
2012-06-20 09:32:55 -07:00
FeedDashboardViewController *feedDashboardViewController;
2012-07-01 18:26:39 -07:00
FriendsListViewController *friendsListViewController;
FontSettingsViewController *fontSettingsViewController;
StoryDetailViewController *storyDetailViewController;
StoryPageControl *storyPageControl;
2012-06-21 11:53:48 -07:00
ShareViewController *shareViewController;
LoginViewController *loginViewController;
AddSiteViewController *addSiteViewController;
MoveSiteViewController *moveSiteViewController;
2012-12-24 23:01:25 -08:00
TrainerViewController *trainerViewController;
OriginalStoryViewController *originalStoryViewController;
2012-07-01 18:26:39 -07:00
UserProfileViewController *userProfileViewController;
2013-06-21 17:48:06 -07:00
IASKAppSettingsViewController *preferencesViewController;
NSString * activeUsername;
NSString * activeUserProfileId;
NSString * activeUserProfileName;
BOOL hasNoSites;
BOOL isRiverView;
2012-06-26 11:45:42 -07:00
BOOL isSocialView;
2012-08-08 10:57:38 -07:00
BOOL isSocialRiverView;
BOOL isTryFeedView;
BOOL popoverHasFeedView;
2012-06-29 23:25:56 -07:00
BOOL inFeedDetail;
2012-08-02 18:00:48 -07:00
BOOL inStoryDetail;
BOOL inFindingStoryMode;
BOOL hasLoadedFeedDetail;
2013-07-17 19:00:00 -07:00
BOOL hasQueuedReadStories;
2012-07-16 19:45:14 -07:00
NSString *tryFeedStoryId;
NSDictionary * activeFeed;
NSMutableDictionary * activeClassifiers;
NSArray * activePopularTags;
NSArray * activePopularAuthors;
NSString * activeFolder;
2012-06-25 18:05:25 -07:00
NSDictionary * activeComment;
NSString * activeShareType;
NSArray * activeFolderFeeds;
NSArray * activeFeedStories;
NSArray * activeFeedUserProfiles;
NSMutableArray * activeFeedStoryLocations;
NSMutableArray * activeFeedStoryLocationIds;
NSDictionary * activeStory;
NSURL * activeOriginalStoryURL;
2012-06-20 08:33:16 -07:00
int feedDetailPortraitYCoordinate;
int storyCount;
2012-11-26 09:54:20 -08:00
int storyLocationsCount;
int originalStoryCount;
NSInteger selectedIntelligence;
int visibleUnreadCount;
int savedStoriesCount;
int totalUnfetchedStoryCount;
int remainingUnfetchedStoryCount;
int latestFetchedStoryDate;
int latestCachedImageDate;
int totalUncachedImagesCount;
int remainingUncachedImagesCount;
2013-07-19 15:41:43 -07:00
NSMutableDictionary * recentlyReadStories;
NSMutableArray * recentlyReadStoryLocations;
NSMutableSet * recentlyReadFeeds;
NSMutableArray * readStories;
NSMutableDictionary *folderCountCache;
NSDictionary * dictFolders;
2012-07-27 16:10:13 -07:00
NSMutableDictionary * dictFeeds;
2012-06-26 16:24:19 -07:00
NSMutableDictionary * dictActiveFeeds;
2012-06-25 15:02:20 -07:00
NSDictionary * dictSocialFeeds;
NSDictionary * dictSocialProfile;
2012-07-01 18:26:39 -07:00
NSDictionary * dictUserProfile;
NSDictionary * dictSocialServices;
NSMutableDictionary * dictUnreadCounts;
2012-07-26 23:07:47 -07:00
NSArray * userInteractionsArray;
NSArray * userActivitiesArray;
NSMutableArray * dictFoldersArray;
FMDatabaseQueue *database;
NSOperationQueue *offlineQueue;
NSOperationQueue *offlineCleaningQueue;
NSArray *categories;
NSDictionary *categoryFeeds;
2012-11-01 15:26:50 -07:00
UIImageView *splashView;
NSMutableDictionary *activeCachedImages;
}
2012-07-15 15:06:06 -07:00
@property (nonatomic) IBOutlet UIWindow *window;
2012-07-22 14:23:50 -07:00
@property (nonatomic) IBOutlet UINavigationController *ftuxNavigationController;
@property (nonatomic) IBOutlet UINavigationController *navigationController;
2012-07-31 17:17:02 -07:00
@property (nonatomic) UINavigationController *modalNavigationController;
2012-08-13 18:45:06 -07:00
@property (nonatomic) UINavigationController *shareNavigationController;
@property (nonatomic) UINavigationController *trainNavigationController;
@property (nonatomic) UINavigationController *userProfileNavigationController;
@property (nonatomic) IBOutlet NBContainerViewController *masterContainerViewController;
2012-07-15 15:06:06 -07:00
@property (nonatomic) IBOutlet DashboardViewController *dashboardViewController;
@property (nonatomic) IBOutlet NewsBlurViewController *feedsViewController;
@property (nonatomic) IBOutlet FeedsMenuViewController *feedsMenuViewController;
@property (nonatomic) IBOutlet FeedDetailViewController *feedDetailViewController;
@property (nonatomic) IBOutlet FeedDetailMenuViewController *feedDetailMenuViewController;
@property (nonatomic) IBOutlet FeedDashboardViewController *feedDashboardViewController;
2012-07-15 15:06:06 -07:00
@property (nonatomic) IBOutlet FriendsListViewController *friendsListViewController;
@property (nonatomic) IBOutlet StoryDetailViewController *storyDetailViewController;
@property (nonatomic) IBOutlet StoryPageControl *storyPageControl;
2012-07-15 15:06:06 -07:00
@property (nonatomic) IBOutlet LoginViewController *loginViewController;
@property (nonatomic) IBOutlet AddSiteViewController *addSiteViewController;
@property (nonatomic) IBOutlet MoveSiteViewController *moveSiteViewController;
2012-12-24 23:01:25 -08:00
@property (nonatomic) IBOutlet TrainerViewController *trainerViewController;
2012-07-15 15:06:06 -07:00
@property (nonatomic) IBOutlet OriginalStoryViewController *originalStoryViewController;
@property (nonatomic) IBOutlet ShareViewController *shareViewController;
@property (nonatomic) IBOutlet FontSettingsViewController *fontSettingsViewController;
@property (nonatomic) IBOutlet UserProfileViewController *userProfileViewController;
2013-06-21 17:48:06 -07:00
@property (nonatomic) IBOutlet IASKAppSettingsViewController *preferencesViewController;
2012-07-22 14:23:50 -07:00
@property (nonatomic) IBOutlet FirstTimeUserViewController *firstTimeUserViewController;
@property (nonatomic) IBOutlet FirstTimeUserAddSitesViewController *firstTimeUserAddSitesViewController;
@property (nonatomic) IBOutlet FirstTimeUserAddFriendsViewController *firstTimeUserAddFriendsViewController;
@property (nonatomic) IBOutlet FirstTimeUserAddNewsBlurViewController *firstTimeUserAddNewsBlurViewController;
2012-07-15 15:06:06 -07:00
@property (readwrite) NSString * activeUsername;
@property (readwrite) NSString * activeUserProfileId;
@property (readwrite) NSString * activeUserProfileName;
@property (nonatomic, readwrite) BOOL hasNoSites;
@property (nonatomic, readwrite) BOOL isRiverView;
2012-06-26 11:45:42 -07:00
@property (nonatomic, readwrite) BOOL isSocialView;
2012-08-08 10:57:38 -07:00
@property (nonatomic, readwrite) BOOL isSocialRiverView;
@property (nonatomic, readwrite) BOOL isTryFeedView;
@property (nonatomic, readwrite) BOOL inFindingStoryMode;
@property (nonatomic, readwrite) BOOL hasLoadedFeedDetail;
2012-07-16 19:45:14 -07:00
@property (nonatomic) NSString *tryFeedStoryId;
@property (nonatomic) NSString *tryFeedCategory;
@property (nonatomic, readwrite) BOOL popoverHasFeedView;
2012-06-29 23:25:56 -07:00
@property (nonatomic, readwrite) BOOL inFeedDetail;
2012-08-02 18:00:48 -07:00
@property (nonatomic, readwrite) BOOL inStoryDetail;
2012-07-15 15:06:06 -07:00
@property (readwrite) NSDictionary * activeFeed;
@property (strong, readwrite) NSMutableDictionary * activeClassifiers;
@property (strong, readwrite) NSArray * activePopularTags;
@property (strong, readwrite) NSArray * activePopularAuthors;
2012-07-15 15:06:06 -07:00
@property (readwrite) NSString * activeFolder;
@property (readwrite) NSDictionary * activeComment;
@property (readwrite) NSString * activeShareType;
2012-07-15 15:06:06 -07:00
@property (readwrite) NSArray * activeFolderFeeds;
@property (readwrite) NSArray * activeFeedStories;
@property (readwrite) NSArray * activeFeedUserProfiles;
@property (readwrite) NSMutableArray * activeFeedStoryLocations;
@property (readwrite) NSMutableArray * activeFeedStoryLocationIds;
@property (readwrite) NSDictionary * activeStory;
@property (readwrite) NSURL * activeOriginalStoryURL;
2012-06-20 08:33:16 -07:00
@property (readwrite) int feedDetailPortraitYCoordinate;
@property (readwrite) int storyCount;
2012-11-26 09:54:20 -08:00
@property (readwrite) int storyLocationsCount;
@property (readwrite) int originalStoryCount;
@property (readwrite) int visibleUnreadCount;
@property (readwrite) int savedStoriesCount;
@property (readwrite) int totalUnfetchedStoryCount;
@property (readwrite) int remainingUnfetchedStoryCount;
@property (readwrite) int totalUncachedImagesCount;
@property (readwrite) int remainingUncachedImagesCount;
@property (readwrite) int latestFetchedStoryDate;
@property (readwrite) int latestCachedImageDate;
@property (readwrite) NSInteger selectedIntelligence;
2013-07-19 15:41:43 -07:00
@property (readwrite) NSMutableDictionary * recentlyReadStories;
@property (readwrite) NSMutableArray * recentlyReadStoryLocations;
2012-07-15 15:06:06 -07:00
@property (readwrite) NSMutableSet * recentlyReadFeeds;
@property (readwrite) NSMutableArray * readStories;
@property (readwrite) NSMutableDictionary *unreadStoryHashes;
@property (nonatomic) NSMutableDictionary *folderCountCache;
2012-07-15 15:06:06 -07:00
@property (nonatomic) NSDictionary *dictFolders;
2012-07-27 16:10:13 -07:00
@property (nonatomic, strong) NSMutableDictionary *dictFeeds;
2012-07-15 15:06:06 -07:00
@property (nonatomic) NSMutableDictionary *dictActiveFeeds;
@property (nonatomic) NSDictionary *dictSocialFeeds;
@property (nonatomic) NSDictionary *dictSocialProfile;
2012-07-15 15:06:06 -07:00
@property (nonatomic) NSDictionary *dictUserProfile;
@property (nonatomic) NSDictionary *dictSocialServices;
@property (nonatomic, strong) NSMutableDictionary *dictUnreadCounts;
2012-07-26 23:07:47 -07:00
@property (nonatomic) NSArray *userInteractionsArray;
@property (nonatomic) NSArray *userActivitiesArray;
2012-07-15 15:06:06 -07:00
@property (nonatomic) NSMutableArray *dictFoldersArray;
@property (nonatomic) NSArray *categories;
@property (nonatomic) NSDictionary *categoryFeeds;
@property (readwrite) FMDatabaseQueue *database;
@property (nonatomic) NSOperationQueue *offlineQueue;
@property (nonatomic) NSOperationQueue *offlineCleaningQueue;
@property (nonatomic) NSMutableDictionary *activeCachedImages;
@property (nonatomic, readwrite) BOOL hasQueuedReadStories;
+ (NewsBlurAppDelegate*) sharedAppDelegate;
2012-11-01 15:26:50 -07:00
- (void)startupAnimationDone:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;
2013-07-16 18:06:36 -07:00
- (void)registerDefaultsFromSettingsBundle;
- (void)showFirstTimeUser;
- (void)showLogin;
- (void)setupReachability;
2012-06-24 23:02:37 -07:00
// social
- (NSDictionary *)getUser:(int)userId;
- (void)showUserProfileModal:(id)sender;
- (void)pushUserProfile;
- (void)hideUserProfileModal;
- (void)showFindFriends;
2013-06-21 17:48:06 -07:00
- (void)showPreferences;
- (void)showMoveSite;
2012-12-24 23:01:25 -08:00
- (void)openTrainSite;
- (void)openTrainStory:(id)sender;
- (void)loadFeedDetailView;
- (void)loadTryFeedDetailView:(NSString *)feedId withStory:(NSString *)contentId isSocial:(BOOL)social withUser:(NSDictionary *)user showFindingStory:(BOOL)showHUD;
- (void)loadStarredDetailViewWithStory:(NSString *)contentId showFindingStory:(BOOL)showHUD;
- (void)loadRiverFeedDetailView;
- (void)loadStoryDetailView;
- (void)adjustStoryDetailWebView;
2012-07-23 15:27:20 -07:00
- (void)calibrateStoryTitles;
- (void)recalculateIntelligenceScores:(id)feedId;
- (void)reloadFeedsView:(BOOL)showLoader;
- (void)setTitle:(NSString *)title;
- (void)showOriginalStory:(NSURL *)url;
- (void)closeOriginalStory;
- (void)hideStoryDetailView;
- (void)changeActiveFeedDetailRow;
2012-06-20 08:33:16 -07:00
- (void)dragFeedDetailView:(float)y;
- (void)showShareView:(NSString *)type setUserId:(NSString *)userId setUsername:(NSString *)username setReplyId:(NSString *)commentIndex;
- (void)hideShareView:(BOOL)resetComment;
- (void)resetShareComments;
- (BOOL)isSocialFeed:(NSString *)feedIdStr;
2012-07-02 13:10:00 -07:00
- (BOOL)isPortrait;
- (NSString *)orderKey;
- (NSString *)readFilterKey;
- (void)confirmLogout;
- (void)showConnectToService:(NSString *)serviceName;
- (void)refreshUserProfile:(void(^)())callback;
2012-06-28 15:03:28 -07:00
- (int)indexOfNextUnreadStory;
- (int)locationOfNextUnreadStory;
2011-06-15 11:21:55 -04:00
- (int)indexOfNextStory;
- (int)locationOfNextStory;
2011-06-15 11:21:55 -04:00
- (int)indexOfActiveStory;
- (int)indexOfStoryId:(id)storyId;
- (int)locationOfActiveStory;
- (int)indexFromLocation:(int)location;
- (void)pushReadStory:(id)storyId;
- (id)popReadStory;
- (int)locationOfStoryId:(id)storyId;
- (NSString *)activeOrder;
- (NSString *)activeReadFilter;
- (void)setStories:(NSArray *)activeFeedStoriesValue;
- (void)setFeedUserProfiles:(NSArray *)activeFeedUserProfilesValue;
- (void)addStories:(NSArray *)stories;
- (void)addFeedUserProfiles:(NSArray *)activeFeedUserProfilesValue;
- (void)populateDictUnreadCounts;
- (int)unreadCount;
- (int)allUnreadCount;
- (int)unreadCountForFeed:(NSString *)feedId;
- (int)unreadCountForFolder:(NSString *)folderName;
- (UnreadCounts *)splitUnreadCountForFeed:(NSString *)feedId;
- (UnreadCounts *)splitUnreadCountForFolder:(NSString *)folderName;
- (void)markActiveStoryRead;
2012-10-16 17:24:01 -07:00
- (void)markActiveStoryUnread;
- (NSDictionary *)markVisibleStoriesRead;
- (void)markStoryRead:(NSString *)storyId feedId:(id)feedId;
- (void)markStoryRead:(NSDictionary *)story feed:(NSDictionary *)feed;
2012-10-16 17:24:01 -07:00
- (void)markStoryUnread:(NSString *)storyId feedId:(id)feedId;
- (void)markStoryUnread:(NSDictionary *)story feed:(NSDictionary *)feed;
- (void)markActiveStorySaved:(BOOL)saved;
- (void)markActiveFeedAllRead;
- (void)markActiveFolderAllRead;
- (void)markFeedAllRead:(id)feedId;
- (void)calculateStoryLocations;
+ (int)computeStoryScore:(NSDictionary *)intelligence;
- (NSString *)extractFolderName:(NSString *)folderName;
- (NSString *)extractParentFolderName:(NSString *)folderName;
- (NSDictionary *)getFeed:(NSString *)feedId;
+ (void)fillGradient:(CGRect)r startColor:(UIColor *)startColor endColor:(UIColor *)endColor;
+ (UIView *)makeGradientView:(CGRect)rect startColor:(NSString *)start endColor:(NSString *)end;
- (UIView *)makeFeedTitleGradient:(NSDictionary *)feed withRect:(CGRect)rect;
- (UIView *)makeFeedTitle:(NSDictionary *)feed;
- (UIButton *)makeRightFeedTitle:(NSDictionary *)feed;
- (void)toggleAuthorClassifier:(NSString *)author feedId:(NSString *)feedId;
- (void)toggleTagClassifier:(NSString *)tag feedId:(NSString *)feedId;
- (void)toggleTitleClassifier:(NSString *)title feedId:(NSString *)feedId score:(int)score;
- (void)toggleFeedClassifier:(NSString *)feedId;
- (void)requestClassifierResponse:(ASIHTTPRequest *)request withFeed:(NSString *)feedId;
- (int)databaseSchemaVersion:(FMDatabase *)db;
- (void)createDatabaseConnection;
- (void)setupDatabase:(FMDatabase *)db;
- (void)cancelOfflineQueue;
- (void)startOfflineQueue;
- (void)startOfflineFetchStories;
- (void)startOfflineFetchImages;
- (BOOL)isReachabileForOffline;
- (void)storeUserProfiles:(NSArray *)userProfiles;
2013-08-06 18:08:55 -07:00
- (void)queueReadStories:(NSDictionary *)feedsStories;
- (void)flushQueuedReadStories:(BOOL)forceCheck withCallback:(void(^)())callback;
- (void)syncQueuedReadStories:(FMDatabase *)db withStories:(NSDictionary *)hashes withCallback:(void(^)())callback;
- (void)prepareActiveCachedImages:(FMDatabase *)db;
- (void)deleteAllCachedImages;
@end
@interface UnreadCounts : NSObject {
int ps;
int nt;
int ng;
}
@property (readwrite) int ps;
@property (readwrite) int nt;
@property (readwrite) int ng;
- (void)addCounts:(UnreadCounts *)counts;
@end