mirror of
https://bitbucket.org/vendoo/vendoo_v1.0.git
synced 2025-12-25 19:57:41 +00:00
96 lines
3.7 KiB
Objective-C
96 lines
3.7 KiB
Objective-C
//
|
|
// Copyright (c) 2015 Google Inc.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
#import "NewPostViewController.h"
|
|
#import "User.h"
|
|
#import "Post.h"
|
|
@import Firebase;
|
|
|
|
@interface NewPostViewController () <UITextFieldDelegate>
|
|
@property (weak) IBOutlet UITextView *bodyTextView;
|
|
@property (weak) IBOutlet UITextField *titleTextField;
|
|
@end
|
|
|
|
@implementation NewPostViewController
|
|
|
|
#pragma mark - UIViewController lifecycle methods
|
|
- (void)viewDidLoad {
|
|
[super viewDidLoad];
|
|
|
|
// [START create_database_reference]
|
|
self.ref = [[FIRDatabase database] reference];
|
|
// [END create_database_reference]
|
|
|
|
UIToolbar *doneBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
|
|
doneBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
|
|
UIBarButtonItem *flex = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
|
|
target:nil
|
|
action:nil];
|
|
UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithTitle:@"Post"
|
|
style:UIBarButtonItemStylePlain
|
|
target:self
|
|
action:@selector(didTapShare:)];
|
|
done.tintColor = [UIColor colorWithRed:1.0 green:143.0/255.0 blue:0.0 alpha:1.0];
|
|
doneBar.items = [NSArray arrayWithObjects:flex, done, flex, nil];
|
|
[doneBar sizeToFit];
|
|
_bodyTextView.inputAccessoryView = doneBar;
|
|
_titleTextField.inputAccessoryView = doneBar;
|
|
}
|
|
|
|
- (IBAction)didTapShare:(id)sender {
|
|
// [START single_value_read]
|
|
NSString *userID = [FIRAuth auth].currentUser.uid;
|
|
[[[_ref child:@"users"] child:userID] observeSingleEventOfType:FIRDataEventTypeValue withBlock:^(FIRDataSnapshot * _Nonnull snapshot) {
|
|
// Get user value
|
|
User *user = [[User alloc] initWithUsername:snapshot.value[@"username"]];
|
|
|
|
// [START_EXCLUDE]
|
|
// Write new post
|
|
[self writeNewPost:userID
|
|
username:user.username
|
|
title:_titleTextField.text
|
|
body:_bodyTextView.text];
|
|
// Finish this Activity, back to the stream
|
|
[[self navigationController] popViewControllerAnimated:YES];
|
|
// [END_EXCLUDE]
|
|
} withCancelBlock:^(NSError * _Nonnull error) {
|
|
NSLog(@"%@", error.localizedDescription);
|
|
}];
|
|
// [END single_value_read]
|
|
}
|
|
|
|
- (void)writeNewPost:(NSString *)userID username:(NSString *)username title:(NSString *)title body:(NSString *)body {
|
|
// Create new post at /user-posts/$userid/$postid and at
|
|
// /posts/$postid simultaneously
|
|
// [START write_fan_out]
|
|
NSString *key = [[_ref child:@"posts"] childByAutoId].key;
|
|
NSDictionary *post = @{@"uid": userID,
|
|
@"author": username,
|
|
@"title": title,
|
|
@"body": body};
|
|
NSDictionary *childUpdates = @{[@"/posts/" stringByAppendingString:key]: post,
|
|
[NSString stringWithFormat:@"/user-posts/%@/%@/", userID, key]: post};
|
|
[_ref updateChildValues:childUpdates];
|
|
// [END write_fan_out]
|
|
}
|
|
|
|
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
|
|
[textField resignFirstResponder];
|
|
return NO;
|
|
}
|
|
|
|
@end
|