You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2016/10/24 13:06:14 UTC

[29/83] [abbrv] usergrid git commit: Moving older SDKs to a difference location and updating main README to link to new SDK locations.

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/UGEntityViewController.h
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/UGEntityViewController.h b/sdks/other/ios/samples/Browser/browser/UGEntityViewController.h
new file mode 100644
index 0000000..af95c4c
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/UGEntityViewController.h
@@ -0,0 +1,22 @@
+//
+//  UGEntityViewController.h
+//  Browser
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+
+@interface UGEntityViewController : UITableViewController
+@property (nonatomic, strong) NSDictionary *entity;
+@end

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/UGEntityViewController.m
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/UGEntityViewController.m b/sdks/other/ios/samples/Browser/browser/UGEntityViewController.m
new file mode 100644
index 0000000..7cb2d17
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/UGEntityViewController.m
@@ -0,0 +1,86 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+//
+//  UGEntityViewController.m
+//  Browser
+//
+
+#import "UGEntityViewController.h"
+#import "UGTextViewController.h"
+
+@interface UGEntityViewController ()
+
+@end
+
+@implementation UGEntityViewController
+
+- (id)initWithStyle:(UITableViewStyle)style
+{
+    self = [super initWithStyle:style];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void) loadView
+{
+    [super loadView];
+    self.navigationItem.title = self.entity[@"name"];
+}
+
+#pragma mark - Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return 1;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return [self.entity count];
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
+    return cell;
+}
+
+#pragma mark - Table view delegate
+
+- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    NSArray *keys = [[self.entity allKeys] sortedArrayUsingSelector:@selector(compare:)];
+    NSString *key = keys[[indexPath row]];
+    cell.textLabel.text = key;
+    id entity = self.entity[key];
+    cell.detailTextLabel.text = [entity description];
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    NSArray *keys = [[self.entity allKeys] sortedArrayUsingSelector:@selector(compare:)];
+    NSString *key = keys[[indexPath row]];
+    UGTextViewController *textViewController = [[UGTextViewController alloc] init];
+    textViewController.key = key;
+    textViewController.binding = self.entity;
+    [self.navigationController pushViewController:textViewController animated:YES];
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/UGSignInViewController.h
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/UGSignInViewController.h b/sdks/other/ios/samples/Browser/browser/UGSignInViewController.h
new file mode 100644
index 0000000..58481cf
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/UGSignInViewController.h
@@ -0,0 +1,24 @@
+//
+//  UGSignInViewController.h
+//  Browser
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+
+@class UGAppViewController;
+
+@interface UGSignInViewController : UITableViewController
+@property (nonatomic, weak) UGAppViewController *appViewController;
+@end

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/UGSignInViewController.m
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/UGSignInViewController.m b/sdks/other/ios/samples/Browser/browser/UGSignInViewController.m
new file mode 100644
index 0000000..7e346c9
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/UGSignInViewController.m
@@ -0,0 +1,185 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+//
+//  UGSignInViewController.m
+//  Browser
+//
+
+#import "UGHTTPClient.h"
+#import "UGConnection.h"
+#import "UGSignInViewController.h"
+#import "UGAppViewController.h"
+
+#define SERVER @"http://api.usergrid.com"
+
+@interface UGFormTableViewCell : UITableViewCell <UITextFieldDelegate>
+@property (nonatomic, strong) UILabel *label;
+@property (nonatomic, strong) UITextField *textField;
+@property (nonatomic, strong) NSString *key;
+@property (nonatomic, weak) id binding;
+@end
+
+@implementation UGFormTableViewCell
+
+- (id) initWithTitle:(NSString *)title key:(NSString *) key binding:(id) binding
+{
+    if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]) {
+        self.label = [[UILabel alloc] initWithFrame:CGRectMake(10,0,90,14)];
+        self.label.backgroundColor = [UIColor clearColor];
+        self.label.font = [UIFont systemFontOfSize:10];
+        self.label.textColor = [UIColor grayColor];
+        self.label.textAlignment = UITextAlignmentLeft;
+        [self.contentView addSubview:self.label];
+        self.textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 14, 100, 30)];
+        self.textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
+        self.textField.font = [UIFont systemFontOfSize:18];
+        self.textField.autocorrectionType = UITextAutocorrectionTypeNo;
+        self.textField.autocapitalizationType = UITextAutocapitalizationTypeNone;
+        self.textField.delegate = self;
+        if ([key isEqualToString:@"password"]) {
+            self.textField.secureTextEntry = YES;
+        }
+        [self.contentView addSubview:self.textField];
+        self.selectionStyle = UITableViewCellSelectionStyleNone;
+        // individual cell properties
+        self.label.text = title;
+        self.key = key;
+        self.binding = binding;
+    }
+    return self;
+}
+
+- (void) layoutSubviews
+{
+    [super layoutSubviews];
+    CGRect textFieldFrame = self.textField.frame;
+    textFieldFrame.size.width = self.textField.superview.bounds.size.width - textFieldFrame.origin.x - 5;
+    self.textField.frame = textFieldFrame;
+}
+
+- (void) textFieldDidEndEditing:(UITextField *)textField
+{
+    [self.binding setObject:textField.text forKey:self.key];
+}
+
+@end
+
+@interface UGSignInViewController ()
+@property (nonatomic, strong) NSMutableDictionary *values;
+@property (nonatomic, strong) NSArray *cells;
+@end
+
+@implementation UGSignInViewController
+
+- (id)init {
+    if (self = [super initWithStyle:UITableViewStyleGrouped]) {
+        self.values = [[[NSUserDefaults standardUserDefaults] objectForKey:@"usergrid"] mutableCopy];
+        if (!self.values) {
+            self.values = [NSMutableDictionary dictionary];
+            [self.values setObject:SERVER forKey:@"server"];
+        }
+        self.cells =
+        @[[[UGFormTableViewCell alloc] initWithTitle:@"Server" key:@"server" binding:self.values],
+          [[UGFormTableViewCell alloc] initWithTitle:@"Organization" key:@"organization" binding:self.values],
+          [[UGFormTableViewCell alloc] initWithTitle:@"Application" key:@"application" binding:self.values],
+          [[UGFormTableViewCell alloc] initWithTitle:@"Username" key:@"username" binding:self.values],
+          [[UGFormTableViewCell alloc] initWithTitle:@"Password" key:@"password" binding:self.values]];
+    }
+    return self;
+}
+
+- (void) loadView
+{
+    [super loadView];
+    self.title = @"Connection";
+    self.tableView.backgroundView = nil;
+    self.tableView.backgroundColor = [UIColor darkGrayColor];
+    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
+                                             initWithTitle:@"Cancel"
+                                             style:UIBarButtonItemStyleBordered
+                                             target:self
+                                             action:@selector(cancel:)];
+    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
+                                              initWithTitle:@"Sign In"
+                                              style:UIBarButtonItemStyleBordered
+                                              target:self
+                                              action:@selector(signin:)];
+}
+
+#pragma mark - Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return 1;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return [self.cells count];
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    return [self.cells objectAtIndex:[indexPath row]];
+}
+
+#pragma mark - Table view delegate
+
+- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    UGFormTableViewCell *formCell = (UGFormTableViewCell *) cell;
+    formCell.textField.text = [formCell.binding objectForKey:formCell.key];
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    UGFormTableViewCell *formCell = (UGFormTableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
+    [formCell.textField becomeFirstResponder];
+}
+
+#pragma mark - Sign In
+
+- (void) cancel:(id) sender
+{
+    [self dismissModalViewControllerAnimated:YES];
+}
+
+- (void) signin:(id) sender
+{
+    for (UGFormTableViewCell *cell in self.cells) {
+        [cell.textField resignFirstResponder];
+    }
+    [[NSUserDefaults standardUserDefaults] setObject:self.values forKey:@"usergrid"];
+    [[NSUserDefaults standardUserDefaults] synchronize];
+    
+    UGConnection *connection = [UGConnection sharedConnection];
+    connection.server = [self.values objectForKey:@"server"];
+    connection.organization = [self.values objectForKey:@"organization"];
+    connection.application = [self.values objectForKey:@"application"];
+    
+    [[[UGHTTPClient alloc] initWithRequest:
+      [connection getAccessTokenForApplicationWithUsername:[self.values objectForKey:@"username"]
+                                              password:[self.values objectForKey:@"password"]]]
+     connectWithCompletionHandler:^(UGHTTPResult *result) {
+         [connection authenticateWithResult:result];
+         [(UGAppViewController *) self.appViewController downloadApplicationDescription];
+         [self dismissModalViewControllerAnimated:YES];
+     }];
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/UGTextViewController.h
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/UGTextViewController.h b/sdks/other/ios/samples/Browser/browser/UGTextViewController.h
new file mode 100644
index 0000000..57e2c8f
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/UGTextViewController.h
@@ -0,0 +1,23 @@
+//
+//  UGTextViewController.h
+//  Browser
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+
+@interface UGTextViewController : UIViewController
+@property (nonatomic, strong) NSString *key;
+@property (nonatomic, strong) NSDictionary *binding;
+@end

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/UGTextViewController.m
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/UGTextViewController.m b/sdks/other/ios/samples/Browser/browser/UGTextViewController.m
new file mode 100644
index 0000000..d428913
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/UGTextViewController.m
@@ -0,0 +1,43 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+//
+//  UGTextViewController.m
+//  Browser
+//
+
+
+#import "UGTextViewController.h"
+
+@interface UGTextViewController ()
+@property (nonatomic, strong) UITextView *textView;
+@end
+
+@implementation UGTextViewController
+
+- (void) loadView
+{
+    [super loadView];
+    self.textView = [[UITextView alloc] initWithFrame:self.view.bounds];
+    self.textView.autoresizingMask = UIViewAutoresizingFlexibleWidth+UIViewAutoresizingFlexibleHeight;
+    self.textView.font = [UIFont systemFontOfSize:20];
+    [self.view addSubview:self.textView];
+    self.textView.text = [self.binding[self.key] description];
+    self.navigationItem.title = self.key;
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/browser-Info.plist
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/browser-Info.plist b/sdks/other/ios/samples/Browser/browser/browser-Info.plist
new file mode 100644
index 0000000..212588c
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/browser-Info.plist
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+-->
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleDisplayName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.apigee.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/browser-Prefix.pch
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/browser-Prefix.pch b/sdks/other/ios/samples/Browser/browser/browser-Prefix.pch
new file mode 100644
index 0000000..86a5940
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/browser-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'browser' target in the 'browser' project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_3_0
+#warning "This project uses features only available in iOS SDK 3.0 and later."
+#endif
+
+#ifdef __OBJC__
+    #import <UIKit/UIKit.h>
+    #import <Foundation/Foundation.h>
+#endif

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/en.lproj/InfoPlist.strings
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/en.lproj/InfoPlist.strings b/sdks/other/ios/samples/Browser/browser/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..477b28f
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+

http://git-wip-us.apache.org/repos/asf/usergrid/blob/867060fa/sdks/other/ios/samples/Browser/browser/main.m
----------------------------------------------------------------------
diff --git a/sdks/other/ios/samples/Browser/browser/main.m b/sdks/other/ios/samples/Browser/browser/main.m
new file mode 100644
index 0000000..11cecbf
--- /dev/null
+++ b/sdks/other/ios/samples/Browser/browser/main.m
@@ -0,0 +1,30 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You 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.
+//
+
+//
+//  main.m
+//  Browser
+//
+
+#import "UGAppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+    @autoreleasepool {
+        return UIApplicationMain(argc, argv, nil, NSStringFromClass([UGAppDelegate class]));
+    }
+}