mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Using a popover for training on the iPad. Also adding the train button to the bottom of every story.
This commit is contained in:
parent
1e0d637173
commit
e5ddce5ae0
14 changed files with 89 additions and 69 deletions
|
@ -209,7 +209,7 @@
|
|||
} else if (indexPath.row == 2) {
|
||||
[appDelegate.storyPageControl openSendToDialog];
|
||||
} else if (indexPath.row == 3) {
|
||||
[appDelegate openTrainStory];
|
||||
[appDelegate openTrainStory:appDelegate.storyPageControl.fontSettingsButton];
|
||||
} else if (indexPath.row == 4) {
|
||||
[appDelegate.storyPageControl.currentPage openShareDialog];
|
||||
}
|
||||
|
|
|
@ -318,14 +318,20 @@
|
|||
dispatch_get_current_queue(), ^{
|
||||
popoverController = [[UIPopoverController alloc]
|
||||
initWithContentViewController:appDelegate.trainerViewController];
|
||||
|
||||
popoverController.delegate = self;
|
||||
|
||||
|
||||
[popoverController setPopoverContentSize:CGSizeMake(420, 512)];
|
||||
[popoverController presentPopoverFromBarButtonItem:sender
|
||||
permittedArrowDirections:UIPopoverArrowDirectionAny
|
||||
animated:NO];
|
||||
[popoverController setPopoverContentSize:CGSizeMake(420, 382)];
|
||||
if ([sender class] == [UIBarButtonItem class]) {
|
||||
[popoverController presentPopoverFromBarButtonItem:sender
|
||||
permittedArrowDirections:UIPopoverArrowDirectionAny
|
||||
animated:NO];
|
||||
} else {
|
||||
CGRect frame = [sender CGRectValue];
|
||||
[popoverController presentPopoverFromRect:frame
|
||||
inView:self.storyPageControl.view
|
||||
permittedArrowDirections:UIPopoverArrowDirectionAny
|
||||
animated:YES];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -228,7 +228,7 @@
|
|||
- (void)showAddSiteModal:(id)sender;
|
||||
- (void)showMoveSite;
|
||||
- (void)openTrainSite;
|
||||
- (void)openTrainStory;
|
||||
- (void)openTrainStory:(id)sender;
|
||||
- (void)loadFeedDetailView;
|
||||
- (void)loadTryFeedDetailView:(NSString *)feedId withStory:(NSString *)contentId isSocial:(BOOL)social withUser:(NSDictionary *)user showFindingStory:(BOOL)showHUD;
|
||||
- (void)loadRiverFeedDetailView;
|
||||
|
|
|
@ -182,11 +182,11 @@
|
|||
}
|
||||
|
||||
[splashView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
|
||||
|
||||
splashView.alpha = 1.0;
|
||||
[window addSubview:splashView];
|
||||
[window bringSubviewToFront:splashView];
|
||||
[UIView beginAnimations:nil context:nil];
|
||||
[UIView setAnimationDuration:.5];
|
||||
[UIView setAnimationDuration:.6];
|
||||
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:window cache:YES];
|
||||
[UIView setAnimationDelegate:self];
|
||||
[UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
|
||||
|
@ -415,23 +415,19 @@
|
|||
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||
// trainerViewController.modalPresentationStyle=UIModalPresentationFormSheet;
|
||||
// [navController presentModalViewController:trainerViewController animated:YES];
|
||||
|
||||
// [navController presentModalViewController:trainerViewController animated:YES];
|
||||
[self.masterContainerViewController showTrainingPopover:self.feedDetailViewController.settingsButton];
|
||||
} else {
|
||||
[navController presentModalViewController:trainerViewController animated:YES];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)openTrainStory {
|
||||
- (void)openTrainStory:(id)sender {
|
||||
UINavigationController *navController = self.navigationController;
|
||||
trainerViewController.feedTrainer = NO;
|
||||
trainerViewController.storyTrainer = YES;
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||
// trainerViewController.modalPresentationStyle=UIModalPresentationFormSheet;
|
||||
// [navController presentModalViewController:trainerViewController animated:YES];
|
||||
|
||||
[self.masterContainerViewController showTrainingPopover:self.storyPageControl.fontSettingsButton];
|
||||
[self.masterContainerViewController showTrainingPopover:sender];
|
||||
} else {
|
||||
[navController presentModalViewController:trainerViewController animated:YES];
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
- (void)refreshComments:(NSString *)replyId;
|
||||
|
||||
- (void)openShareDialog;
|
||||
- (void)openTrainingDialog:(int)x yCoordinate:(int)y width:(int)width height:(int)height;
|
||||
- (void)finishLikeComment:(ASIHTTPRequest *)request;
|
||||
- (void)subscribeToBlurblog;
|
||||
- (void)finishSubscribeToBlurblog:(ASIHTTPRequest *)request;
|
||||
|
|
|
@ -170,11 +170,16 @@
|
|||
sharingHtmlString = [NSString stringWithFormat:@
|
||||
"<div class='NB-share-header'></div>"
|
||||
"<div class='NB-share-wrapper'><div class='NB-share-inner-wrapper'>"
|
||||
"<div id=\"NB-share-button-id\" class='NB-share-button NB-button'>"
|
||||
"<a href=\"http://ios.newsblur.com/share\"><div>"
|
||||
"Share this story <span class=\"NB-share-icon\"></span>"
|
||||
"</div></a>"
|
||||
"</div>"
|
||||
" <div id=\"NB-share-button-id\" class='NB-share-button NB-button'>"
|
||||
" <a href=\"http://ios.newsblur.com/share\"><div>"
|
||||
" <span class=\"NB-icon\"></span> Share this story"
|
||||
" </div></a>"
|
||||
" </div>"
|
||||
" <div id=\"NB-share-button-id\" class='NB-share-button NB-train-button NB-button'>"
|
||||
" <a href=\"http://ios.newsblur.com/train\"><div>"
|
||||
" <span class=\"NB-icon\"></span> Train this story"
|
||||
" </div></a>"
|
||||
" </div>"
|
||||
"</div></div>"];
|
||||
|
||||
NSString *storyHeader = [self getHeader];
|
||||
|
@ -908,6 +913,12 @@ shouldStartLoadWithRequest:(NSURLRequest *)request
|
|||
} else if ([action isEqualToString:@"share"]) {
|
||||
[self openShareDialog];
|
||||
return NO;
|
||||
} else if ([action isEqualToString:@"train"]) {
|
||||
[self openTrainingDialog:[[urlComponents objectAtIndex:2] intValue]
|
||||
yCoordinate:[[urlComponents objectAtIndex:3] intValue]
|
||||
width:[[urlComponents objectAtIndex:4] intValue]
|
||||
height:[[urlComponents objectAtIndex:5] intValue]];
|
||||
return NO;
|
||||
} else if ([action isEqualToString:@"classify-author"]) {
|
||||
NSString *author = [NSString stringWithFormat:@"%@", [urlComponents objectAtIndex:2]];
|
||||
[self.appDelegate toggleAuthorClassifier:author feedId:feedId];
|
||||
|
@ -1148,6 +1159,26 @@ shouldStartLoadWithRequest:(NSURLRequest *)request
|
|||
}
|
||||
}
|
||||
|
||||
- (void)openTrainingDialog:(int)x yCoordinate:(int)y width:(int)width height:(int)height {
|
||||
CGRect frame = CGRectZero;
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||
// only adjust for the bar if user is scrolling
|
||||
if (appDelegate.isRiverView || appDelegate.isSocialView) {
|
||||
if (self.webView.scrollView.contentOffset.y == -20) {
|
||||
y = y + 20;
|
||||
}
|
||||
} else {
|
||||
if (self.webView.scrollView.contentOffset.y == -9) {
|
||||
y = y + 9;
|
||||
}
|
||||
}
|
||||
|
||||
frame = CGRectMake(x, y, width, height);
|
||||
}
|
||||
NSLog(@"Open trainer: %@ (%d/%d/%d/%d)", NSStringFromCGRect(frame), x, y, width, height);
|
||||
[appDelegate openTrainStory:[NSValue valueWithCGRect:frame]];
|
||||
}
|
||||
|
||||
# pragma mark
|
||||
# pragma mark Subscribing to blurblog
|
||||
|
||||
|
|
|
@ -86,6 +86,7 @@
|
|||
- (void)viewDidDisappear:(BOOL)animated {
|
||||
[super viewDidDisappear:animated];
|
||||
|
||||
[self.webView loadHTMLString:@"about:blank" baseURL:nil];
|
||||
[[UIMenuController sharedMenuController] setMenuItems:nil];
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<key>application-identifier</key>
|
||||
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
|
||||
<key>get-task-allow</key>
|
||||
<false/>
|
||||
<true/>
|
||||
<key>keychain-access-groups</key>
|
||||
<array>
|
||||
<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
|
||||
|
|
|
@ -21,18 +21,18 @@
|
|||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
filePath = "Classes/NewsBlurAppDelegate.m"
|
||||
timestampString = "378357556.091978"
|
||||
timestampString = "378362070.544376"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "685"
|
||||
endingLineNumber = "685"
|
||||
startingLineNumber = "681"
|
||||
endingLineNumber = "681"
|
||||
landmarkName = "-recalculateIntelligenceScores:"
|
||||
landmarkType = "5">
|
||||
</FileBreakpoint>
|
||||
</FileBreakpoints>
|
||||
<SymbolicBreakpoints>
|
||||
<SymbolicBreakpoint
|
||||
shouldBeEnabled = "No"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
symbolName = "objc_exception_throw"
|
||||
|
@ -41,7 +41,7 @@
|
|||
</SymbolicBreakpoints>
|
||||
<ExceptionBreakpoints>
|
||||
<ExceptionBreakpoint
|
||||
shouldBeEnabled = "No"
|
||||
shouldBeEnabled = "Yes"
|
||||
ignoreCount = "0"
|
||||
continueAfterRunningActions = "No"
|
||||
scope = "0"
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
// #define BACKGROUND_REFRESH_SECONDS -5
|
||||
#define BACKGROUND_REFRESH_SECONDS -10*60
|
||||
|
||||
#define NEWSBLUR_URL [NSString stringWithFormat:@"nb.local.com"]
|
||||
// #define NEWSBLUR_URL [NSString stringWithFormat:@"www.newsblur.com"]
|
||||
// #define NEWSBLUR_URL [NSString stringWithFormat:@"nb.local.com"]
|
||||
#define NEWSBLUR_URL [NSString stringWithFormat:@"www.newsblur.com"]
|
||||
|
||||
#define NEWSBLUR_LINK_COLOR 0x405BA8
|
||||
#define NEWSBLUR_HIGHLIGHT_COLOR 0xd2e6fd
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIBarButtonItem</string>
|
||||
<string>IBUINavigationBar</string>
|
||||
<string>IBUINavigationItem</string>
|
||||
<string>IBUIView</string>
|
||||
|
@ -55,12 +54,6 @@
|
|||
<object class="IBUINavigationItem" id="288841751">
|
||||
<reference key="IBUINavigationBar" ref="537458422"/>
|
||||
<string key="IBUITitle"/>
|
||||
<object class="IBUIBarButtonItem" key="IBUIRightBarButtonItem" id="216767292">
|
||||
<string key="IBUITitle">Done Training</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIStyle">2</int>
|
||||
<reference key="IBUINavigationItem" ref="288841751"/>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
|
@ -4501,14 +4494,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">closeButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="216767292"/>
|
||||
</object>
|
||||
<int key="connectionID">13</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
|
@ -4541,14 +4526,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
</object>
|
||||
<int key="connectionID">27</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doCloseDialog:</string>
|
||||
<reference key="source" ref="216767292"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
|
@ -4597,16 +4574,9 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="288841751"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="216767292"/>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="children"/>
|
||||
<reference key="parent" ref="537458422"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="216767292"/>
|
||||
<reference key="parent" ref="288841751"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="774121839"/>
|
||||
|
@ -4625,7 +4595,6 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE</bytes>
|
|||
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
|
|
|
@ -496,10 +496,14 @@ a.NB-show-profile {
|
|||
}
|
||||
|
||||
.NB-button.NB-share-button {
|
||||
float: none;
|
||||
float: left;
|
||||
padding: 0px 0px 20px 0px;
|
||||
margin-bottom: 0;
|
||||
margin: 0 0 0 0;
|
||||
display: block;
|
||||
width: 48%;
|
||||
}
|
||||
.NB-button.NB-train-button {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.NB-button div {
|
||||
|
@ -536,13 +540,16 @@ a.NB-show-profile {
|
|||
text-shadow: 0 1px 0 #003366;
|
||||
}
|
||||
|
||||
.NB-button.NB-share-button div span {
|
||||
.NB-button.NB-share-button .NB-icon {
|
||||
background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACGUlEQVR42o2TTUsbYRSFZ+MvcNn/0EU1rSCCgkSxVRCLFgyiqFSE1tDSpNKoEaQJiAvBryDZGCVQKWIpWIeAFMHWL1qKjUJ3KRQSNUgSJzPR5PieMRMqjuLibAaec+577xkJwJ30p0jqEloXiglpQlmh3F3AaaEogWhnMw6dPTgafIljtx3i262gTSgSKbuPQ8dzxEfsSEw6kHBV4NRThrOVAaSd0o2wX0iJdj9D3PMaJ/1WKF4LtMlHyExf6jw0CO2dZAovCmWOBl4gMeFAyv0AmTyoLVRCXa1H+nsLtMgUktslpsmZ46E+JGedUMcsl2CwCumvTVD22qAcdOjS/vmQ3LVce7PCZMLa+EMdVj/XQflp06G/ezZ8/NYAV6gKUz+GcM8vXTGI8M0c20hW5QYo4XacCnhxox5dK+Wo+1SKmuUSeHdcKJ6VrpwqF3//Cqnh0kIy4djvNoyuVeNJHmwNONDrCyIg/8LjN0sFgyhPlfK/5cL4Zo7NZB2uFWDjh6fonQliXg5jQd7H3JcwDQoNy/LOPBXT9YXlx2YyYXcgpIPe+S10emTCqtAmDdbZMJaEd+apuG0ujG/m2EwmbB9fM0CrsTsaxFhPNozpvDPTuW0ujG/m2EwmbID/G2jsNutJA5aEBjyVnu7T042xrWYGWf4Y7DbryYaxJLwzT8Vtc2FGuplBTog/BrvNerJhLAnvTNDQppnBBZHZrv4ITeFuAAAAAElFTkSuQmCC") no-repeat top right;
|
||||
width: 23px;
|
||||
display: inline-block;
|
||||
height: 16px;
|
||||
margin-bottom: -2px;
|
||||
margin-right: -23px;
|
||||
margin: 0 2px -2px -12px;
|
||||
}
|
||||
|
||||
.NB-button.NB-train-button .NB-icon {
|
||||
background: url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACxElEQVR42qWT30+SURzG6a553d/QdffOq7Y2t4xEhgSYvCIM5ddUfi0QdcsMp6Ij8EcFgkoiGqFUCGYyp2Kp02XOzDUVGypcsKJYNzy9nM0517jq4tnOzvt9Pt/ne95zGAD+S/9sfHjcWhQ1qovfqRX8uIjCUWU5UbymGnNq+f2oQV2crykI2NA3xVIqJZJSCU5pU1qvR1qtJuukrA6pBhXWdI2xgoCvPHbuh9GIrLUfp9JaxLksInpN9vLfvnDKchGN4joBtDpNRRpbU7HKIufrxpU4YN1Gxu1GSl6PMxFFTOewM4kYCUpAj8QEDbhBAA8cmlh70AiTXwu9T4VD9h38CQTxy25Dsl5CIqcalfgu4OXNZJQjbvkFQDZcm7OEH8G9PAjjlDpPJ4CMvR8ZqxXp7i6cCAXEfEJVEcClBGJnFeZ3ZmEJd0A/2YD9exWkc8Y+gJ99fUh3mpGo5ueNBHBMd99ll+a0JvtNXZeniCEdFmL12xJmt4OYWB3FkK8NiwoKB9y75E/QKchZHPO52GeVYl4kRIvZg4ahKGTtYzFGnasGS3sLmNmcQmDDB0/MAe2EAiaDDTGKhzgNOuAwEavm4qG+F5LeCCwzWzC4l8HUe3MMmVOU8697MbnmgXfVDefSINReGZjGl3gV20eb8z3E3SFiokUA0r45CDvfgmUKgNFoUZbI7dKEfESCwQUrRlcc5CzKTX7MbcbhW9yDI/QJzSMrUA1EITC/IeaanjDYrQGQy5PNZq+oehUisY3K1LtFqHNRhB5aP8TYwi5e0Hoe3oawK0TMVHeIAEgC4LKUPfJrSov8KqdlKueMfIYjsoNndIIndPwqM+lMAJy2aZRpxnMFX5nE2F/CNwwnuHSh2fcRtuAWRD0R8Dpeo0znA0fzNElprbcKAC5GkzYP1VbqXRlO6zQd2Y8Kjeu3UGdrOq/5C7Lktmdg8uWWAAAAAElFTkSuQmCC") no-repeat top right;
|
||||
}
|
||||
|
||||
.NB-iphone .NB-button .NB-story-comment-like-button-wrapper,
|
||||
|
|
|
@ -14,6 +14,14 @@ $('a.NB-show-profile').live('click', function () {
|
|||
return false;
|
||||
});
|
||||
|
||||
$('.NB-train-button a').live('click', function () {
|
||||
var offset = $(this).offset();
|
||||
console.log(offset);
|
||||
var url = $(this).attr('href') + "/" + offset.left + "/" + (offset.top - window.pageYOffset) + "/" + offset.width + "/" + offset.height;
|
||||
window.location = url;
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.NB-button').live('touchstart', function () {
|
||||
$(this).addClass('selected');
|
||||
});
|
||||
|
|
|
@ -61,8 +61,8 @@
|
|||
font-weight: bold;
|
||||
line-height: 24px;
|
||||
width: 100%;
|
||||
min-height: 32px;
|
||||
-webkit-user-select: auto;
|
||||
min-height: 36px;
|
||||
-webkit-user-select: text;
|
||||
-webkit-touch-callout: default;
|
||||
-webkit-highlight: auto;
|
||||
-webkit-tap-highlight-color: auto;
|
||||
|
@ -74,6 +74,7 @@
|
|||
font-weight: bold;
|
||||
font-size: 12px;
|
||||
padding: 2px 0 4px;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.NB-story-title-positive {
|
||||
|
|
Loading…
Add table
Reference in a new issue