Permalink
Browse files

Added licenses, several minor fixes, and switched font

- Added Apache license to repository
- Added license to all source files
- Fixed possible Glitch object leak in sample app if view was unloaded
- Will now call auth check to validate stored auth token before
proceeding
- Included SBJSON license
- Added NSError to glitchLoginFail call (although no errors are passed
- yet)
- Now checking ok parameter in API response in sample app
- Switched VAG font to Open Sans font and added license
  • Loading branch information...
1 parent dbd948c commit e087bcefe14b95e78af87b31d9284e85b57a2ffa @bradya bradya committed Sep 13, 2011
View
4 .gitignore
@@ -8,3 +8,7 @@ sample/SampleGlitchApp.xcodeproj/xcuserdata/brady.xcuserdatad/xcschemes/SampleGl
sample/SampleGlitchApp.xcodeproj/project.xcworkspace/xcuserdata/brady.xcuserdatad/UserInterfaceState.xcuserstate
sample/SampleGlitchApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+
+sample/SampleGlitchApp.xcodeproj/xcuserdata/brady.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
+
+sample/SampleGlitchApp.xcodeproj/project.xcworkspace/xcuserdata/brady.xcuserdatad/WorkspaceSettings.xcsettings
View
13 LICENSE.md
@@ -0,0 +1,13 @@
+Copyright 2011 Tiny Speck, 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.
View
15 sample/Classes/SampleAppDelegate.h
@@ -4,10 +4,23 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
+
#import <UIKit/UIKit.h>
@class SampleViewController;
View
15 sample/Classes/SampleAppDelegate.m
@@ -4,10 +4,23 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
+
#import "SampleAppDelegate.h"
#import "SampleViewController.h"
View
15 sample/Classes/SampleViewController.h
@@ -4,10 +4,23 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
+
#import <UIKit/UIKit.h>
#import "Glitch.h"
View
96 sample/Classes/SampleViewController.m
@@ -4,10 +4,23 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
+
#import "SampleViewController.h"
@@ -28,29 +41,44 @@ - (void)requestFinished:(GCRequest*)request withResult:(id)result
// Perform validation on the response
if ([result isKindOfClass:[NSDictionary class]])
{
- // Get the name of the player from the response
- id player_name = [(NSDictionary*)result objectForKey:@"player_name"];
+ // Get the status of the auth token
+ id ok = [(NSDictionary*)result objectForKey:@"ok"];
- // Ensure we've got a valid player name
- if (player_name && [player_name isKindOfClass:[NSString class]])
+ // Ensure that we're ok before proceeding! (the ok number is 1)
+ if (ok && [ok isKindOfClass:[NSNumber class]] && [(NSNumber*)ok boolValue])
{
- // Initialize the player name label if it isn't already initialized
- if (!_playerNameLabel)
- {
- _playerNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 300, 200)];
- _playerNameLabel.textAlignment = UITextAlignmentCenter;
- _playerNameLabel.font = [UIFont fontWithName:@"VAGRundschriftD" size:32.0f];
- _playerNameLabel.alpha = 0.8f;
- _playerNameLabel.backgroundColor = [UIColor clearColor];
- _playerNameLabel.lineBreakMode = UILineBreakModeWordWrap;
- _playerNameLabel.numberOfLines = 0;
- _playerNameLabel.shadowColor = [UIColor whiteColor];
- _playerNameLabel.shadowOffset = CGSizeMake(1.0f, 1.0f);
- [self.view addSubview:_playerNameLabel];
- }
+ // Get the name of the player from the response
+ id player_name = [(NSDictionary*)result objectForKey:@"player_name"];
- // Update the label text with our player name
- _playerNameLabel.text = [NSString stringWithFormat:@"Hello, %@!",player_name];
+ // Ensure we've got a valid player name
+ if (player_name && [player_name isKindOfClass:[NSString class]])
+ {
+ // Initialize the player name label if it isn't already initialized
+ if (!_playerNameLabel)
+ {
+ _playerNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 300, 200)];
+ _playerNameLabel.textAlignment = UITextAlignmentCenter;
+ _playerNameLabel.font = [UIFont fontWithName:@"Open Sans" size:32.0f];
+ _playerNameLabel.alpha = 0.8f;
+ _playerNameLabel.backgroundColor = [UIColor clearColor];
+ _playerNameLabel.lineBreakMode = UILineBreakModeWordWrap;
+ _playerNameLabel.numberOfLines = 0;
+ _playerNameLabel.shadowColor = [UIColor whiteColor];
+ _playerNameLabel.shadowOffset = CGSizeMake(1.0f, 1.0f);
+ [self.view addSubview:_playerNameLabel];
+ }
+
+ // Update the label text with our player name
+ _playerNameLabel.text = [NSString stringWithFormat:@"Hello, %@!",player_name];
+ } // end of if (player_name && [player_name isKindOfClass:[NSString class]])
+ } // end of if (ok && [ok isKindOfClass:[NSNumber class]] && [(NSNumber*)ok boolValue])
+ else
+ {
+ // If we're NOT ok!
+ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Nooooo!" message:@"The API request was not ok!"
+ delegate:self cancelButtonTitle:@"Darn" otherButtonTitles:nil];
+ [alert show];
+ [alert release];
}
}
}
@@ -83,7 +111,7 @@ - (void)glitchLoginSuccess
// Called when login fails
-- (void)glitchLoginFail
+- (void)glitchLoginFail:(NSError *)error
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Oh no!" message:@"Glitch login failed!"
delegate:self cancelButtonTitle:@":-(" otherButtonTitles:nil];
@@ -94,26 +122,18 @@ - (void)glitchLoginFail
#pragma mark - View lifecycle
--(void)viewDidAppear:(BOOL)animated
-{
- [_glitch authorizeWithScope:@"identity"];
-}
-
-
-// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
-- (void)viewDidLoad
-{
- _glitch = [[Glitch alloc] initWithDelegate:self];
-
- [super viewDidLoad];
+- (id)initWithCoder:(NSCoder *)coder {
+ self = [super initWithCoder:coder];
+ if (self) {
+ _glitch = [[Glitch alloc] initWithDelegate:self];
+ }
+ return self;
}
-- (void)viewDidUnload
+-(void)viewDidAppear:(BOOL)animated
{
- [super viewDidUnload];
- // Release any retained subviews of the main view.
- // e.g. self.myOutlet = nil;
+ [_glitch authorizeWithScope:@"identity"];
}
View
BIN sample/Resources/Fonts/OpenSans-Bold.ttf
Binary file not shown.
View
202 sample/Resources/Fonts/OpenSans-LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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.
View
BIN sample/Resources/Fonts/VAG.ttf
Binary file not shown.
View
2 sample/SampleGlitchApp-Info.plist
@@ -45,7 +45,7 @@
<string>MainWindow</string>
<key>UIAppFonts</key>
<array>
- <string>VAG.ttf</string>
+ <string>OpenSans-Bold.ttf</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
View
14 sample/SampleGlitchApp-Prefix.pch
@@ -4,7 +4,19 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
View
8 sample/SampleGlitchApp.xcodeproj/project.pbxproj
@@ -12,7 +12,7 @@
237A883A140D60A8004D6BA6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 237A8839140D60A8004D6BA6 /* UIKit.framework */; };
237A883C140D60A8004D6BA6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 237A883B140D60A8004D6BA6 /* Foundation.framework */; };
237A883E140D60A8004D6BA6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 237A883D140D60A8004D6BA6 /* CoreGraphics.framework */; };
- 23AF3948141038520045A2B4 /* VAG.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 23AF3947141038520045A2B4 /* VAG.ttf */; };
+ 23AF3948141038520045A2B4 /* OpenSans-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 23AF3947141038520045A2B4 /* OpenSans-Bold.ttf */; };
23AF394B141038590045A2B4 /* groddle.png in Resources */ = {isa = PBXBuildFile; fileRef = 23AF3949141038590045A2B4 /* groddle.png */; };
23AF394C141038590045A2B4 /* groddle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 23AF394A141038590045A2B4 /* groddle@2x.png */; };
23AF395A141038CA0045A2B4 /* SampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 23AF3957141038CA0045A2B4 /* SampleAppDelegate.m */; };
@@ -44,7 +44,7 @@
237A8841140D60A8004D6BA6 /* SampleGlitchApp-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SampleGlitchApp-Info.plist"; sourceTree = "<group>"; };
237A8847140D60A8004D6BA6 /* SampleGlitchApp-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SampleGlitchApp-Prefix.pch"; sourceTree = "<group>"; };
2399647A14114CE500827492 /* GlitchConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GlitchConfig.h; path = ../sdk/GlitchConfig.h; sourceTree = SOURCE_ROOT; };
- 23AF3947141038520045A2B4 /* VAG.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = VAG.ttf; path = Resources/Fonts/VAG.ttf; sourceTree = SOURCE_ROOT; };
+ 23AF3947141038520045A2B4 /* OpenSans-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = OpenSans-Bold.ttf; path = Resources/Fonts/OpenSans-Bold.ttf; sourceTree = SOURCE_ROOT; };
23AF3949141038590045A2B4 /* groddle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = groddle.png; path = Resources/Images/groddle.png; sourceTree = SOURCE_ROOT; };
23AF394A141038590045A2B4 /* groddle@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "groddle@2x.png"; path = "Resources/Images/groddle@2x.png"; sourceTree = SOURCE_ROOT; };
23AF3956141038CA0045A2B4 /* SampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SampleAppDelegate.h; path = Classes/SampleAppDelegate.h; sourceTree = SOURCE_ROOT; };
@@ -168,7 +168,7 @@
23AF390A14100CDE0045A2B4 /* Fonts */ = {
isa = PBXGroup;
children = (
- 23AF3947141038520045A2B4 /* VAG.ttf */,
+ 23AF3947141038520045A2B4 /* OpenSans-Bold.ttf */,
);
name = Fonts;
sourceTree = "<group>";
@@ -270,7 +270,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 23AF3948141038520045A2B4 /* VAG.ttf in Resources */,
+ 23AF3948141038520045A2B4 /* OpenSans-Bold.ttf in Resources */,
23AF394B141038590045A2B4 /* groddle.png in Resources */,
23AF394C141038590045A2B4 /* groddle@2x.png in Resources */,
23201C1C14105138003E71A7 /* MainWindow.xib in Resources */,
View
14 sample/main.m
@@ -4,7 +4,19 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
View
19 sdk/GCRequest.h
@@ -4,7 +4,19 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
@@ -22,6 +34,7 @@
id<GCRequestDelegate> _requestDelegate; // Delegate that will be called when events occur before, during, and after the request
NSURLConnection * _connection; // Connection object - this is held on to until the request completes
NSMutableData * _receivedResponseData; // Response data, filled up as information is received from the server
+ NSDictionary * _additionalData; // Optional additional data dictionary, can be used to store whatever you want that relates to a particular request
}
@@ -31,6 +44,7 @@
@property (nonatomic, assign) id<GCRequestDelegate> requestDelegate;
@property (nonatomic, assign) NSURLConnection * connection;
@property (nonatomic, assign) NSMutableData * receivedResponseData;
+@property (nonatomic, copy) NSDictionary * additionalData;
#pragma mark - Initialization
@@ -42,7 +56,8 @@
// and any parameters passed in for the request.
+ (GCRequest *)requestWithMethod:(NSString*)method
delegate:(id<GCRequestDelegate>)delegate
- params:(NSDictionary*)params;
+ params:(NSDictionary*)params
+ additionalData:(NSDictionary*)additionalData;
#pragma mark - Interacting with the API
View
23 sdk/GCRequest.m
@@ -4,7 +4,19 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
@@ -26,7 +38,8 @@ @implementation GCRequest
params = _params,
requestDelegate = _requestDelegate,
connection = _connection,
- receivedResponseData = _receivedResponseData;
+ receivedResponseData = _receivedResponseData,
+ additionalData = _additionalData;
#pragma mark - Initialization
@@ -37,14 +50,16 @@ @implementation GCRequest
// delegate to call when request/response events occur,
// and any parameters passed in for the request.
+ (GCRequest *)requestWithMethod:(NSString*)method
- delegate:(id<GCRequestDelegate>)delegate
- params:(NSDictionary*)params
+ delegate:(id<GCRequestDelegate>)delegate
+ params:(NSDictionary*)params
+ additionalData:(NSDictionary*)additionalData
{
GCRequest * request = [[[GCRequest alloc] init] autorelease];
request.method = method;
request.url = [NSString stringWithFormat:@"%@%@",GCAPIUrlPrefix,method];
request.params = params;
request.requestDelegate = delegate;
+ request.additionalData = additionalData;
return request;
}
View
25 sdk/Glitch.h
@@ -4,7 +4,19 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
@@ -16,7 +28,7 @@
@protocol GCSessionDelegate;
-@interface Glitch : NSObject {
+@interface Glitch : NSObject <GCRequestDelegate> {
NSString * _accessToken;
id<GCSessionDelegate> _sessionDelegate;
}
@@ -35,7 +47,7 @@
- (void)authorizeWithScope:(NSString*)scope; // Pass in "identity", "read", or "write" as scope. See Glitch API docs for more info about OAuth scopes!
- (void)authorizeWithScope:(NSString*)scope andState:(NSString*)state;
-- (void)handleOpenURL:(NSURL *)url;
+- (void)handleOpenURL:(NSURL*)url;
- (void)logout;
@@ -50,6 +62,11 @@
- (GCRequest*)requestWithMethod:(NSString*)method delegate:(id<GCRequestDelegate>)delegate;
+#pragma mark - Glitch Request Delegate Methods for Checking Auth Token
+
+- (void)reauth:(NSDictionary*)additionalData;
+
+
@end
@@ -66,7 +83,7 @@
// Called when login fails
-- (void)glitchLoginFail;
+- (void)glitchLoginFail:(NSError*)error;
// Called when logout was completed
View
103 sdk/Glitch.m
@@ -4,7 +4,19 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
@@ -55,6 +67,9 @@ - (void)authorizeWithScope:(NSString*)scope
// The auth server includes this value when redirecting the user-agent back to the client.
- (void)authorizeWithScope:(NSString*)scope andState:(NSString*)state
{
+ // Set scope to identity if we don't have it
+ NSString * serviceScope = scope ? scope : @"identity";
+
// Check for saved token
NSString * savedToken = [NSKeyedUnarchiver unarchiveObjectWithFile:AccessTokenSavePath()];
@@ -63,17 +78,17 @@ - (void)authorizeWithScope:(NSString*)scope andState:(NSString*)state
// Using saved token
_accessToken = [savedToken copy];
- if ([_sessionDelegate respondsToSelector:@selector(glitchLoginSuccess)])
- {
- [_sessionDelegate glitchLoginSuccess];
- }
+ // Call auth.check to validate token before proceeding
+ GCRequest * request = [self requestWithMethod:@"auth.check" delegate:self];
+
+ // Add scope and (optionally) state to the additional data dictionary so that we can reauthorize later with these parameters if auth.check fails for any reason
+ request.additionalData = state ? [NSDictionary dictionaryWithObjectsAndKeys:scope, @"scope", state, @"state", nil] : [NSDictionary dictionaryWithObject:scope forKey:@"scope"];
+
+ [request connect];
return;
}
- // Set scope to identity if we don't have it
- NSString * serviceScope = scope ? scope : @"identity";
-
NSMutableDictionary * params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
GCAPIKey,@"client_id",
GCRedirectURI,@"redirect_uri",
@@ -117,9 +132,9 @@ - (void)handleOpenURL:(NSURL *)url {
else
{
// Throw ERROR!
- if ([_sessionDelegate respondsToSelector:@selector(glitchLoginFail)])
+ if ([_sessionDelegate respondsToSelector:@selector(glitchLoginFail:)])
{
- [_sessionDelegate glitchLoginFail];
+ [_sessionDelegate glitchLoginFail:nil];
}
}
}
@@ -148,7 +163,7 @@ - (void)saveAccessTokenToDisk
#pragma mark - Interacting with the API
-- (GCRequest*)requestWithMethod:(NSString*)method delegate:(id<GCRequestDelegate>)delegate params:(NSDictionary*)params
+- (GCRequest*)requestWithMethod:(NSString*)method delegate:(id<GCRequestDelegate>)delegate params:(NSDictionary*)params additionalData:(NSDictionary*)additionalData
{
NSMutableDictionary * requestParams = [NSMutableDictionary dictionaryWithObject:_accessToken forKey:@"oauth_token"];
@@ -157,7 +172,13 @@ - (GCRequest*)requestWithMethod:(NSString*)method delegate:(id<GCRequestDelegate
[requestParams addEntriesFromDictionary:params];
}
- return [GCRequest requestWithMethod:method delegate:delegate params:requestParams];
+ return [GCRequest requestWithMethod:method delegate:delegate params:requestParams additionalData:additionalData];
+}
+
+
+- (GCRequest*)requestWithMethod:(NSString*)method delegate:(id<GCRequestDelegate>)delegate params:(NSDictionary*)params
+{
+ return [self requestWithMethod:method delegate:delegate params:params additionalData:nil];
}
@@ -167,4 +188,62 @@ - (GCRequest*)requestWithMethod:(NSString*)method delegate:(id<GCRequestDelegate
}
+#pragma mark - Glitch Request Delegate Methods for Checking Auth Token
+
+// Called when request was completed
+- (void)requestFinished:(GCRequest*)request withResult:(id)result
+{
+ // Validate we've got the right response
+ if ([request.method isEqualToString:@"auth.check"])
+ {
+ // Perform validation on the response
+ if ([result isKindOfClass:[NSDictionary class]])
+ {
+ // Get the status of the auth token
+ id ok = [(NSDictionary*)result objectForKey:@"ok"];
+
+ // Ensure that we're ok! (the number is 1)
+ if (ok && [ok isKindOfClass:[NSNumber class]] && [(NSNumber*)ok boolValue])
+ {
+ if ([_sessionDelegate respondsToSelector:@selector(glitchLoginSuccess)])
+ {
+ [_sessionDelegate glitchLoginSuccess];
+ }
+
+ return;
+ }
+ }
+ }
+
+ // Otherwise remove old auth key re-auth
+ [self reauth:request.additionalData];
+}
+
+
+// Called when request fails
+- (void)requestFailed:(GCRequest*)request withError:(NSError*)error
+{
+ // Remove old key and reauth
+ [self reauth:request.additionalData];
+}
+
+
+// Reauthorize with additional data
+- (void)reauth:(NSDictionary*)additionalData
+{
+ if (additionalData)
+ {
+ // Remove old auth key re-auth
+ _accessToken = nil;
+ [[NSFileManager defaultManager] removeItemAtPath:AccessTokenSavePath() error:nil];
+
+ id scope = [additionalData objectForKey:@"scope"];
+ id state = [additionalData objectForKey:@"state"];
+
+ [self authorizeWithScope:scope andState:state];
+ }
+}
+
+
+
@end
View
14 sdk/GlitchConfig.h
@@ -4,7 +4,19 @@
* Copyright 2011 Tiny Speck, Inc.
* Created by Brady Archambo.
*
- * http://www.glitch.com
+ * 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.
+ *
+ * See more about Glitch at http://www.glitch.com
* http://www.tinyspeck.com
*/
View
24 sdk/JSON/LICENSE
@@ -0,0 +1,24 @@
+Copyright (C) 2007-2011 Stig Brautaset. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+* Neither the name of the author nor the names of its contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

0 comments on commit e087bce

Please sign in to comment.