mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-11-01 09:09:51 +00:00
putting social profile into a popup modal with positioning
This commit is contained in:
parent
16e1aa8ad5
commit
b81812b70f
15 changed files with 343 additions and 663 deletions
|
|
@ -216,7 +216,7 @@ shouldReloadTableForSearchScope:(NSInteger)searchOption
|
|||
|
||||
int row = currentRow;
|
||||
|
||||
appDelegate.activeUserProfile = [[self.userProfiles objectAtIndex:row] objectForKey:@"user_id"];
|
||||
appDelegate.activeUserProfileId = [[self.userProfiles objectAtIndex:row] objectForKey:@"user_id"];
|
||||
|
||||
[appDelegate.userProfileViewController getUserProfile];
|
||||
[appDelegate.findFriendsNavigationController pushViewController:appDelegate.userProfileViewController animated:YES];
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
#import "ASIFormDataRequest.h"
|
||||
#import "JSON.h"
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
#import "NewsBlurAppDelegate.h"
|
||||
|
||||
@implementation LoginViewController
|
||||
|
||||
|
|
@ -293,8 +292,7 @@
|
|||
} else {
|
||||
[self.passwordInput setText:@""];
|
||||
[self.signUpPasswordInput setText:@""];
|
||||
//[appDelegate showFirstTimeUser];
|
||||
[appDelegate.feedsViewController fetchFeedList:YES refreshFeeds:YES];
|
||||
[appDelegate showFirstTimeUser];
|
||||
[self dismissModalViewControllerAnimated:NO];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@
|
|||
UserProfileViewController *userProfileViewController;
|
||||
|
||||
NSString * activeUsername;
|
||||
NSString * activeUserProfile;
|
||||
NSString * activeUserProfileId;
|
||||
BOOL isRiverView;
|
||||
BOOL isSocialView;
|
||||
BOOL isShowingShare;
|
||||
|
|
@ -119,7 +119,7 @@
|
|||
@property (nonatomic, retain) IBOutlet UserProfileViewController *userProfileViewController;
|
||||
|
||||
@property (readwrite, retain) NSString * activeUsername;
|
||||
@property (readwrite, retain) NSString * activeUserProfile;
|
||||
@property (readwrite, retain) NSString * activeUserProfileId;
|
||||
@property (nonatomic, readwrite) BOOL isRiverView;
|
||||
@property (nonatomic, readwrite) BOOL isSocialView;
|
||||
@property (nonatomic, readwrite) BOOL isShowingShare;
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@
|
|||
|
||||
@synthesize feedDetailPortraitYCoordinate;
|
||||
@synthesize activeUsername;
|
||||
@synthesize activeUserProfile;
|
||||
@synthesize activeUserProfileId;
|
||||
@synthesize isRiverView;
|
||||
@synthesize isSocialView;
|
||||
@synthesize isShowingShare;
|
||||
|
|
@ -239,6 +239,7 @@
|
|||
|
||||
self.findFriendsNavigationController.modalPresentationStyle = UIModalPresentationFormSheet;
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
|
||||
|
||||
[splitStoryController presentModalViewController:findFriendsNavigationController animated:NO];
|
||||
} else {
|
||||
[navigationController presentModalViewController:findFriendsNavigationController animated:NO];
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@
|
|||
<string key="NSFrame">{{72, 54}, {612, 54}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
|
|
@ -168,7 +169,7 @@
|
|||
<string key="NSFrame">{{29, 54}, {27, 27}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<reference key="NSNextKeyView" ref="161540210"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
|
|
@ -1498,6 +1499,17 @@
|
|||
<object class="IBPartialClassDescription">
|
||||
<string key="className">SocialBadge</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">doFollowButton:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">doFollowButton:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">doFollowButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/SocialBadge.h</string>
|
||||
|
|
@ -1653,25 +1665,15 @@
|
|||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="appDelegate">NewsBlurAppDelegate</string>
|
||||
<string key="followButton">UIButton</string>
|
||||
<string key="followersCount">UILabel</string>
|
||||
<string key="followingCount">UILabel</string>
|
||||
<string key="socialBadge">SocialBadge</string>
|
||||
<string key="userAvatar">UIImageView</string>
|
||||
<string key="userDescription">UILabel</string>
|
||||
<string key="userLocation">UILabel</string>
|
||||
<string key="userStats">UILabel</string>
|
||||
<string key="username">UILabel</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="appDelegate">
|
||||
<string key="name">appDelegate</string>
|
||||
<string key="candidateClassName">NewsBlurAppDelegate</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="followButton">
|
||||
<string key="name">followButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="followersCount">
|
||||
<string key="name">followersCount</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
|
|
@ -1684,26 +1686,6 @@
|
|||
<string key="name">socialBadge</string>
|
||||
<string key="candidateClassName">SocialBadge</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="userAvatar">
|
||||
<string key="name">userAvatar</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="userDescription">
|
||||
<string key="name">userDescription</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="userLocation">
|
||||
<string key="name">userLocation</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="userStats">
|
||||
<string key="name">userStats</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="username">
|
||||
<string key="name">username</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@
|
|||
UILabel *userDescription;
|
||||
UILabel *userStats;
|
||||
UIButton *followButton;
|
||||
NSDictionary *activeProfile;
|
||||
|
||||
UIActivityIndicatorView *activityIndicator;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) NewsBlurAppDelegate *appDelegate;
|
||||
|
|
@ -29,9 +32,17 @@
|
|||
@property (retain, nonatomic) UILabel *userDescription;
|
||||
@property (retain, nonatomic) UILabel *userStats;
|
||||
@property (retain, nonatomic) UIButton *followButton;
|
||||
@property (nonatomic, retain) UIActivityIndicatorView *activityIndicator;
|
||||
|
||||
@property (retain, nonatomic) NSDictionary *activeProfile;
|
||||
|
||||
|
||||
- (void)refreshWithDict:(NSDictionary *)profile;
|
||||
|
||||
- (IBAction)doFollowButton:(id)sender;
|
||||
- (void)finishFollowing:(ASIHTTPRequest *)request;
|
||||
- (void)finishUnfollowing:(ASIHTTPRequest *)request;
|
||||
- (void)requestFailed:(ASIHTTPRequest *)request;
|
||||
- (void)initProfile;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -9,31 +9,30 @@
|
|||
#import "SocialBadge.h"
|
||||
#import "NewsBlurAppDelegate.h"
|
||||
#import "Utilities.h"
|
||||
#import "ASIHTTPRequest.h"
|
||||
#import "JSON.h"
|
||||
|
||||
@implementation SocialBadge
|
||||
|
||||
@synthesize appDelegate;
|
||||
@synthesize userAvatar;
|
||||
@synthesize username = _username;
|
||||
@synthesize username;
|
||||
@synthesize userLocation;
|
||||
@synthesize userDescription;
|
||||
@synthesize userStats;
|
||||
@synthesize followButton;
|
||||
@synthesize activeProfile;
|
||||
@synthesize activityIndicator;
|
||||
|
||||
- (void)baseInit {
|
||||
_username = nil;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
[self baseInit];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
- (void)dealloc {
|
||||
[appDelegate release];
|
||||
[userAvatar release];
|
||||
|
|
@ -45,6 +44,8 @@
|
|||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
// Only override drawRect: if you perform custom drawing.
|
||||
// An empty implementation adversely affects performance during animation.
|
||||
|
|
@ -55,78 +56,65 @@
|
|||
*/
|
||||
|
||||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
|
||||
|
||||
[super layoutSubviews];
|
||||
}
|
||||
|
||||
- (void)refreshWithDict:(NSDictionary *)profile {
|
||||
- (void)refreshWithDict:(NSDictionary *)profile {
|
||||
self.appDelegate = (NewsBlurAppDelegate *)[[UIApplication sharedApplication] delegate];
|
||||
|
||||
self.activeProfile = profile;
|
||||
|
||||
// self.followingCount.text = [NSString stringWithFormat:@"%i",
|
||||
// [[results objectForKey:@"following_count"] intValue]];
|
||||
// self.followersCount.text = [NSString stringWithFormat:@"%i",
|
||||
// [[results objectForKey:@"follower_count"] intValue]];
|
||||
//
|
||||
|
||||
//
|
||||
//
|
||||
// // check following to toggle follow button
|
||||
// BOOL isFollowing = NO;
|
||||
// NSArray *followingUserIds = [appDelegate.dictUserProfile objectForKey:@"following_user_ids"];
|
||||
// for (int i = 0; i < followingUserIds.count ; i++) {
|
||||
// NSString *followingUserId = [NSString stringWithFormat:@"%@", [followingUserIds objectAtIndex:i]];
|
||||
// if ([followingUserId isEqualToString:[NSString stringWithFormat:@"%@", appDelegate.activeUserProfile]]) {
|
||||
// isFollowing = YES;
|
||||
// }
|
||||
// }
|
||||
// if (isFollowing) {
|
||||
// [self.followButton setTitle:@"Following" forState:UIControlStateNormal];
|
||||
// }
|
||||
|
||||
|
||||
int yCoordinatePointer = 0;
|
||||
|
||||
UILabel *user = [[UILabel alloc] initWithFrame:CGRectMake(80,0,320,20)];
|
||||
// USERNAME
|
||||
UILabel *user = [[UILabel alloc] initWithFrame:CGRectMake(120,10,230,20)];
|
||||
user.text = [profile objectForKey:@"username"];
|
||||
user.textColor = [UIColor colorWithRed:0.1f green:0.1f blue:0.1f alpha:1.0];
|
||||
user.font = [UIFont fontWithName:@"Helvetica-Bold" size:20];
|
||||
self.username = user;
|
||||
[self addSubview:self.username];
|
||||
yCoordinatePointer = self.username.frame.origin.y + self.username.frame.size.height + 6;
|
||||
yCoordinatePointer = self.username.frame.origin.y + self.username.frame.size.height;
|
||||
[user release];
|
||||
|
||||
if ([profile objectForKey:@"location"] != [NSNull null]) {
|
||||
UILabel *location = [[UILabel alloc]
|
||||
initWithFrame:CGRectMake(80,
|
||||
yCoordinatePointer,
|
||||
320,
|
||||
20)];
|
||||
location.text = [profile objectForKey:@"location"];
|
||||
location.textColor = [UIColor colorWithRed:0.1f green:0.1f blue:0.1f alpha:1.0];
|
||||
location.font = [UIFont fontWithName:@"Helvetica" size:12];
|
||||
self.userLocation = location;
|
||||
[self addSubview:self.userLocation];
|
||||
[location release];
|
||||
yCoordinatePointer = yCoordinatePointer + self.userLocation.frame.size.height + 6;
|
||||
}
|
||||
// LOCATION
|
||||
// if ([profile objectForKey:@"location"] != [NSNull null]) {
|
||||
// UILabel *location = [[UILabel alloc]
|
||||
// initWithFrame:CGRectMake(120,
|
||||
// yCoordinatePointer,
|
||||
// 190,
|
||||
// 20)];
|
||||
// location.text = [profile objectForKey:@"location"];
|
||||
// location.textColor = [UIColor colorWithRed:0.1f green:0.1f blue:0.1f alpha:1.0];
|
||||
// location.font = [UIFont fontWithName:@"Helvetica" size:12];
|
||||
// self.userLocation = location;
|
||||
// [self addSubview:self.userLocation];
|
||||
// [location release];
|
||||
// yCoordinatePointer = yCoordinatePointer + self.userLocation.frame.size.height;
|
||||
// }
|
||||
|
||||
// BIO
|
||||
if ([profile objectForKey:@"bio"] != [NSNull null]) {
|
||||
UILabel *bio = [[UILabel alloc]
|
||||
initWithFrame:CGRectMake(80,
|
||||
initWithFrame:CGRectMake(120,
|
||||
yCoordinatePointer,
|
||||
320,
|
||||
190,
|
||||
20)];
|
||||
bio.text = [profile objectForKey:@"bio"];
|
||||
bio.textColor = [UIColor colorWithRed:0.1f green:0.1f blue:0.1f alpha:1.0];
|
||||
bio.font = [UIFont fontWithName:@"Helvetica" size:14];
|
||||
bio.font = [UIFont fontWithName:@"Helvetica" size:12];
|
||||
self.userDescription = bio;
|
||||
[self addSubview:self.userDescription];
|
||||
[bio release];
|
||||
yCoordinatePointer = yCoordinatePointer + self.userDescription.frame.size.height + 6;
|
||||
|
||||
yCoordinatePointer = yCoordinatePointer + self.userDescription.frame.size.height;
|
||||
}
|
||||
|
||||
UILabel *stats = [[UILabel alloc] initWithFrame:CGRectMake(80, yCoordinatePointer, 320, 20)];
|
||||
// STATS
|
||||
UILabel *stats = [[UILabel alloc] initWithFrame:CGRectMake(120, yCoordinatePointer, 190, 20)];
|
||||
NSString *statsStr = [NSString stringWithFormat:@"%i shared stories · %i followers",
|
||||
[[profile objectForKey:@"shared_stories_count"] intValue],
|
||||
[[profile objectForKey:@"follower_count"] intValue]];
|
||||
|
|
@ -136,24 +124,140 @@
|
|||
[self addSubview:self.userStats];
|
||||
[stats release];
|
||||
|
||||
// AVATAR
|
||||
NSString *photo_url = [profile objectForKey:@"photo_url"];
|
||||
|
||||
NSURL *imageURL = [Utilities convertToAbsoluteURL:[profile objectForKey:@"photo_url"]];
|
||||
if ([photo_url rangeOfString:@"graph.facebook.com"].location != NSNotFound) {
|
||||
photo_url = [photo_url stringByAppendingFormat:@"?type=large"];
|
||||
}
|
||||
|
||||
if ([photo_url rangeOfString:@"twimg"].location != NSNotFound) {
|
||||
photo_url = [photo_url stringByReplacingOccurrencesOfString:@"_normal" withString:@""];
|
||||
}
|
||||
|
||||
NSURL *imageURL = [Utilities convertToAbsoluteURL:photo_url];
|
||||
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
|
||||
UIImage *image = [UIImage imageWithData:imageData];
|
||||
UIImageView *avatar = [[UIImageView alloc] initWithImage:image];
|
||||
avatar.frame = CGRectMake(10, 10, 100, 100);
|
||||
self.userAvatar = avatar;
|
||||
self.userAvatar.frame = CGRectMake(10, 10, 60, 60);
|
||||
[self addSubview:self.userAvatar];
|
||||
[avatar release];
|
||||
|
||||
// FOLLOW BUTTON
|
||||
UIButton *follow = [UIButton buttonWithType:UIButtonTypeRoundedRect];
|
||||
follow.frame = CGRectMake(120, 80, 100, 30);
|
||||
|
||||
// check following to toggle follow button
|
||||
BOOL isFollowing = NO;
|
||||
NSArray *followingUserIds = [self.appDelegate.dictUserProfile objectForKey:@"following_user_ids"];
|
||||
for (int i = 0; i < followingUserIds.count ; i++) {
|
||||
NSString *followingUserId = [NSString stringWithFormat:@"%@", [followingUserIds objectAtIndex:i]];
|
||||
if ([followingUserId isEqualToString:[NSString stringWithFormat:@"%@", [profile objectForKey:@"user_id"]]]) {
|
||||
isFollowing = YES;
|
||||
}
|
||||
}
|
||||
|
||||
if (isFollowing) {
|
||||
[follow setTitle:@"Following" forState:UIControlStateNormal];
|
||||
} else {
|
||||
[follow setTitle:@"Follow" forState:UIControlStateNormal];
|
||||
}
|
||||
|
||||
[follow addTarget:self
|
||||
action:@selector(doFollowButton:)
|
||||
forControlEvents:UIControlEventTouchUpInside];
|
||||
|
||||
self.followButton = follow;
|
||||
[self addSubview:self.followButton];
|
||||
|
||||
// ACTIVITY INDICATOR
|
||||
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
|
||||
activityView.frame = CGRectMake(50, 85, 20, 20.0);
|
||||
self.activityIndicator = activityView;
|
||||
[self addSubview:self.activityIndicator];
|
||||
[activityView release];
|
||||
|
||||
}
|
||||
|
||||
- (IBAction)doFollowButton:(id)sender {
|
||||
if ([self.followButton.currentTitle isEqualToString:@"Following"]) {
|
||||
[self.followButton setTitle:@"Follow" forState:UIControlStateNormal];
|
||||
} else {
|
||||
[self.followButton setTitle:@"Following" forState:UIControlStateNormal];
|
||||
- (void)initProfile {
|
||||
for(UIView *subview in [self subviews]) {
|
||||
[subview removeFromSuperview];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
- (void)doFollowButton:(id)sender {
|
||||
NSString *urlString;
|
||||
|
||||
[self.activityIndicator startAnimating];
|
||||
|
||||
if ([self.followButton.currentTitle isEqualToString:@"Following"]) {
|
||||
|
||||
urlString = [NSString stringWithFormat:@"http://%@/social/follow",
|
||||
NEWSBLUR_URL,
|
||||
[self.activeProfile objectForKey:@"user_id"]];
|
||||
} else {
|
||||
urlString = [NSString stringWithFormat:@"http://%@/social/unfollow",
|
||||
NEWSBLUR_URL,
|
||||
[self.activeProfile objectForKey:@"user_id"]];
|
||||
}
|
||||
|
||||
NSURL *url = [NSURL URLWithString:urlString];
|
||||
|
||||
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
|
||||
[request setDelegate:self];
|
||||
[request setPostValue:[self.activeProfile objectForKey:@"user_id"] forKey:@"user_id"];
|
||||
if ([self.followButton.currentTitle isEqualToString:@"Following"]) {
|
||||
[request setDidFinishSelector:@selector(finishUnfollowing:)];
|
||||
} else {
|
||||
[request setDidFinishSelector:@selector(finishUnfollowing:)];
|
||||
}
|
||||
[request setDidFailSelector:@selector(requestFailed:)];
|
||||
[request startAsynchronous];
|
||||
}
|
||||
|
||||
- (void)finishFollowing:(ASIHTTPRequest *)request {
|
||||
[self.activityIndicator stopAnimating];
|
||||
NSString *responseString = [request responseString];
|
||||
NSDictionary *results = [[NSDictionary alloc]
|
||||
initWithDictionary:[responseString JSONValue]];
|
||||
// int statusCode = [request responseStatusCode];
|
||||
int code = [[results valueForKey:@"code"] intValue];
|
||||
if (code == -1) {
|
||||
NSLog(@"ERROR");
|
||||
[results release];
|
||||
return;
|
||||
}
|
||||
|
||||
[self.followButton setTitle:@"Following" forState:UIControlStateNormal];
|
||||
[results release];
|
||||
}
|
||||
|
||||
|
||||
- (void)finishUnfollowing:(ASIHTTPRequest *)request {
|
||||
[self.activityIndicator stopAnimating];
|
||||
NSString *responseString = [request responseString];
|
||||
NSDictionary *results = [[NSDictionary alloc]
|
||||
initWithDictionary:[responseString JSONValue]];
|
||||
// int statusCode = [request responseStatusCode];
|
||||
int code = [[results valueForKey:@"code"] intValue];
|
||||
if (code == -1) {
|
||||
NSLog(@"ERROR");
|
||||
[results release];
|
||||
return;
|
||||
}
|
||||
|
||||
NSLog(@"results %@", results);
|
||||
[self.followButton setTitle:@"Follow" forState:UIControlStateNormal];
|
||||
[results release];
|
||||
}
|
||||
|
||||
- (void)requestFailed:(ASIHTTPRequest *)request
|
||||
{
|
||||
[self.activityIndicator stopAnimating];
|
||||
NSError *error = [request error];
|
||||
NSLog(@"Error: %@", error);
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
UIBarButtonItem *activity;
|
||||
UIBarButtonItem *toggleViewButton;
|
||||
UIActivityIndicatorView *loadingIndicator;
|
||||
IBOutlet UIPopoverController *popoverController;
|
||||
UIPopoverController *popoverController;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) UIActivityIndicatorView *loadingIndicator;
|
||||
|
|
@ -50,6 +50,7 @@
|
|||
- (IBAction)doNextStory;
|
||||
- (IBAction)doPreviousStory;
|
||||
- (void)changeWebViewWidth:(int)width;
|
||||
- (void)showUserProfile:(NSString *)userId xCoordinate:(int)x yCoordinate:(int)y width:(int)width height:(int)height;
|
||||
|
||||
- (void)refreshComments;
|
||||
- (void)finishMarkAsRead:(ASIHTTPRequest *)request;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#import "FeedDetailViewController.h"
|
||||
#import "FontSettingsViewController.h"
|
||||
#import "SplitStoryDetailViewController.h"
|
||||
#import "UserProfileViewController.h"
|
||||
#import "ASIHTTPRequest.h"
|
||||
#import "ASIFormDataRequest.h"
|
||||
#import "Base64.h"
|
||||
|
|
@ -183,7 +184,7 @@
|
|||
NSDictionary *user = [self getUser:[[share_user_ids objectAtIndex:i] intValue]];
|
||||
NSString *avatar = [NSString stringWithFormat:@
|
||||
"<div class=\"NB-story-share-profile\"><div class=\"NB-user-avatar\">"
|
||||
"<a href=\"http://ios.newsblur.com/show-profile/%@\"><img src=\"%@\" /></a>"
|
||||
"<a class=\"NB-show-profile\" href=\"http://ios.newsblur.com/show-profile/%@\"><img src=\"%@\" /></a>"
|
||||
"</div></div>",
|
||||
[user objectForKey:@"user_id"],
|
||||
[self getImageURL:[user objectForKey:@"photo_url"]]];
|
||||
|
|
@ -215,8 +216,10 @@
|
|||
NSString *comments = @"";
|
||||
// NSLog(@"the comment string is %@", [appDelegate.activeStory objectForKey:@"share_count"]);
|
||||
// NSLog(@"appDelegate.activeStory is %@", appDelegate.activeStory);
|
||||
if ([appDelegate.activeStory objectForKey:@"share_count"] != [NSNull null] && [[appDelegate.activeStory objectForKey:@"share_count"] intValue] > 0) {
|
||||
NSArray *comments_array = [appDelegate.activeStory objectForKey:@"comments"];
|
||||
if ([appDelegate.activeStory objectForKey:@"share_count"] != [NSNull null] &&
|
||||
[[appDelegate.activeStory objectForKey:@"share_count"] intValue] > 0) {
|
||||
|
||||
NSArray *comments_array = [appDelegate.activeStory objectForKey:@"friend_comments"];
|
||||
comments = [comments stringByAppendingString:[NSString stringWithFormat:@
|
||||
"<div class=\"NB-feed-story-comments\">"
|
||||
"<div class=\"NB-story-comments-shares-teaser-wrapper\">"
|
||||
|
|
@ -249,30 +252,54 @@
|
|||
}
|
||||
|
||||
- (NSString *)getComment:(NSDictionary *)commentDict {
|
||||
|
||||
NSDictionary *user = [self getUser:[[commentDict objectForKey:@"user_id"] intValue]];
|
||||
NSString *comment = [NSString stringWithFormat:@
|
||||
"<div class=\"NB-story-comment\" id=\"NB-user-comment-%@\"><div>"
|
||||
"<div class=\"NB-user-avatar\"><a href=\"http://ios.newsblur.com/show-profile/%@\"><img src=\"%@\" /></a></div>"
|
||||
"<div class=\"NB-story-comment-author-container\">"
|
||||
"<div class=\"NB-story-comment-username\">%@</div>"
|
||||
"<div class=\"NB-story-comment-date\">%@ ago</div>"
|
||||
"<div class=\"NB-story-comment-reply-button\"><div class=\"NB-story-comment-reply-button-wrapper\">"
|
||||
"<a href=\"http://ios.newsblur.com/reply/%@/%@\">reply</a>"
|
||||
"</div></div>"
|
||||
"</div>"
|
||||
"<div class=\"NB-story-comment-content\">%@</div>"
|
||||
"%@"
|
||||
"</div></div>",
|
||||
[commentDict objectForKey:@"user_id"],
|
||||
[commentDict objectForKey:@"user_id"],
|
||||
[self getImageURL:[user objectForKey:@"photo_url"]],
|
||||
[user objectForKey:@"username"],
|
||||
[commentDict objectForKey:@"shared_date"],
|
||||
[commentDict objectForKey:@"user_id"],
|
||||
[user objectForKey:@"username"],
|
||||
[commentDict objectForKey:@"comments"],
|
||||
[self getReplies:[commentDict objectForKey:@"replies"]]];
|
||||
NSString *userAvatarClass = @"NB-user-avatar";
|
||||
NSString *userReshareString = @"";
|
||||
|
||||
if ([commentDict objectForKey:@"source_user_id"] != [NSNull null]) {
|
||||
userAvatarClass = @"NB-user-avatar NB-story-comment-reshare";
|
||||
|
||||
NSDictionary *sourceUser = [self getUser:[[commentDict objectForKey:@"source_user_id"] intValue]];
|
||||
userReshareString = [NSString stringWithFormat:@
|
||||
"<div class=\"NB-story-comment-reshares\">"
|
||||
" <div class=\"NB-story-share-profile\">"
|
||||
" <div class=\"NB-user-avatar\"><img src=\"%@\"></div>"
|
||||
" </div>"
|
||||
"</div>",
|
||||
[self getImageURL:[sourceUser objectForKey:@"photo_url"]]];
|
||||
}
|
||||
|
||||
NSString *comment = [NSString stringWithFormat:@
|
||||
"<div class=\"NB-story-comment\" id=\"NB-user-comment-%@\">"
|
||||
"<div class=\"%@\"><a class=\"NB-show-profile\" href=\"http://ios.newsblur.com/show-profile/%@\"><img src=\"%@\" /></a></div>"
|
||||
"<div class=\"NB-story-comment-author-container\">"
|
||||
" %@"
|
||||
" <div class=\"NB-story-comment-username\">%@</div>"
|
||||
" <div class=\"NB-story-comment-date\">%@ ago</div>"
|
||||
" <div class=\"NB-story-comment-reply-button\">"
|
||||
" <div class=\"NB-story-comment-reply-button-wrapper\">"
|
||||
" <a href=\"http://ios.newsblur.com/reply/%@/%@\">reply</a>"
|
||||
" </div>"
|
||||
" </div>"
|
||||
"</div>"
|
||||
"<div class=\"NB-story-comment-content\">%@</div>"
|
||||
"%@"
|
||||
"</div>",
|
||||
[commentDict objectForKey:@"user_id"],
|
||||
userAvatarClass,
|
||||
[commentDict objectForKey:@"user_id"],
|
||||
[self getImageURL:[user objectForKey:@"photo_url"]],
|
||||
userReshareString,
|
||||
|
||||
[user objectForKey:@"username"],
|
||||
[commentDict objectForKey:@"shared_date"],
|
||||
[commentDict objectForKey:@"user_id"],
|
||||
[user objectForKey:@"username"],
|
||||
[commentDict objectForKey:@"comments"],
|
||||
[self getReplies:[commentDict objectForKey:@"replies"]]];
|
||||
|
||||
[userAvatarClass release];
|
||||
return comment;
|
||||
}
|
||||
|
||||
|
|
@ -432,7 +459,7 @@
|
|||
footerString
|
||||
];
|
||||
|
||||
//NSLog(@"\n\n\n\nhtmlString:\n\n\n%@\n\n\n", htmlString);
|
||||
NSLog(@"\n\n\n\nhtmlString:\n\n\n%@\n\n\n", htmlString);
|
||||
NSString *path = [[NSBundle mainBundle] bundlePath];
|
||||
NSURL *baseURL = [NSURL fileURLWithPath:path];
|
||||
|
||||
|
|
@ -470,10 +497,10 @@
|
|||
if ([aSubView isKindOfClass:[UIScrollView class]]) {
|
||||
UIScrollView * theScrollView = (UIScrollView *)aSubView;
|
||||
if (appDelegate.isRiverView || appDelegate.isSocialView) {
|
||||
theScrollView.contentInset = UIEdgeInsetsMake(19, 0, -19, 0);
|
||||
theScrollView.contentInset = UIEdgeInsetsMake(19, 0, 0, 0);
|
||||
theScrollView.scrollIndicatorInsets = UIEdgeInsetsMake(19, 0, 0, 0);
|
||||
} else {
|
||||
theScrollView.contentInset = UIEdgeInsetsMake(9, 0, -9, 0);
|
||||
theScrollView.contentInset = UIEdgeInsetsMake(9, 0, 0, 0);
|
||||
theScrollView.scrollIndicatorInsets = UIEdgeInsetsMake(9, 0, 0, 0);
|
||||
}
|
||||
[self.webView insertSubview:feedTitleGradient aboveSubview:theScrollView];
|
||||
|
|
@ -524,8 +551,12 @@ shouldStartLoadWithRequest:(NSURLRequest *)request
|
|||
[appDelegate showShareView:nil setUsername:nil];
|
||||
return NO;
|
||||
} else if ([action isEqualToString:@"show-profile"]) {
|
||||
appDelegate.activeUserProfile = [NSString stringWithFormat:@"%@", [urlComponents objectAtIndex:2]];
|
||||
[appDelegate showUserProfile];
|
||||
appDelegate.activeUserProfileId = [NSString stringWithFormat:@"%@", [urlComponents objectAtIndex:2]];
|
||||
[self showUserProfile:[urlComponents objectAtIndex:2]
|
||||
xCoordinate:[[urlComponents objectAtIndex:3] intValue]
|
||||
yCoordinate:[[urlComponents objectAtIndex:4] intValue]
|
||||
width:[[urlComponents objectAtIndex:5] intValue]
|
||||
height:[[urlComponents objectAtIndex:6] intValue]];
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
|
|
@ -536,6 +567,34 @@ shouldStartLoadWithRequest:(NSURLRequest *)request
|
|||
return YES;
|
||||
}
|
||||
|
||||
- (void)showUserProfile:(NSString *)userId xCoordinate:(int)x yCoordinate:(int)y width:(int)width height:(int)height {
|
||||
if (popoverController == nil) {
|
||||
popoverController = [[UIPopoverController alloc]
|
||||
initWithContentViewController:appDelegate.userProfileViewController];
|
||||
|
||||
popoverController.delegate = self;
|
||||
}
|
||||
|
||||
[popoverController setPopoverContentSize:CGSizeMake(320, 400)];
|
||||
|
||||
// only adjust for the bar if user is scrolling
|
||||
if (appDelegate.isRiverView || appDelegate.isSocialView) {
|
||||
if (self.webView.scrollView.contentOffset.y == -19) {
|
||||
y = y + 19;
|
||||
}
|
||||
} else {
|
||||
if (self.webView.scrollView.contentOffset.y == -9) {
|
||||
y = y + 9;
|
||||
}
|
||||
}
|
||||
|
||||
[popoverController presentPopoverFromRect:CGRectMake(x, y, width, height)
|
||||
inView:self.view
|
||||
permittedArrowDirections:UIPopoverArrowDirectionAny
|
||||
animated:YES];
|
||||
|
||||
}
|
||||
|
||||
- (void)webViewDidStartLoad:(UIWebView *)webView {
|
||||
NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
|
||||
if ([userPreferences integerForKey:@"fontSizing"]){
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
@property (retain, nonatomic) IBOutlet UILabel *followingCount;
|
||||
@property (retain, nonatomic) IBOutlet UILabel *followersCount;
|
||||
|
||||
- (IBAction)doFollowButton:(id)sender;
|
||||
- (void)getUserProfile;
|
||||
- (void)requestFinished:(ASIHTTPRequest *)request;
|
||||
- (void)requestFailed:(ASIHTTPRequest *)request;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#import "JSON.h"
|
||||
#import "SocialBadge.h"
|
||||
#import "Utilities.h"
|
||||
#import "MBProgressHUD.h"
|
||||
|
||||
@implementation UserProfileViewController
|
||||
|
||||
|
|
@ -33,8 +34,7 @@
|
|||
{
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view from its nib.
|
||||
self.socialBadge.frame = CGRectMake(0, 0, 320, 160);
|
||||
self.socialBadge.backgroundColor = [UIColor greenColor];
|
||||
self.socialBadge.frame = CGRectMake(0, 0, 320, 140);
|
||||
}
|
||||
|
||||
- (void)viewDidUnload
|
||||
|
|
@ -46,6 +46,10 @@
|
|||
// e.g. self.myOutlet = nil;
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[self getUserProfile];
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
return YES;
|
||||
|
|
@ -58,28 +62,19 @@
|
|||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)setupModal {
|
||||
self.navigationItem.title = nil;
|
||||
|
||||
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle: @"Done"
|
||||
style: UIBarButtonSystemItemCancel
|
||||
target: self
|
||||
action: @selector(doCancelButton)];
|
||||
[self.navigationItem setRightBarButtonItem:cancelButton];
|
||||
[cancelButton release];
|
||||
[self getUserProfile];
|
||||
}
|
||||
|
||||
- (void)doCancelButton {
|
||||
[appDelegate.findFriendsNavigationController dismissModalViewControllerAnimated:NO];
|
||||
}
|
||||
|
||||
- (void)getUserProfile {
|
||||
[MBProgressHUD hideHUDForView:self.view animated:YES];
|
||||
MBProgressHUD *HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
|
||||
HUD.labelText = @"Finding...";
|
||||
|
||||
[self.socialBadge initProfile];
|
||||
NSString *urlString = [NSString stringWithFormat:@"http://%@/social/settings/%@",
|
||||
NEWSBLUR_URL,
|
||||
appDelegate.activeUserProfile];
|
||||
appDelegate.activeUserProfileId];
|
||||
NSURL *url = [NSURL URLWithString:urlString];
|
||||
|
||||
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
|
||||
|
|
@ -89,8 +84,6 @@
|
|||
[request startAsynchronous];
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)requestFinished:(ASIHTTPRequest *)request {
|
||||
[MBProgressHUD hideHUDForView:self.view animated:YES];
|
||||
NSString *responseString = [request responseString];
|
||||
|
|
@ -105,9 +98,10 @@
|
|||
}
|
||||
|
||||
NSLog(@"results %@", results);
|
||||
NSLog(@"appDelegate.activeUserProfileId %@", appDelegate.activeUserProfileId);
|
||||
[MBProgressHUD hideHUDForView:self.view animated:YES];
|
||||
[self.socialBadge refreshWithDict:results];
|
||||
|
||||
|
||||
[results release];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,11 +11,8 @@
|
|||
<string key="NS.object.0">1181</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
|
@ -37,264 +34,13 @@
|
|||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="1010577097">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{30, 37}, {117, 117}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="816761794"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUILabel" id="816761794">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{172, 37}, {357, 21}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="335688727"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Username</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="1062311766">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="892829774">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="1058138235">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="335688727">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{172, 66}, {357, 21}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="311076840"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Location</string>
|
||||
<reference key="IBUITextColor" ref="1062311766"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<reference key="IBUIFontDescription" ref="892829774"/>
|
||||
<reference key="IBUIFont" ref="1058138235"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="311076840">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{172, 95}, {357, 21}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="82188752"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Description</string>
|
||||
<reference key="IBUITextColor" ref="1062311766"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<reference key="IBUIFontDescription" ref="892829774"/>
|
||||
<reference key="IBUIFont" ref="1058138235"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="319141053">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{315, 129}, {357, 21}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="206060779"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">Stats</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAwLjUwMTk2MDgxNCAwAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">12</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">12</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="82188752">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{172, 124}, {128, 31}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="319141053"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Follow</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="206060779">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 249}, {198, 21}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="152225990"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">100</string>
|
||||
<reference key="IBUITextColor" ref="1062311766"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="892829774"/>
|
||||
<reference key="IBUIFont" ref="1058138235"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="152225990">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{322, 249}, {198, 21}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="598863587"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">100</string>
|
||||
<reference key="IBUITextColor" ref="1062311766"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="892829774"/>
|
||||
<reference key="IBUIFont" ref="1058138235"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="598863587">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{30, 278}, {198, 38}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="802388030"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">FOLLOWING</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC42IDAuNiAwLjYAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="446702911">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">18</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="299897044">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">18</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="291868848">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{322, 278}, {198, 38}}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<string key="IBUIText">FOLLOWERS</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC42IDAuNiAwLjYAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="446702911"/>
|
||||
<reference key="IBUIFont" ref="299897044"/>
|
||||
</object>
|
||||
<object class="IBUIView" id="802388030">
|
||||
<reference key="NSNextResponder" ref="766721923"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{308, 42}, {174, 127}}</string>
|
||||
<string key="NSFrameSize">{320, 140}</string>
|
||||
<reference key="NSSuperview" ref="766721923"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="291868848"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
|
|
@ -306,10 +52,10 @@
|
|||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{540, 576}</string>
|
||||
<string key="NSFrameSize">{320, 576}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1010577097"/>
|
||||
<reference key="NSNextKeyView" ref="802388030"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
|
|
@ -333,118 +79,6 @@
|
|||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">UserAvatar</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="1010577097"/>
|
||||
</object>
|
||||
<int key="connectionID">17</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">Username</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="816761794"/>
|
||||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">UserLocation</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="335688727"/>
|
||||
</object>
|
||||
<int key="connectionID">19</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">UserDescription</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="311076840"/>
|
||||
</object>
|
||||
<int key="connectionID">20</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">UserStats</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="319141053"/>
|
||||
</object>
|
||||
<int key="connectionID">21</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">FollowButton</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="82188752"/>
|
||||
</object>
|
||||
<int key="connectionID">22</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">followButton</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="82188752"/>
|
||||
</object>
|
||||
<int key="connectionID">27</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">followersCount</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="152225990"/>
|
||||
</object>
|
||||
<int key="connectionID">28</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">followingCount</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="206060779"/>
|
||||
</object>
|
||||
<int key="connectionID">29</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">username</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="816761794"/>
|
||||
</object>
|
||||
<int key="connectionID">30</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">userLocation</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="335688727"/>
|
||||
</object>
|
||||
<int key="connectionID">31</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">userDescription</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="311076840"/>
|
||||
</object>
|
||||
<int key="connectionID">32</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">userStats</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="319141053"/>
|
||||
</object>
|
||||
<int key="connectionID">33</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">userAvatar</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="1010577097"/>
|
||||
</object>
|
||||
<int key="connectionID">34</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">socialBadge</string>
|
||||
|
|
@ -453,15 +87,6 @@
|
|||
</object>
|
||||
<int key="connectionID">36</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doFollowButton:</string>
|
||||
<reference key="source" ref="82188752"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
|
|
@ -486,70 +111,10 @@
|
|||
<int key="objectID">2</int>
|
||||
<reference key="object" ref="766721923"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="1010577097"/>
|
||||
<reference ref="206060779"/>
|
||||
<reference ref="152225990"/>
|
||||
<reference ref="598863587"/>
|
||||
<reference ref="291868848"/>
|
||||
<reference ref="816761794"/>
|
||||
<reference ref="335688727"/>
|
||||
<reference ref="311076840"/>
|
||||
<reference ref="82188752"/>
|
||||
<reference ref="319141053"/>
|
||||
<reference ref="802388030"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="1010577097"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="816761794"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="335688727"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="311076840"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">9</int>
|
||||
<reference key="object" ref="319141053"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="82188752"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="206060779"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="598863587"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="291868848"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="152225990"/>
|
||||
<reference key="parent" ref="766721923"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">35</int>
|
||||
<reference key="object" ref="802388030"/>
|
||||
|
|
@ -562,19 +127,9 @@
|
|||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="35.CustomClassName">SocialBadge</string>
|
||||
<string key="35.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
|
|
@ -1662,6 +1217,17 @@
|
|||
<object class="IBPartialClassDescription">
|
||||
<string key="className">SocialBadge</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">doFollowButton:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">doFollowButton:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">doFollowButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/SocialBadge.h</string>
|
||||
|
|
@ -1740,7 +1306,6 @@
|
|||
<string key="buttonNextStory">UIBarButtonItem</string>
|
||||
<string key="buttonPrevious">UIBarButtonItem</string>
|
||||
<string key="feedTitleGradient">UIView</string>
|
||||
<string key="popoverController">UIPopoverController</string>
|
||||
<string key="progressView">UIProgressView</string>
|
||||
<string key="toggleViewButton">UIBarButtonItem</string>
|
||||
<string key="toolbar">UIToolbar</string>
|
||||
|
|
@ -1775,10 +1340,6 @@
|
|||
<string key="name">feedTitleGradient</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="popoverController">
|
||||
<string key="name">popoverController</string>
|
||||
<string key="candidateClassName">UIPopoverController</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="progressView">
|
||||
<string key="name">progressView</string>
|
||||
<string key="candidateClassName">UIProgressView</string>
|
||||
|
|
@ -1804,38 +1365,17 @@
|
|||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UserProfileViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">doFollowButton:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">doFollowButton:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">doFollowButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="appDelegate">NewsBlurAppDelegate</string>
|
||||
<string key="followButton">UIButton</string>
|
||||
<string key="followersCount">UILabel</string>
|
||||
<string key="followingCount">UILabel</string>
|
||||
<string key="socialBadge">SocialBadge</string>
|
||||
<string key="userAvatar">UIImageView</string>
|
||||
<string key="userDescription">UILabel</string>
|
||||
<string key="userLocation">UILabel</string>
|
||||
<string key="userStats">UILabel</string>
|
||||
<string key="username">UILabel</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="appDelegate">
|
||||
<string key="name">appDelegate</string>
|
||||
<string key="candidateClassName">NewsBlurAppDelegate</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="followButton">
|
||||
<string key="name">followButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="followersCount">
|
||||
<string key="name">followersCount</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
|
|
@ -1848,26 +1388,6 @@
|
|||
<string key="name">socialBadge</string>
|
||||
<string key="candidateClassName">SocialBadge</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="userAvatar">
|
||||
<string key="name">userAvatar</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="userDescription">
|
||||
<string key="name">userDescription</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="userLocation">
|
||||
<string key="name">userLocation</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="userStats">
|
||||
<string key="name">userStats</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="username">
|
||||
<string key="name">username</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,2 @@
|
|||
<html><head><script src="zepto.js"></script><script src="storyDetailView.js"></script><link rel="stylesheet" type="text/css" href="reader.css" ><link rel="stylesheet" type="text/css" href="storyDetailView.css" ><meta name="viewport" content="width=device-width"/></head><body id="story_pane" class="NB-san-serif"><div class="NB-header"><div class="NB-story-date">Today, June 25th 6:42pm</div><div class="NB-story-title">Jewelry products feature tiny pots to carry plantlife</div><div class="NB-story-author">Springwise</div><div class="NB-story-tags"><div class="NB-story-tag">united states</div><div class="NB-story-tag">fashion & beauty</div></div></div><div class="NB-story"><img alt="alttext" class="attachment-main-size wp-post-image" height="300" src="http://www.springwise.com/img/uploads/2012/06/wearableplanter.jpg" title="Jewelry products feature tiny pots to carry plantlife" width="640" /> <p>Having recently covered DesignLibero’s <a class="unbold" href="http://www.springwise.com/homes_housing/indoor-hydroponic-rotary-garden-fits-shelf/">Green Wheel</a> micro rotary garden, we thought we’d found the most compact system for growing plants. That was until we spotted <a href="http://www.wearableplanter.com/">Wearable Planter</a>‘s tiny plantpot jewelry, which enables people to incorporate living <del class="diff modified">matter as part of </del><ins class="diff modified">plants into </ins>their <del class="diff modified">clothes.</del><ins class="diff modified">fashion accessories.</ins></p> <p>Based in Atlanta, the Wearable Planter studio creates all of its jewelry with a 3-D printer on site. Each piece includes a tiny receptacle which is waterproof and can contain enough soil and water to sustain small plant clippings. The startup has created necklaces and brooches which can hold flowers, with the latter incorporating magnets to ensure the wearer’s clothes are not damaged by pins. Cyclists can also customize their bicycle with the Bike Planter, a small pot with a rubber strap that can be attached securely around the frame of most bicycles. Each piece comes in a variety of colors, enabling customers to express themselves through both choice of shade and their favorite plants.</p> <p>If the presence of plants really does affect people’s moods, then Wearable Planter’s products ensure that wearers can be surrounded by them throughout the day, regardless of location. Fellow jewelry designers – one for inspiration?</p> <p>Website: <a href="http://www.wearableplanter.com/">www.wearableplanter.com</a><br /> Contact: <a href="mailto:hello@wearableplanter.com">hello@wearableplanter.com</a></p> <img border="0" height="1" src="http://springwise.feedsportal.com/c/34623/f/635451/s/205842af/mf.gif" width="1" /><div class="mf-viral"><table border="0"><tr><td valign="middle"><a href="http://share.feedsportal.com/viral/sendEmail.cfm?lang=en&title=Jewelry+products+feature+tiny+pots+to+carry+plantlife&link=http%3A%2F%2Fwww.springwise.com%2Ffashion_beauty%2Fjewelry-products-feature-tiny-pots-carry-plantlife%2F" target="_blank"><img border="0" src="http://res3.feedsportal.com/images/emailthis2.gif" /></a></td><td valign="middle"><a href="http://res.feedsportal.com/viral/bookmark.cfm?title=Jewelry+products+feature+tiny+pots+to+carry+plantlife&link=http%3A%2F%2Fwww.springwise.com%2Ffashion_beauty%2Fjewelry-products-feature-tiny-pots-carry-plantlife%2F" target="_blank"><img border="0" src="http://res3.feedsportal.com/images/bookmark.gif" /></a></td></tr></table></div><br /><br /><a href="http://da.feedsportal.com/r/136621711742/u/49/f/635451/c/34623/s/205842af/a2.htm"><img border="0" src="http://da.feedsportal.com/r/136621711742/u/49/f/635451/c/34623/s/205842af/a2.img" /></a><img border="0" height="1" src="http://pi.feedsportal.com/r/136621711742/u/49/f/635451/c/34623/s/205842af/a2t.img" width="1" />
|
||||
<p><del class="diff modified"><a href="http://feedads.g.doubleclick.net/~a/qj8SosK3u0kyBYcHncfBbGDnaX8/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/qj8SosK3u0kyBYcHncfBbGDnaX8/0/di" /></a><br />
|
||||
<a href="http://feedads.g.doubleclick.net/~a/qj8SosK3u0kyBYcHncfBbGDnaX8/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/qj8SosK3u0kyBYcHncfBbGDnaX8/1/di" /></del><ins class="diff modified"><a href="http://feedads.g.doubleclick.net/~a/9t0SkLjJMe4azIfSD0XU5TJk-UQ/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/9t0SkLjJMe4azIfSD0XU5TJk-UQ/0/di" /></a><br />
|
||||
<a href="http://feedads.g.doubleclick.net/~a/9t0SkLjJMe4azIfSD0XU5TJk-UQ/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/9t0SkLjJMe4azIfSD0XU5TJk-UQ/1/di" /></ins></a></p><div class="feedflare">
|
||||
<a href="http://feeds.feedburner.com/~ff/springwise?a=IQS0f2gDaow:r_tP0ONw4n4:3QFJfmc7Om4"><img border="0" src="http://feeds.feedburner.com/~ff/springwise?i=IQS0f2gDaow:r_tP0ONw4n4:3QFJfmc7Om4" /></a> <a href="http://feeds.feedburner.com/~ff/springwise?a=IQS0f2gDaow:r_tP0ONw4n4:yIl2AUoC8zA"><img border="0" src="http://feeds.feedburner.com/~ff/springwise?d=yIl2AUoC8zA" /></a> <a href="http://feeds.feedburner.com/~ff/springwise?a=IQS0f2gDaow:r_tP0ONw4n4:gIN9vFwOqvQ"><img border="0" src="http://feeds.feedburner.com/~ff/springwise?i=IQS0f2gDaow:r_tP0ONw4n4:gIN9vFwOqvQ" /></a> <a href="http://feeds.feedburner.com/~ff/springwise?a=IQS0f2gDaow:r_tP0ONw4n4:7Q72WNTAKBA"><img border="0" src="http://feeds.feedburner.com/~ff/springwise?d=7Q72WNTAKBA" /></a> <a href="http://feeds.feedburner.com/~ff/springwise?a=IQS0f2gDaow:r_tP0ONw4n4:qj6IDK7rITs"><img border="0" src="http://feeds.feedburner.com/~ff/springwise?d=qj6IDK7rITs" /></a> <a href="http://feeds.feedburner.com/~ff/springwise?a=IQS0f2gDaow:r_tP0ONw4n4:I9og5sOYxJI"><img border="0" src="http://feeds.feedburner.com/~ff/springwise?d=I9og5sOYxJI" /></a>
|
||||
</div><img height="1" src="http://feeds.feedburner.com/~r/springwise/~4/IQS0f2gDaow" width="1" /> </div><div id="NB-comments-wrapper"><div class="NB-feed-story-comments"><div class="NB-story-comments-shares-teaser-wrapper"><div class="NB-story-comments-shares-teaser"><div class="NB-right">Shared by <b>3 people</div><div class="NB-story-share-profiles NB-story-share-profiles-public"></div><div class="NB-story-share-label">Shared by: </div><div class="NB-story-share-profiles NB-story-share-profiles-friends"><div class="NB-story-share-profile"><div class="NB-user-avatar"><img src="http://a0.twimg.com/profile_images/1382021023/Campeche_Steps_normal.jpg"></div></div><div class="NB-story-share-profile"><div class="NB-user-avatar"><img src="http://www.gravatar.com/avatar/fe66f260795c73ef4add39866445a861"></div></div><div class="NB-story-share-profile"><div class="NB-user-avatar"><img src="/media/img/reader/default_profile_photo.png"></div></div></div></div></div><div class="NB-story-comment" id="NB-user-comment-13"><div><div class="NB-user-avatar"><img src="http://a0.twimg.com/profile_images/1382021023/Campeche_Steps_normal.jpg" /></div><div class="NB-story-comment-author-container"><div class="NB-story-comment-username">samuel</div><div class="NB-story-comment-date">4 hours</div><div class="NB-story-comment-reply-button"><div class="NB-story-comment-reply-button-wrapper"><a href="http://ios.newsblur.com/reply/13/samuel">reply</a></div></div></div><div class="NB-story-comment-content">Hanging a garden on your chest sounds like it's ripe for a good metaphor.</div></div></div><div class="NB-story-comment" id="NB-user-comment-32601"><div><div class="NB-user-avatar"><img src="http://www.gravatar.com/avatar/fe66f260795c73ef4add39866445a861" /></div><div class="NB-story-comment-author-container"><div class="NB-story-comment-username">mgeraci</div><div class="NB-story-comment-date">3 hours</div><div class="NB-story-comment-reply-button"><div class="NB-story-comment-reply-button-wrapper"><a href="http://ios.newsblur.com/reply/32601/mgeraci">reply</a></div></div></div><div class="NB-story-comment-content">love it.</div></div></div></div></div><div class='NB-share-header'></div><div class='NB-share-wrapper'><div class='NB-share-inner-wrapper'><div class='NB-share-button'><span class='NB-share-icon'></span>Share this story</div><div class='NB-save-button'><span class='NB-save-icon'></span>Save this story</div></div></div></body></html>
|
||||
|
||||
<html><head><link rel="stylesheet" type="text/css" href="reader.css" ><link rel="stylesheet" type="text/css" href="storyDetailView.css" ><meta name="viewport" content="width=477, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/></head><body id="story_pane" class="NB-ipad-narrow"> <div class="NB-san-serif" id="NB-font-style"> <div class="NB-header"><div class="NB-story-date">02 Jul 2012, 12:25am</div><div class="NB-story-title">Don’t be glum, Lisa! Why not re-read one of your favorite...</div></div> <div class="NB-small" id="NB-font-size"> <div class="NB-story"><img src="http://24.media.tumblr.com/tumblr_m4cptlIoJg1qfrrv2o1_500.png" /><br /><br /><p>Don’t be glum, Lisa! Why not re-read one of your <a href="http://lisasimpsonbookclub.tumblr.com/post/6830627144/the-bookshelf-of-lisa-simpson">favorite books</a>?</p> </div> </div> <div id="NB-comments-wrapper"><div class="NB-feed-story-comments"><div class="NB-story-comments-shares-teaser-wrapper"><div class="NB-story-comments-shares-teaser"><div class="NB-right">Shared by 2 people</div><div class="NB-story-share-profiles NB-story-share-profiles-public"></div><div class="NB-story-share-label">Shared by: </div><div class="NB-story-share-profiles NB-story-share-profiles-friends"><div class="NB-story-share-profile"><div class="NB-user-avatar"><a class="NB-show-profile" href="http://ios.newsblur.com/show-profile/13"><img src="http://a0.twimg.com/profile_images/1382021023/Campeche_Steps_normal.jpg" /></a></div></div><div class="NB-story-share-profile"><div class="NB-user-avatar"><a class="NB-show-profile" href="http://ios.newsblur.com/show-profile/31611"><img src="http://a0.twimg.com/profile_images/307253796/mecoffee_normal.jpg" /></a></div></div></div></div></div></div></div> <div class='NB-share-header'></div><div class='NB-share-wrapper'><div class='NB-share-inner-wrapper'><div class='NB-share-button'><span class='NB-share-icon'></span>Post to Blurblog</div></div></div> </div> <script src="zepto.js"></script><script src="storyDetailView.js"></script></body></html>
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
}
|
||||
|
||||
.NB-ipad-wide .NB-feed-story-comments {
|
||||
margin: 30px 90px !important;
|
||||
margin: 30px 0px !important;
|
||||
}
|
||||
|
||||
.NB-ipad-wide .NB-story {
|
||||
|
|
@ -72,7 +72,7 @@
|
|||
}
|
||||
|
||||
.NB-ipad-narrow .NB-feed-story-comments {
|
||||
margin: 30px 30px !important;
|
||||
margin: 30px 0px !important;
|
||||
}
|
||||
|
||||
.NB-ipad-narrow .NB-share-inner-wrapper {
|
||||
|
|
@ -96,7 +96,7 @@
|
|||
}
|
||||
|
||||
.NB-iphone .NB-feed-story-comments {
|
||||
margin: 30px 12px !important;
|
||||
margin: 30px 0px !important;
|
||||
}
|
||||
|
||||
.NB-iphone .NB-share-inner-wrapper {
|
||||
|
|
@ -169,7 +169,17 @@ body {
|
|||
line-height: 13px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6, div, table, span, pre, code {
|
||||
.NB-story h1,
|
||||
.NB-story h2,
|
||||
.NB-story h3,
|
||||
.NB-story h4,
|
||||
.NB-story h5,
|
||||
.NB-story h6,
|
||||
.NB-story div,
|
||||
.NB-story table,
|
||||
.NB-story span,
|
||||
.NB-story pre,
|
||||
.NB-story code {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
|
|
@ -177,31 +187,23 @@ a {
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
.NB-story blockquote {
|
||||
background-color: #F0F0F0;
|
||||
border-left: 1px solid #9B9B9B;
|
||||
padding: .5em 2em;
|
||||
margin: 0 0 20px 20px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6, table, span, pre, code, img {
|
||||
max-width: 588px;
|
||||
}
|
||||
|
||||
div {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
div + p {
|
||||
margin: 20px 0px 20px 0;
|
||||
}
|
||||
|
||||
p {
|
||||
.NB-story p {
|
||||
margin: 0px 0px 20px 0;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
small {
|
||||
.NB-story small {
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
|
|
@ -299,6 +301,9 @@ del {
|
|||
|
||||
/* Sharing */
|
||||
|
||||
a.NB-show-profile {
|
||||
display: inline-block;
|
||||
}
|
||||
.NB-share-wrapper {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-text-size-adjust: none;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,15 @@ $('.NB-story img').bind('load', function() {
|
|||
setImage(this);
|
||||
});
|
||||
|
||||
$('a.NB-show-profile').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;
|
||||
|
||||
})
|
||||
|
||||
function setImage(img) {
|
||||
var $img = $(img);
|
||||
var width = $(img).width();
|
||||
|
|
@ -47,3 +56,4 @@ function touchEnd(e) {
|
|||
window.location = "http://ios.newsblur.com/share";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue