Skip to content
Browse files

able to download and use updated plist files

  • Loading branch information...
1 parent 5bdc348 commit 47874bbc148ad78a3d5417d0caec681af502ed32 @davidchiles committed Nov 7, 2012
Showing with 10,153 additions and 134 deletions.
  1. BIN Blue_Marker.png
  2. +3 −0 OPETagInterpreter.m
  3. +77 −85 OSM POI Editor.xcodeproj/project.pbxproj
  4. BIN ... Editor.xcodeproj/project.xcworkspace/xcuserdata/David.xcuserdatad/UserInterfaceState.xcuserstate
  5. +53 −27 OSM POI Editor.xcodeproj/xcuserdata/David.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
  6. +11 −1 OSM POI Editor/OPEAppDelegate.m
  7. +17 −0 OSM POI Editor/OPEFileUpdater.h
  8. +51 −0 OSM POI Editor/OPEFileUpdater.m
  9. +1 −0 OSM POI Editor/OPEUtility.h
  10. +11 −0 OSM POI Editor/OPEUtility.m
  11. +0 −21 OSM POI Editor/OPEViewController.m
  12. BIN center.png
  13. BIN center@2x.png
  14. BIN left.png
  15. BIN left@2x.png
  16. +1 −0 lib/Parse.framework/Headers
  17. +1 −0 lib/Parse.framework/Parse
  18. +1 −0 lib/Parse.framework/Resources
  19. +204 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFACL.h
  20. +57 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFAnonymousUtils.h
  21. +47 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFCloud.h
  22. +145 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFConstants.h
  23. +306 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFFacebookUtils.h
  24. +195 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFFile.h
  25. +88 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFGeoPoint.h
  26. +32 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFImageView.h
  27. +76 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFInstallation.h
  28. +78 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFLogInView.h
  29. +95 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFLogInViewController.h
  30. +539 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFObject.h
  31. +60 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFProduct.h
  32. +22 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFProductTableViewController.h
  33. +61 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFPurchase.h
  34. +22 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFPurchaseTableViewCell.h
  35. +391 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFPush.h
  36. +553 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFQuery.h
  37. +152 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFQueryTableViewController.h
  38. +48 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFRelation.h
  39. +102 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFRole.h
  40. +62 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFSignUpView.h
  41. +81 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFSignUpViewController.h
  42. +19 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFTableViewCell.h
  43. +201 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFTwitterUtils.h
  44. +236 −0 lib/Parse.framework/Versions/1.1.14/Headers/PFUser.h
  45. +49 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_EGORefreshTableHeaderView.h
  46. +42 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBCacheDescriptor.h
  47. +73 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBCacheIndex.h
  48. +21 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBConnect.h
  49. +29 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBContentLink.h
  50. +44 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBDataDiskCache.h
  51. +165 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBDialog.h
  52. +123 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBError.h
  53. +74 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBFrictionlessRequestSettings.h
  54. +91 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBFriendPickerCacheDescriptor.h
  55. +33 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBFriendPickerViewController+Internal.h
  56. +290 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBFriendPickerViewController.h
  57. +77 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBGraphLocation.h
  58. +224 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBGraphObject.h
  59. +63 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBGraphObjectPagingLoader.h
  60. +36 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBGraphObjectTableCell.h
  61. +101 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBGraphObjectTableDataSource.h
  62. +38 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBGraphObjectTableSelection.h
  63. +60 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBGraphPlace.h
  64. +90 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBGraphUser.h
  65. +86 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBLogger.h
  66. +48 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBLoginDialog.h
  67. +160 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBLoginView.h
  68. +170 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBNativeDialogs.h
  69. +127 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBOpenGraphAction.h
  70. +36 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBPlacePickerCacheDescriptor.h
  71. +38 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBPlacePickerViewController+Internal.h
  72. +247 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBPlacePickerViewController.h
  73. +80 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBProfilePictureView.h
  74. +504 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBRequest.h
  75. +41 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBRequestBody.h
  76. +26 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBRequestConnection+Internal.h
  77. +389 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBRequestConnection.h
  78. +2 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBSDKVersion.h
  79. +31 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBSession+Internal.h
  80. +43 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBSession+Protected.h
  81. +617 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBSession.h
  82. +32 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBSessionManualTokenCachingStrategy.h
  83. +121 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBSessionTokenCachingStrategy.h
  84. +23 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBSettings+Internal.h
  85. +84 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBSettings.h
  86. +25 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBTestSession+Internal.h
  87. +135 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBTestSession.h
  88. +36 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBURLConnection.h
  89. +125 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBUserSettingsViewController.h
  90. +55 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBUtility.h
  91. +22 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBViewController+Internal.h
  92. +123 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FBViewController.h
  93. +281 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_Facebook.h
  94. +134 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_FacebookSDK.h
  95. +346 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_MBProgressHUD.h
  96. +43 −0 lib/Parse.framework/Versions/1.1.14/Headers/PF_Twitter.h
  97. +80 −0 lib/Parse.framework/Versions/1.1.14/Headers/Parse.h
  98. BIN lib/Parse.framework/Versions/1.1.14/Parse
  99. +20 −0 lib/Parse.framework/Versions/1.1.14/Resources/Info.plist
  100. BIN lib/Parse.framework/Versions/1.1.14/Resources/Localizable.strings
  101. +1 −0 lib/Parse.framework/Versions/Current
  102. BIN newNodeMarker.png
  103. BIN newNodeMarker@2x.png
  104. BIN right.png
  105. BIN right@2x.png
  106. BIN userLocation.png
  107. BIN userLocation@2x.png
View
BIN Blue_Marker.png
Deleted file not rendered
View
3 OPETagInterpreter.m
@@ -21,6 +21,7 @@
// along with POI+. If not, see <http://www.gnu.org/licenses/>.
#import "OPETagInterpreter.h"
+#import "OPEUtility.h"
@implementation OPETagInterpreter
@@ -100,6 +101,7 @@ - (void) readPlist
{
NSLog(@"start reading plist");
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Tags" ofType:@"plist"];
+ filePath = [OPEUtility fileFromBundleOrDocumentsForResource:@"Tags" ofType:@"plist"];
NSDictionary* plistDict = [[NSDictionary alloc] initWithContentsOfFile:filePath];
@@ -207,6 +209,7 @@ + (NSArray *) getOptionalTagsDictionaries: (NSArray *) tagArray
{
NSMutableArray * tempFinalArray = [[NSMutableArray alloc] init];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Optional" ofType:@"plist"];
+ filePath = [OPEUtility fileFromBundleOrDocumentsForResource:@"Optional" ofType:@"plist"];
NSDictionary* optionalDictionary = [[NSDictionary alloc] initWithContentsOfFile:filePath];
for (NSString * osmKey in tagArray) {
View
162 OSM POI Editor.xcodeproj/project.pbxproj
@@ -8,8 +8,6 @@
/* Begin PBXBuildFile section */
6310F4B6153736D000C65FD8 /* OPEMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 6310F4B5153736D000C65FD8 /* OPEMessage.m */; };
- 6310F4C71537A43C00C65FD8 /* newNodeMarker.png in Resources */ = {isa = PBXBuildFile; fileRef = 6310F4C51537A43C00C65FD8 /* newNodeMarker.png */; };
- 6310F4C81537A43C00C65FD8 /* newNodeMarker@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6310F4C61537A43C00C65FD8 /* newNodeMarker@2x.png */; };
6310F59B1537A46D00C65FD8 /* airplane.png in Resources */ = {isa = PBXBuildFile; fileRef = 6310F4CE1537A46D00C65FD8 /* airplane.png */; };
6310F59C1537A46D00C65FD8 /* alcohol.png in Resources */ = {isa = PBXBuildFile; fileRef = 6310F4CF1537A46D00C65FD8 /* alcohol.png */; };
6310F59D1537A46D00C65FD8 /* art.png in Resources */ = {isa = PBXBuildFile; fileRef = 6310F4D01537A46D00C65FD8 /* art.png */; };
@@ -250,6 +248,14 @@
6332CB58162633CA0088F5B0 /* playground@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6332CB57162633CA0088F5B0 /* playground@2x.png */; };
6332CB5A162635F90088F5B0 /* school.png in Resources */ = {isa = PBXBuildFile; fileRef = 6332CB59162635F90088F5B0 /* school.png */; };
6332CB5C162636000088F5B0 /* school@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6332CB5B162636000088F5B0 /* school@2x.png */; };
+ 633CD868164B242C00678D58 /* Parse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633CD867164B242C00678D58 /* Parse.framework */; };
+ 633CD86A164B249100678D58 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633CD869164B249100678D58 /* AudioToolbox.framework */; };
+ 633CD86C164B249D00678D58 /* Accounts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633CD86B164B249D00678D58 /* Accounts.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
+ 633CD86E164B24AA00678D58 /* AdSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633CD86D164B24AA00678D58 /* AdSupport.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
+ 633CD870164B24D900678D58 /* libz.1.1.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 633CD86F164B24D900678D58 /* libz.1.1.3.dylib */; };
+ 633CD872164B24EE00678D58 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633CD871164B24EE00678D58 /* Social.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
+ 633CD874164B24F700678D58 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 633CD873164B24F700678D58 /* StoreKit.framework */; };
+ 633CD877164B28DA00678D58 /* OPEFileUpdater.m in Sources */ = {isa = PBXBuildFile; fileRef = 633CD876164B28DA00678D58 /* OPEFileUpdater.m */; };
634205A716449197009C6BA4 /* libCrittercismCrashOnly_v3_3_4.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6342058D16449197009C6BA4 /* libCrittercismCrashOnly_v3_3_4.a */; };
634205BE1645EA5C009C6BA4 /* plus.png in Resources */ = {isa = PBXBuildFile; fileRef = 634205BD1645EA5C009C6BA4 /* plus.png */; };
634205C01645EA62009C6BA4 /* plus@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 634205BF1645EA62009C6BA4 /* plus@2x.png */; };
@@ -267,12 +273,6 @@
6357072C163F613B0009D8A3 /* TrackingLocation.png in Resources */ = {isa = PBXBuildFile; fileRef = 6357071F163F613B0009D8A3 /* TrackingLocation.png */; };
6357072D163F613B0009D8A3 /* TrackingLocation@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63570720163F613B0009D8A3 /* TrackingLocation@2x.png */; };
63570A901640F3C00009D8A3 /* libMapView.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 63570A8C1640F3B10009D8A3 /* libMapView.a */; };
- 635E0291151BB94F00B6BBCE /* center.png in Resources */ = {isa = PBXBuildFile; fileRef = 635E028B151BB94F00B6BBCE /* center.png */; };
- 635E0292151BB94F00B6BBCE /* center@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 635E028C151BB94F00B6BBCE /* center@2x.png */; };
- 635E0293151BB94F00B6BBCE /* left.png in Resources */ = {isa = PBXBuildFile; fileRef = 635E028D151BB94F00B6BBCE /* left.png */; };
- 635E0294151BB94F00B6BBCE /* left@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 635E028E151BB94F00B6BBCE /* left@2x.png */; };
- 635E0295151BB94F00B6BBCE /* right.png in Resources */ = {isa = PBXBuildFile; fileRef = 635E028F151BB94F00B6BBCE /* right.png */; };
- 635E0296151BB94F00B6BBCE /* right@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 635E0290151BB94F00B6BBCE /* right@2x.png */; };
636D7819152E58F8005E31A3 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 636D7818152E58F8005E31A3 /* MBProgressHUD.m */; };
6370D355151A8BAE0081206A /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 6370D354151A8BAE0081206A /* libsqlite3.dylib */; };
637A89FE14E1C340003F656F /* SPOI.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 637A89FD14E1C340003F656F /* SPOI.bundle */; };
@@ -288,8 +288,6 @@
639682A1153CBD82008F4C0E /* icon-512.png in Resources */ = {isa = PBXBuildFile; fileRef = 6396829D153CBD82008F4C0E /* icon-512.png */; };
639682A2153CBD82008F4C0E /* icon-512@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6396829E153CBD82008F4C0E /* icon-512@2x.png */; };
639953FE16113A200070CBAF /* about.css in Resources */ = {isa = PBXBuildFile; fileRef = 639953FD16113A200070CBAF /* about.css */; };
- 63A2DB3D152257FA000C095D /* userLocation.png in Resources */ = {isa = PBXBuildFile; fileRef = 63A2DB3B152257FA000C095D /* userLocation.png */; };
- 63A2DB3E152257FA000C095D /* userLocation@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63A2DB3C152257FA000C095D /* userLocation@2x.png */; };
63A2DB4515226CF6000C095D /* gear.png in Resources */ = {isa = PBXBuildFile; fileRef = 63A2DB4315226CF6000C095D /* gear.png */; };
63A2DB4615226CF6000C095D /* gear@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63A2DB4415226CF6000C095D /* gear@2x.png */; };
63AD8F7A15E8570B006F92B8 /* OPECategory.m in Sources */ = {isa = PBXBuildFile; fileRef = 63AD8F7915E8570B006F92B8 /* OPECategory.m */; };
@@ -342,7 +340,6 @@
63E279D514E1F31B009D02BD /* ASIS3ServiceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E279A114E1F31B009D02BD /* ASIS3ServiceRequest.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
63E279E814E1F32B009D02BD /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E279E714E1F32B009D02BD /* Reachability.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
63E279EA14E1F87D009D02BD /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E279E914E1F87D009D02BD /* libxml2.dylib */; };
- 63E279F014E2073C009D02BD /* Blue_Marker.png in Resources */ = {isa = PBXBuildFile; fileRef = 63E279EF14E2073C009D02BD /* Blue_Marker.png */; };
63E4BF1A14E068EC00E0BD46 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 63E4BF1914E068EC00E0BD46 /* libz.dylib */; };
63E4BF3114E0728200E0BD46 /* NSDataAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E4BF2E14E0728200E0BD46 /* NSDataAdditions.m */; };
63E4BF3214E0728200E0BD46 /* TBXML.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E4BF3014E0728200E0BD46 /* TBXML.m */; };
@@ -378,8 +375,6 @@
/* Begin PBXFileReference section */
6310F4B4153736D000C65FD8 /* OPEMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPEMessage.h; sourceTree = "<group>"; };
6310F4B5153736D000C65FD8 /* OPEMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPEMessage.m; sourceTree = "<group>"; };
- 6310F4C51537A43C00C65FD8 /* newNodeMarker.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = newNodeMarker.png; sourceTree = "<group>"; };
- 6310F4C61537A43C00C65FD8 /* newNodeMarker@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "newNodeMarker@2x.png"; sourceTree = "<group>"; };
6310F4CE1537A46D00C65FD8 /* airplane.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = airplane.png; sourceTree = "<group>"; };
6310F4CF1537A46D00C65FD8 /* alcohol.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = alcohol.png; sourceTree = "<group>"; };
6310F4D01537A46D00C65FD8 /* art.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = art.png; sourceTree = "<group>"; };
@@ -636,6 +631,15 @@
6332CB57162633CA0088F5B0 /* playground@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "playground@2x.png"; sourceTree = "<group>"; };
6332CB59162635F90088F5B0 /* school.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = school.png; sourceTree = "<group>"; };
6332CB5B162636000088F5B0 /* school@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "school@2x.png"; sourceTree = "<group>"; };
+ 633CD867164B242C00678D58 /* Parse.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Parse.framework; path = lib/Parse.framework; sourceTree = "<group>"; };
+ 633CD869164B249100678D58 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+ 633CD86B164B249D00678D58 /* Accounts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accounts.framework; path = System/Library/Frameworks/Accounts.framework; sourceTree = SDKROOT; };
+ 633CD86D164B24AA00678D58 /* AdSupport.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdSupport.framework; path = System/Library/Frameworks/AdSupport.framework; sourceTree = SDKROOT; };
+ 633CD86F164B24D900678D58 /* libz.1.1.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.1.1.3.dylib; path = usr/lib/libz.1.1.3.dylib; sourceTree = SDKROOT; };
+ 633CD871164B24EE00678D58 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
+ 633CD873164B24F700678D58 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
+ 633CD875164B28DA00678D58 /* OPEFileUpdater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPEFileUpdater.h; sourceTree = "<group>"; };
+ 633CD876164B28DA00678D58 /* OPEFileUpdater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPEFileUpdater.m; sourceTree = "<group>"; };
6342058916449197009C6BA4 /* CrashReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrashReporter.h; sourceTree = "<group>"; };
6342058A16449197009C6BA4 /* Crittercism.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Crittercism.h; sourceTree = "<group>"; };
6342058B16449197009C6BA4 /* CrittercismJSONKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CrittercismJSONKit.h; sourceTree = "<group>"; };
@@ -670,25 +674,19 @@
634205BF1645EA62009C6BA4 /* plus@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "plus@2x.png"; sourceTree = "<group>"; };
6345E57D14E3122900F55486 /* OPENodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPENodeViewController.h; sourceTree = "<group>"; };
6345E57E14E3122900F55486 /* OPENodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPENodeViewController.m; sourceTree = "<group>"; };
- 63570715163F613B0009D8A3 /* HeadingAngleSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = HeadingAngleSmall.png; path = Resources/HeadingAngleSmall.png; sourceTree = "<group>"; };
- 63570716163F613B0009D8A3 /* HeadingAngleSmall@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "HeadingAngleSmall@2x.png"; path = "Resources/HeadingAngleSmall@2x.png"; sourceTree = "<group>"; };
- 63570717163F613B0009D8A3 /* LoadingTile.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = LoadingTile.png; path = Resources/LoadingTile.png; sourceTree = "<group>"; };
- 63570718163F613B0009D8A3 /* LoadingTileZoom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = LoadingTileZoom.png; path = Resources/LoadingTileZoom.png; sourceTree = "<group>"; };
- 63570719163F613B0009D8A3 /* TrackingDot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TrackingDot.png; path = Resources/TrackingDot.png; sourceTree = "<group>"; };
- 6357071A163F613B0009D8A3 /* TrackingDot@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TrackingDot@2x.png"; path = "Resources/TrackingDot@2x.png"; sourceTree = "<group>"; };
- 6357071B163F613B0009D8A3 /* TrackingDotHalo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TrackingDotHalo.png; path = Resources/TrackingDotHalo.png; sourceTree = "<group>"; };
- 6357071C163F613B0009D8A3 /* TrackingDotHalo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TrackingDotHalo@2x.png"; path = "Resources/TrackingDotHalo@2x.png"; sourceTree = "<group>"; };
- 6357071D163F613B0009D8A3 /* TrackingHeading.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TrackingHeading.png; path = Resources/TrackingHeading.png; sourceTree = "<group>"; };
- 6357071E163F613B0009D8A3 /* TrackingHeading@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TrackingHeading@2x.png"; path = "Resources/TrackingHeading@2x.png"; sourceTree = "<group>"; };
- 6357071F163F613B0009D8A3 /* TrackingLocation.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TrackingLocation.png; path = Resources/TrackingLocation.png; sourceTree = "<group>"; };
- 63570720163F613B0009D8A3 /* TrackingLocation@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TrackingLocation@2x.png"; path = "Resources/TrackingLocation@2x.png"; sourceTree = "<group>"; };
+ 63570715163F613B0009D8A3 /* HeadingAngleSmall.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = HeadingAngleSmall.png; path = lib/mapbox/MapView/Map/Resources/HeadingAngleSmall.png; sourceTree = "<group>"; };
+ 63570716163F613B0009D8A3 /* HeadingAngleSmall@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "HeadingAngleSmall@2x.png"; path = "lib/mapbox/MapView/Map/Resources/HeadingAngleSmall@2x.png"; sourceTree = "<group>"; };
+ 63570717163F613B0009D8A3 /* LoadingTile.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = LoadingTile.png; path = lib/mapbox/MapView/Map/Resources/LoadingTile.png; sourceTree = "<group>"; };
+ 63570718163F613B0009D8A3 /* LoadingTileZoom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = LoadingTileZoom.png; path = lib/mapbox/MapView/Map/Resources/LoadingTileZoom.png; sourceTree = "<group>"; };
+ 63570719163F613B0009D8A3 /* TrackingDot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TrackingDot.png; path = lib/mapbox/MapView/Map/Resources/TrackingDot.png; sourceTree = "<group>"; };
+ 6357071A163F613B0009D8A3 /* TrackingDot@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TrackingDot@2x.png"; path = "lib/mapbox/MapView/Map/Resources/TrackingDot@2x.png"; sourceTree = "<group>"; };
+ 6357071B163F613B0009D8A3 /* TrackingDotHalo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TrackingDotHalo.png; path = lib/mapbox/MapView/Map/Resources/TrackingDotHalo.png; sourceTree = "<group>"; };
+ 6357071C163F613B0009D8A3 /* TrackingDotHalo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TrackingDotHalo@2x.png"; path = "lib/mapbox/MapView/Map/Resources/TrackingDotHalo@2x.png"; sourceTree = "<group>"; };
+ 6357071D163F613B0009D8A3 /* TrackingHeading.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TrackingHeading.png; path = lib/mapbox/MapView/Map/Resources/TrackingHeading.png; sourceTree = "<group>"; };
+ 6357071E163F613B0009D8A3 /* TrackingHeading@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TrackingHeading@2x.png"; path = "lib/mapbox/MapView/Map/Resources/TrackingHeading@2x.png"; sourceTree = "<group>"; };
+ 6357071F163F613B0009D8A3 /* TrackingLocation.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TrackingLocation.png; path = lib/mapbox/MapView/Map/Resources/TrackingLocation.png; sourceTree = "<group>"; };
+ 63570720163F613B0009D8A3 /* TrackingLocation@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "TrackingLocation@2x.png"; path = "lib/mapbox/MapView/Map/Resources/TrackingLocation@2x.png"; sourceTree = "<group>"; };
63570A801640F3B10009D8A3 /* MapView.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MapView.xcodeproj; path = lib/mapbox/MapView/MapView.xcodeproj; sourceTree = "<group>"; };
- 635E028B151BB94F00B6BBCE /* center.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = center.png; sourceTree = "<group>"; };
- 635E028C151BB94F00B6BBCE /* center@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "center@2x.png"; sourceTree = "<group>"; };
- 635E028D151BB94F00B6BBCE /* left.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = left.png; sourceTree = "<group>"; };
- 635E028E151BB94F00B6BBCE /* left@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "left@2x.png"; sourceTree = "<group>"; };
- 635E028F151BB94F00B6BBCE /* right.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = right.png; sourceTree = "<group>"; };
- 635E0290151BB94F00B6BBCE /* right@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "right@2x.png"; sourceTree = "<group>"; };
636D7817152E58F8005E31A3 /* MBProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = "<group>"; };
636D7818152E58F8005E31A3 /* MBProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = "<group>"; };
6370D354151A8BAE0081206A /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
@@ -711,8 +709,6 @@
6396829D153CBD82008F4C0E /* icon-512.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-512.png"; sourceTree = "<group>"; };
6396829E153CBD82008F4C0E /* icon-512@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-512@2x.png"; sourceTree = "<group>"; };
639953FD16113A200070CBAF /* about.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = about.css; sourceTree = "<group>"; };
- 63A2DB3B152257FA000C095D /* userLocation.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = userLocation.png; sourceTree = "<group>"; };
- 63A2DB3C152257FA000C095D /* userLocation@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "userLocation@2x.png"; sourceTree = "<group>"; };
63A2DB4315226CF6000C095D /* gear.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gear.png; sourceTree = "<group>"; };
63A2DB4415226CF6000C095D /* gear@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "gear@2x.png"; sourceTree = "<group>"; };
63AD8F7815E8570B006F92B8 /* OPECategory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPECategory.h; sourceTree = "<group>"; };
@@ -829,7 +825,6 @@
63E279E614E1F32B009D02BD /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
63E279E714E1F32B009D02BD /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
63E279E914E1F87D009D02BD /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; };
- 63E279EF14E2073C009D02BD /* Blue_Marker.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Blue_Marker.png; sourceTree = "<group>"; };
63E4BF1914E068EC00E0BD46 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
63E4BF2D14E0728200E0BD46 /* NSDataAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSDataAdditions.h; sourceTree = "<group>"; };
63E4BF2E14E0728200E0BD46 /* NSDataAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDataAdditions.m; sourceTree = "<group>"; };
@@ -857,20 +852,27 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 63E2796A14E1F281009D02BD /* SystemConfiguration.framework in Frameworks */,
+ 633CD874164B24F700678D58 /* StoreKit.framework in Frameworks */,
+ 633CD872164B24EE00678D58 /* Social.framework in Frameworks */,
+ 633CD870164B24D900678D58 /* libz.1.1.3.dylib in Frameworks */,
+ 6330AB7314DB519A00448852 /* CoreGraphics.framework in Frameworks */,
+ 63E2796814E1F274009D02BD /* CFNetwork.framework in Frameworks */,
+ 633CD86E164B24AA00678D58 /* AdSupport.framework in Frameworks */,
+ 633CD86C164B249D00678D58 /* Accounts.framework in Frameworks */,
+ 633CD86A164B249100678D58 /* AudioToolbox.framework in Frameworks */,
63570A901640F3C00009D8A3 /* libMapView.a in Frameworks */,
63E279EA14E1F87D009D02BD /* libxml2.dylib in Frameworks */,
6370D355151A8BAE0081206A /* libsqlite3.dylib in Frameworks */,
63E4BF1A14E068EC00E0BD46 /* libz.dylib in Frameworks */,
6383949A14EC85C100C74A57 /* Security.framework in Frameworks */,
63E2796C14E1F28D009D02BD /* MobileCoreServices.framework in Frameworks */,
- 63E2796A14E1F281009D02BD /* SystemConfiguration.framework in Frameworks */,
- 63E2796814E1F274009D02BD /* CFNetwork.framework in Frameworks */,
6330AC0714DB5E4D00448852 /* CoreLocation.framework in Frameworks */,
6330AC0514DB54A200448852 /* QuartzCore.framework in Frameworks */,
6330AB6F14DB519A00448852 /* UIKit.framework in Frameworks */,
6330AB7114DB519A00448852 /* Foundation.framework in Frameworks */,
- 6330AB7314DB519A00448852 /* CoreGraphics.framework in Frameworks */,
634205A716449197009C6BA4 /* libCrittercismCrashOnly_v3_3_4.a in Frameworks */,
+ 633CD868164B242C00678D58 /* Parse.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1136,7 +1138,6 @@
isa = PBXGroup;
children = (
63570A801640F3B10009D8A3 /* MapView.xcodeproj */,
- 6370D354151A8BAE0081206A /* libsqlite3.dylib */,
63570721163F613B0009D8A3 /* Resources */,
636D781A152E58FD005E31A3 /* MBProgressHUD */,
6330AB7414DB519A00448852 /* OSM POI Editor */,
@@ -1162,19 +1163,27 @@
6330AB6D14DB519A00448852 /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 6330AC0614DB5E4D00448852 /* CoreLocation.framework */,
+ 6330AC0414DB54A200448852 /* QuartzCore.framework */,
+ 6330AB6E14DB519A00448852 /* UIKit.framework */,
+ 6330AB7014DB519A00448852 /* Foundation.framework */,
+ 6330AB7214DB519A00448852 /* CoreGraphics.framework */,
+ 633CD873164B24F700678D58 /* StoreKit.framework */,
+ 633CD871164B24EE00678D58 /* Social.framework */,
+ 633CD86D164B24AA00678D58 /* AdSupport.framework */,
+ 633CD86B164B249D00678D58 /* Accounts.framework */,
+ 633CD869164B249100678D58 /* AudioToolbox.framework */,
+ 633CD867164B242C00678D58 /* Parse.framework */,
6383949914EC85C100C74A57 /* Security.framework */,
63E2796B14E1F28D009D02BD /* MobileCoreServices.framework */,
63E2796914E1F281009D02BD /* SystemConfiguration.framework */,
63E2796714E1F274009D02BD /* CFNetwork.framework */,
63E4BF1914E068EC00E0BD46 /* libz.dylib */,
+ 633CD86F164B24D900678D58 /* libz.1.1.3.dylib */,
+ 6370D354151A8BAE0081206A /* libsqlite3.dylib */,
63E279E914E1F87D009D02BD /* libxml2.dylib */,
6330AC0214DB547D00448852 /* libstdc++.6.dylib */,
6330AC0014DB544C00448852 /* libsqlite3.0.dylib */,
- 6330AC0614DB5E4D00448852 /* CoreLocation.framework */,
- 6330AC0414DB54A200448852 /* QuartzCore.framework */,
- 6330AB6E14DB519A00448852 /* UIKit.framework */,
- 6330AB7014DB519A00448852 /* Foundation.framework */,
- 6330AB7214DB519A00448852 /* CoreGraphics.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -1195,6 +1204,8 @@
63968298153CB8B4008F4C0E /* OPEAPIConstants.h */,
63FCA44F1643363700A28470 /* OPEUtility.h */,
63FCA4501643363700A28470 /* OPEUtility.m */,
+ 633CD875164B28DA00678D58 /* OPEFileUpdater.h */,
+ 633CD876164B28DA00678D58 /* OPEFileUpdater.m */,
6332CB3716261E470088F5B0 /* Model */,
631539DF14DC98D0000236F0 /* OPEOSMData.h */,
631539E014DC98D0000236F0 /* OPEOSMData.m */,
@@ -1299,18 +1310,6 @@
63570721163F613B0009D8A3 /* Resources */ = {
isa = PBXGroup;
children = (
- 63570715163F613B0009D8A3 /* HeadingAngleSmall.png */,
- 63570716163F613B0009D8A3 /* HeadingAngleSmall@2x.png */,
- 63570717163F613B0009D8A3 /* LoadingTile.png */,
- 63570718163F613B0009D8A3 /* LoadingTileZoom.png */,
- 63570719163F613B0009D8A3 /* TrackingDot.png */,
- 6357071A163F613B0009D8A3 /* TrackingDot@2x.png */,
- 6357071B163F613B0009D8A3 /* TrackingDotHalo.png */,
- 6357071C163F613B0009D8A3 /* TrackingDotHalo@2x.png */,
- 6357071D163F613B0009D8A3 /* TrackingHeading.png */,
- 6357071E163F613B0009D8A3 /* TrackingHeading@2x.png */,
- 6357071F163F613B0009D8A3 /* TrackingLocation.png */,
- 63570720163F613B0009D8A3 /* TrackingLocation@2x.png */,
);
name = Resources;
path = lib/mapbox/MapView/Map;
@@ -1324,19 +1323,6 @@
name = Products;
sourceTree = "<group>";
};
- 635E0297151BB95400B6BBCE /* callout */ = {
- isa = PBXGroup;
- children = (
- 635E028B151BB94F00B6BBCE /* center.png */,
- 635E028C151BB94F00B6BBCE /* center@2x.png */,
- 635E028D151BB94F00B6BBCE /* left.png */,
- 635E028E151BB94F00B6BBCE /* left@2x.png */,
- 635E028F151BB94F00B6BBCE /* right.png */,
- 635E0290151BB94F00B6BBCE /* right@2x.png */,
- );
- name = callout;
- sourceTree = "<group>";
- };
636D781A152E58FD005E31A3 /* MBProgressHUD */ = {
isa = PBXGroup;
children = (
@@ -1358,17 +1344,23 @@
63E525C61534C45100D2DA35 /* App Icon */,
6325B4431534B28A00C8691F /* location.png */,
6325B4441534B28B00C8691F /* location@2x.png */,
- 635E0297151BB95400B6BBCE /* callout */,
- 6310F4C51537A43C00C65FD8 /* newNodeMarker.png */,
+ 63570715163F613B0009D8A3 /* HeadingAngleSmall.png */,
+ 63570716163F613B0009D8A3 /* HeadingAngleSmall@2x.png */,
+ 63570717163F613B0009D8A3 /* LoadingTile.png */,
+ 63570718163F613B0009D8A3 /* LoadingTileZoom.png */,
+ 63570719163F613B0009D8A3 /* TrackingDot.png */,
+ 6357071A163F613B0009D8A3 /* TrackingDot@2x.png */,
+ 6357071B163F613B0009D8A3 /* TrackingDotHalo.png */,
+ 6357071C163F613B0009D8A3 /* TrackingDotHalo@2x.png */,
+ 6357071D163F613B0009D8A3 /* TrackingHeading.png */,
+ 6357071E163F613B0009D8A3 /* TrackingHeading@2x.png */,
+ 6357071F163F613B0009D8A3 /* TrackingLocation.png */,
+ 63570720163F613B0009D8A3 /* TrackingLocation@2x.png */,
634205BF1645EA62009C6BA4 /* plus@2x.png */,
634205BD1645EA5C009C6BA4 /* plus.png */,
- 6310F4C61537A43C00C65FD8 /* newNodeMarker@2x.png */,
63F9CCA414F32B2E00308DE1 /* iphone_delete_button.png */,
63A2DB4315226CF6000C095D /* gear.png */,
63A2DB4415226CF6000C095D /* gear@2x.png */,
- 63A2DB3B152257FA000C095D /* userLocation.png */,
- 63A2DB3C152257FA000C095D /* userLocation@2x.png */,
- 63E279EF14E2073C009D02BD /* Blue_Marker.png */,
637A89FD14E1C340003F656F /* SPOI.bundle */,
63E525EA1536560200D2DA35 /* Tags.plist */,
6314515515BE092B00501CF3 /* Optional.plist */,
@@ -1612,20 +1604,11 @@
files = (
6330AB7914DB519A00448852 /* InfoPlist.strings in Resources */,
637A89FE14E1C340003F656F /* SPOI.bundle in Resources */,
- 63E279F014E2073C009D02BD /* Blue_Marker.png in Resources */,
63CB49DE14E9DE7B008C4551 /* OPECategoryViewController.xib in Resources */,
63CB49E314E9E3BF008C4551 /* OPETypeViewController.xib in Resources */,
6383949814EC7DAC00C74A57 /* GTMOAuthViewTouch.xib in Resources */,
63F9CCA514F32B2E00308DE1 /* iphone_delete_button.png in Resources */,
- 635E0291151BB94F00B6BBCE /* center.png in Resources */,
- 635E0292151BB94F00B6BBCE /* center@2x.png in Resources */,
- 635E0293151BB94F00B6BBCE /* left.png in Resources */,
- 635E0294151BB94F00B6BBCE /* left@2x.png in Resources */,
- 635E0295151BB94F00B6BBCE /* right.png in Resources */,
- 635E0296151BB94F00B6BBCE /* right@2x.png in Resources */,
632573B11520FFB200478B78 /* tileSource.plist in Resources */,
- 63A2DB3D152257FA000C095D /* userLocation.png in Resources */,
- 63A2DB3E152257FA000C095D /* userLocation@2x.png in Resources */,
63A2DB4515226CF6000C095D /* gear.png in Resources */,
63A2DB4615226CF6000C095D /* gear@2x.png in Resources */,
6325B4451534B28B00C8691F /* location.png in Resources */,
@@ -1634,8 +1617,6 @@
63E525E415362B7100D2DA35 /* icon.png in Resources */,
63E525E515362B7100D2DA35 /* icon@2x.png in Resources */,
63E525EB1536560300D2DA35 /* Tags.plist in Resources */,
- 6310F4C71537A43C00C65FD8 /* newNodeMarker.png in Resources */,
- 6310F4C81537A43C00C65FD8 /* newNodeMarker@2x.png in Resources */,
6310F59B1537A46D00C65FD8 /* airplane.png in Resources */,
6310F59C1537A46D00C65FD8 /* alcohol.png in Resources */,
6310F59D1537A46D00C65FD8 /* art.png in Resources */,
@@ -1955,6 +1936,7 @@
63FCA4421643127D00A28470 /* OPEBingTileSource.m in Sources */,
63FCA4511643363800A28470 /* OPEUtility.m in Sources */,
63C2035A164B153200C0F1EF /* OPEPoint.m in Sources */,
+ 633CD877164B28DA00678D58 /* OPEFileUpdater.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2033,6 +2015,11 @@
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)\"",
+ "\"$(SRCROOT)/lib\"",
+ );
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "OSM POI Editor/OSM POI Editor-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -2068,6 +2055,11 @@
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)\"",
+ "\"$(SRCROOT)/lib\"",
+ );
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "OSM POI Editor/OSM POI Editor-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = CRITTERCISM_ENABLED;
View
BIN ...xcodeproj/project.xcworkspace/xcuserdata/David.xcuserdatad/UserInterfaceState.xcuserstate
Binary file not shown.
View
80 OSM POI Editor.xcodeproj/xcuserdata/David.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
@@ -461,11 +461,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OSM POI Editor/OPEViewController.m"
- timestampString = "373942607.708528"
+ timestampString = "374023773.186426"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "484"
- endingLineNumber = "484"
+ startingLineNumber = "463"
+ endingLineNumber = "463"
landmarkName = "@implementation OPEViewController"
landmarkType = "3">
</FileBreakpoint>
@@ -539,11 +539,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OPETagInterpreter.m"
- timestampString = "371691561.845876"
+ timestampString = "374028518.341594"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "159"
- endingLineNumber = "159"
+ startingLineNumber = "161"
+ endingLineNumber = "161"
landmarkName = "@implementation OPETagInterpreter"
landmarkType = "3">
</FileBreakpoint>
@@ -552,11 +552,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OPETagInterpreter.m"
- timestampString = "371691561.845876"
+ timestampString = "374028518.341594"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "144"
- endingLineNumber = "144"
+ startingLineNumber = "146"
+ endingLineNumber = "146"
landmarkName = "-readPlist"
landmarkType = "5">
</FileBreakpoint>
@@ -565,11 +565,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OPETagInterpreter.m"
- timestampString = "371691561.845876"
+ timestampString = "374028518.341594"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "138"
- endingLineNumber = "138"
+ startingLineNumber = "140"
+ endingLineNumber = "140"
landmarkName = "-readPlist"
landmarkType = "5">
</FileBreakpoint>
@@ -877,11 +877,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OPETagInterpreter.m"
- timestampString = "371691561.845876"
+ timestampString = "374028518.341594"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "56"
- endingLineNumber = "56"
+ startingLineNumber = "57"
+ endingLineNumber = "57"
landmarkName = "-type:"
landmarkType = "5">
</FileBreakpoint>
@@ -890,11 +890,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OPETagInterpreter.m"
- timestampString = "371691561.845876"
+ timestampString = "374028518.341594"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "75"
- endingLineNumber = "75"
+ startingLineNumber = "76"
+ endingLineNumber = "76"
landmarkName = "-type:"
landmarkType = "5">
</FileBreakpoint>
@@ -903,11 +903,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OPETagInterpreter.m"
- timestampString = "371691561.845876"
+ timestampString = "374028518.341594"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "80"
- endingLineNumber = "80"
+ startingLineNumber = "81"
+ endingLineNumber = "81"
landmarkName = "-type:"
landmarkType = "5">
</FileBreakpoint>
@@ -916,11 +916,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OPETagInterpreter.m"
- timestampString = "371691561.845876"
+ timestampString = "374028518.341594"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "85"
- endingLineNumber = "85"
+ startingLineNumber = "86"
+ endingLineNumber = "86"
landmarkName = "-type:"
landmarkType = "5">
</FileBreakpoint>
@@ -981,11 +981,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "OSM POI Editor/OPEViewController.m"
- timestampString = "373942607.708528"
+ timestampString = "374023773.186426"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "496"
- endingLineNumber = "496"
+ startingLineNumber = "475"
+ endingLineNumber = "475"
landmarkName = "-addMarkers:"
landmarkType = "5">
</FileBreakpoint>
@@ -1041,6 +1041,32 @@
landmarkName = "-viewDidLoad"
landmarkType = "5">
</FileBreakpoint>
+ <FileBreakpoint
+ shouldBeEnabled = "No"
+ ignoreCount = "0"
+ continueAfterRunningActions = "No"
+ filePath = "OSM POI Editor/OPEFileUpdater.m"
+ timestampString = "374025744.614314"
+ startingColumnNumber = "9223372036854775807"
+ endingColumnNumber = "9223372036854775807"
+ startingLineNumber = "25"
+ endingLineNumber = "25"
+ landmarkName = "-downloadFiles"
+ landmarkType = "5">
+ </FileBreakpoint>
+ <FileBreakpoint
+ shouldBeEnabled = "Yes"
+ ignoreCount = "0"
+ continueAfterRunningActions = "No"
+ filePath = "OSM POI Editor/OPEUtility.m"
+ timestampString = "374028239.182057"
+ startingColumnNumber = "9223372036854775807"
+ endingColumnNumber = "9223372036854775807"
+ startingLineNumber = "53"
+ endingLineNumber = "53"
+ landmarkName = "+fileFromBundleOrDocumentsForResource:ofType:"
+ landmarkType = "5">
+ </FileBreakpoint>
</FileBreakpoints>
<ExceptionBreakpoints>
<ExceptionBreakpoint
View
12 OSM POI Editor/OPEAppDelegate.m
@@ -22,11 +22,14 @@
#ifdef CRITTERCISM_ENABLED
#import "Crittercism.h"
-#import "OPEAPIConstants.h"
#endif
+#import "OPEAPIConstants.h"
+
#import "OPEAppDelegate.h"
#import "OPEViewController.h"
+#import "OPEFileUpdater.h"
+#import <Parse/Parse.h>
@implementation OPEAppDelegate
@@ -43,6 +46,13 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
andSecret:CRITTERCISM_SECRET];
#endif
+ [Parse setApplicationId:PARSE_APPLICATION_ID clientKey:PARSE_CLIENT_KEY];
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
+ (unsigned long)NULL), ^(void) {
+ [[[OPEFileUpdater alloc] init] downloadFiles];
+ [[OPETagInterpreter sharedInstance] readPlist];
+ });
+
UIViewController *rootView = [[OPEViewController alloc] init];
//rootView.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
View
17 OSM POI Editor/OPEFileUpdater.h
@@ -0,0 +1,17 @@
+//
+// OPEFileUpdater.h
+// OSM POI Editor
+//
+// Created by David on 11/7/12.
+//
+//
+
+#import <Foundation/Foundation.h>
+#import <Parse/Parse.h>
+
+@interface OPEFileUpdater : NSObject
+
+
+-(BOOL)downloadFiles;
+
+@end
View
51 OSM POI Editor/OPEFileUpdater.m
@@ -0,0 +1,51 @@
+//
+// OPEFileUpdater.m
+// OSM POI Editor
+//
+// Created by David on 11/7/12.
+//
+//
+
+#import "OPEFileUpdater.h"
+
+@implementation OPEFileUpdater
+
+
+-(NSArray *)availableFiles;
+{
+ PFQuery *query = [PFQuery queryWithClassName:@"files"];
+ return [query findObjects];
+}
+
+
+-(BOOL)downloadFiles
+{
+ NSArray * files = [self availableFiles];
+
+ for(PFObject *item in files)
+ {
+ PFFile * file = [item objectForKey:@"file"];
+ NSString * fileName = [item objectForKey:@"name"];
+ NSString * fileType = [item objectForKey:@"type"];
+
+ NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *documentsDirectory = [paths objectAtIndex:0];
+ NSString * filePath = [documentsDirectory stringByAppendingPathComponent:[fileName stringByAppendingPathExtension:fileType]];
+
+
+ NSData * fileData = [file getData];
+ [fileData writeToFile:filePath atomically:YES];
+ }
+
+
+ return YES;
+}
+
+
+
+
+
+
+
+
+@end
View
1 OSM POI Editor/OPEUtility.h
@@ -14,5 +14,6 @@
+(UIImage *)imageNamed:(NSString *)name withColor:(UIColor *)color;
++(NSString *)fileFromBundleOrDocumentsForResource:(NSString *)resource ofType:(NSString *)type;
@end
View
11 OSM POI Editor/OPEUtility.m
@@ -48,4 +48,15 @@ +(UIImage *)imageNamed:(NSString *)name withColor:(UIColor *)color
}
++(NSString *)fileFromBundleOrDocumentsForResource:(NSString *)resource ofType:(NSString *)type
+{
+ NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
+ NSString* filePath = [documentsPath stringByAppendingPathComponent:[resource stringByAppendingPathExtension:type]];
+
+ if([[NSFileManager defaultManager] fileExistsAtPath:filePath])
+ return filePath;
+ else
+ return [[NSBundle mainBundle] pathForResource:resource ofType:type];
+}
+
@end
View
21 OSM POI Editor/OPEViewController.m
@@ -394,27 +394,6 @@ - (BOOL) mapView:(RMMapView *)map shouldDragMarker:(RMMarker *)marker withEvent:
return NO;
}
-- (void) mapView:(RMMapView *)map didDragMarker:(RMMarker *)marker withEvent:(UIEvent *)event
-{
- NSSet* touches = [event allTouches];
-
- if([touches count] == 1)
- {
- UITouch* touch = [touches anyObject];
- if(touch.phase == UITouchPhaseMoved)
- {
- CGPoint position = [touch locationInView: mapView ];
- //[mapView.markerManager moveMarker:marker AtXY: position];
- CGSize delta = CGSizeMake((position.x-(marker.position.x)),
- (position.y-(marker.position.y)));
- //[marker moveBy: delta];
- //[marker setProjectedLocation:[[mapView.contents projection] latLongToPoint:[mapView pixelToLatLong:marker.position]]];
- //[marker setProjectedLocation: [[mapView projection] latLongToPoint:[mapView pixelToLatLong:marker.position]]];
- //[mapView.markerManager moveMarker:marker AtXY:position];
- }
- }
-}
-
-(void) singleTapOnMap:(RMMapView *)map At:(CGPoint)point
{
if (openMarker) {
View
BIN center.png
Deleted file not rendered
View
BIN center@2x.png
Deleted file not rendered
View
BIN left.png
Deleted file not rendered
View
BIN left@2x.png
Deleted file not rendered
View
1 lib/Parse.framework/Headers
View
1 lib/Parse.framework/Parse
View
1 lib/Parse.framework/Resources
View
204 lib/Parse.framework/Versions/1.1.14/Headers/PFACL.h
@@ -0,0 +1,204 @@
+// PFACL.h
+// Copyright 2011 Parse, Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+
+@class PFUser;
+@class PFRole;
+
+/*!
+ A PFACL is used to control which users can access or modify a particular
+ object. Each PFObject can have its own PFACL. You can grant
+ read and write permissions separately to specific users, to groups of users
+ that belong to roles, or you can grant permissions to "the public" so that,
+ for example, any user could read a particular object but only a particular
+ set of users could write to that object.
+ */
+@interface PFACL : NSObject <NSCopying> {
+@private
+ NSMutableDictionary *permissionsById;
+ BOOL shared;
+ PFUser *unresolvedUser;
+ void (^userResolutionListener)(id result, NSError *error);
+}
+
+/** @name Creating an ACL */
+
+/*!
+ Creates an ACL with no permissions granted.
+ */
++ (PFACL *)ACL;
+
+/*!
+ Creates an ACL where only the provided user has access.
+ */
++ (PFACL *)ACLWithUser:(PFUser *)user;
+
+/** @name Controlling Public Access */
+
+/*!
+ Set whether the public is allowed to read this object.
+ */
+- (void)setPublicReadAccess:(BOOL)allowed;
+
+/*!
+ Gets whether the public is allowed to read this object.
+ */
+- (BOOL)getPublicReadAccess;
+
+/*!
+ Set whether the public is allowed to write this object.
+ */
+- (void)setPublicWriteAccess:(BOOL)allowed;
+
+/*!
+ Gets whether the public is allowed to write this object.
+ */
+- (BOOL)getPublicWriteAccess;
+
+/** @name Controlling Access Per-User */
+
+/*!
+ Set whether the given user id is allowed to read this object.
+ */
+- (void)setReadAccess:(BOOL)allowed forUserId:(NSString *)userId;
+
+/*!
+ Gets whether the given user id is *explicitly* allowed to read this object.
+ Even if this returns NO, the user may still be able to access it if getPublicReadAccess returns YES
+ or if the user belongs to a role that has access.
+ */
+- (BOOL)getReadAccessForUserId:(NSString *)userId;
+
+/*!
+ Set whether the given user id is allowed to write this object.
+ */
+- (void)setWriteAccess:(BOOL)allowed forUserId:(NSString *)userId;
+
+/*!
+ Gets whether the given user id is *explicitly* allowed to write this object.
+ Even if this returns NO, the user may still be able to write it if getPublicWriteAccess returns YES
+ or if the user belongs to a role that has access.
+ */
+- (BOOL)getWriteAccessForUserId:(NSString *)userId;
+
+/*!
+ Set whether the given user is allowed to read this object.
+ */
+- (void)setReadAccess:(BOOL)allowed forUser:(PFUser *)user;
+
+/*!
+ Gets whether the given user is *explicitly* allowed to read this object.
+ Even if this returns NO, the user may still be able to access it if getPublicReadAccess returns YES
+ or if the user belongs to a role that has access.
+ */
+- (BOOL)getReadAccessForUser:(PFUser *)user;
+
+/*!
+ Set whether the given user is allowed to write this object.
+ */
+- (void)setWriteAccess:(BOOL)allowed forUser:(PFUser *)user;
+
+/*!
+ Gets whether the given user is *explicitly* allowed to write this object.
+ Even if this returns NO, the user may still be able to write it if getPublicWriteAccess returns YES
+ or if the user belongs to a role that has access.
+ */
+- (BOOL)getWriteAccessForUser:(PFUser *)user;
+
+/** @name Controlling Access Per-Role */
+
+/*!
+ Get whether users belonging to the role with the given name are allowed
+ to read this object. Even if this returns false, the role may still
+ be able to read it if a parent role has read access.
+
+ @param name The name of the role.
+ @return YES if the role has read access. NO otherwise.
+ */
+- (BOOL)getReadAccessForRoleWithName:(NSString *)name;
+
+/*!
+ Set whether users belonging to the role with the given name are allowed
+ to read this object.
+
+ @param name The name of the role.
+ @param allowed Whether the given role can read this object.
+ */
+- (void)setReadAccess:(BOOL)allowed forRoleWithName:(NSString *)name;
+
+/*!
+ Get whether users belonging to the role with the given name are allowed
+ to write this object. Even if this returns false, the role may still
+ be able to write it if a parent role has write access.
+
+ @param name The name of the role.
+ @return YES if the role has read access. NO otherwise.
+ */
+- (BOOL)getWriteAccessForRoleWithName:(NSString *)name;
+
+/*!
+ Set whether users belonging to the role with the given name are allowed
+ to write this object.
+
+ @param name The name of the role.
+ @param allowed Whether the given role can write this object.
+ */
+- (void)setWriteAccess:(BOOL)allowed forRoleWithName:(NSString *)name;
+
+/*!
+ Get whether users belonging to the given role are allowed to read this
+ object. Even if this returns NO, the role may still be able to
+ read it if a parent role has read access. The role must already be saved on
+ the server and its data must have been fetched in order to use this method.
+
+ @param roleName The name of the role.
+ @return YES if the role has read access. NO otherwise.
+ */
+- (BOOL)getReadAccessForRole:(PFRole *)role;
+
+/*!
+ Set whether users belonging to the given role are allowed to read this
+ object. The role must already be saved on the server and its data must have
+ been fetched in order to use this method.
+
+ @param role The role to assign access.
+ @param allowed Whether the given role can read this object.
+ */
+- (void)setReadAccess:(BOOL)allowed forRole:(PFRole *)role;
+
+/*!
+ Get whether users belonging to the given role are allowed to write this
+ object. Even if this returns NO, the role may still be able to
+ write it if a parent role has write access. The role must already be saved on
+ the server and its data must have been fetched in order to use this method.
+
+ @param roleName The name of the role.
+ @return YES if the role has write access. NO otherwise.
+ */
+- (BOOL)getWriteAccessForRole:(PFRole *)role;
+
+/*!
+ Set whether users belonging to the given role are allowed to write this
+ object. The role must already be saved on the server and its data must have
+ been fetched in order to use this method.
+
+ @param role The role to assign access.
+ @param allowed Whether the given role can write this object.
+ */
+- (void)setWriteAccess:(BOOL)allowed forRole:(PFRole *)role;
+
+/** @name Setting Access Defaults */
+
+/*!
+ Sets a default ACL that will be applied to all PFObjects when they are created.
+ @param acl The ACL to use as a template for all PFObjects created after setDefaultACL has been called.
+ This value will be copied and used as a template for the creation of new ACLs, so changes to the
+ instance after setDefaultACL has been called will not be reflected in new PFObjects.
+ @param currentUserAccess If true, the PFACL that is applied to newly-created PFObjects will
+ provide read and write access to the currentUser at the time of creation. If false,
+ the provided ACL will be used without modification. If acl is nil, this value is ignored.
+ */
++ (void)setDefaultACL:(PFACL *)acl withAccessForCurrentUser:(BOOL)currentUserAccess;
+
+@end
View
57 lib/Parse.framework/Versions/1.1.14/Headers/PFAnonymousUtils.h
@@ -0,0 +1,57 @@
+//
+// PFAnonymousUtils.h
+// Parse
+//
+// Created by David Poll on 3/20/12.
+// Copyright (c) 2012 Parse, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PFUser.h"
+#import "PFConstants.h"
+
+/*!
+ Provides utility functions for working with Anonymously logged-in users. Anonymous users have some unique characteristics:
+ <ul>
+ <li>Anonymous users don't need a user name or password.</li>
+ <li>Once logged out, an anonymous user cannot be recovered.</li>
+ <li>When the current user is anonymous, the following methods can be used to switch to a different user or convert the
+ anonymous user into a regular one:
+ <ul>
+ <li>signUp converts an anonymous user to a standard user with the given username and password.
+ Data associated with the anonymous user is retained.</li>
+ <li>logIn switches users without converting the anonymous user. Data associated with the anonymous user will be lost.</li>
+ <li>Service logIn (e.g. Facebook, Twitter) will attempt to convert the anonymous user into a standard user by linking it to the service.
+ If a user already exists that is linked to the service, it will instead switch to the existing user.</li>
+ <li>Service linking (e.g. Facebook, Twitter) will convert the anonymous user into a standard user by linking it to the service.</li>
+ </ul>
+ </ul>
+ */
+@interface PFAnonymousUtils : NSObject
+
+/*! @name Creating an Anonymous User */
+
+/*!
+ Creates an anonymous user.
+ @param block The block to execute when anonymous user creation is complete. The block should have the following argument signature:
+ (PFUser *user, NSError *error)
+ */
++ (void)logInWithBlock:(PFUserResultBlock)block;
+
+/*!
+ Creates an anonymous user. The selector for the callback should look like: (PFUser *)user error:(NSError *)error
+ @param target Target object for the selector.
+ @param selector The selector that will be called when the asynchronous request is complete.
+ */
++ (void)logInWithTarget:(id)target selector:(SEL)selector;
+
+/*! @name Determining Whether a PFUser is Anonymous */
+
+/*!
+ Whether the user is logged in anonymously.
+ @param user User to check for anonymity. The user must be logged in on this device.
+ @result True if the user is anonymous. False if the user is not the current user or is not anonymous.
+ */
++ (BOOL)isLinkedWithUser:(PFUser *)user;
+
+@end
View
47 lib/Parse.framework/Versions/1.1.14/Headers/PFCloud.h
@@ -0,0 +1,47 @@
+//
+// PFCloud.h
+// Parse
+//
+// Created by Shyam Jayaraman on 8/20/12.
+// Copyright (c) 2012 Parse Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PFConstants.h"
+
+@interface PFCloud : NSObject
+
+/*!
+ Calls the given cloud function with the parameters passed in.
+ @param function The function name to call.
+ @param parameters The parameters to send to the function.
+ @result The response from the cloud function.
+ */
++ (id)callFunction:(NSString *)function withParameters:(NSDictionary *)parameters;
+
+/*!
+ Calls the given cloud function with the parameters passed in and sets the error if there is one.
+ @param function The function name to call.
+ @param parameters The parameters to send to the function.
+ @param error Pointer to an NSError that will be set if necessary.
+ @result The response from the cloud function. This result could be a NSDictionary, an NSArray, NSInteger or NSString.
+ */
++ (id)callFunction:(NSString *)function withParameters:(NSDictionary *)parameters error:(NSError **)error;
+
+/*!
+ Calls the given cloud function with the parameters provided asynchronously and calls the given block when it is done.
+ @param function The function name to call.
+ @param parameters The parameters to send to the function.
+ @param block The block to execute. The block should have the following argument signature:(id result, NSError *error).
+ */
++ (void)callFunctionInBackground:(NSString *)function withParameters:(NSDictionary *)parameters block:(PFIdResultBlock)block;
+
+/*!
+ Calls the given cloud function with the parameters provided asynchronously and runs the callback when it is done.
+ @param function The function name to call.
+ @param parameters The parameters to send to the function.
+ @param target The object to call the selector on.
+ @param selector The selector to call. It should have the following signature: (void)callbackWithResult:(id) result error:(NSError *)error. result will be nil if error is set and vice versa.
+ */
++ (void)callFunctionInBackground:(NSString *)function withParameters:(NSDictionary *)parameters target:(id)target selector:(SEL)selector;
+@end
View
145 lib/Parse.framework/Versions/1.1.14/Headers/PFConstants.h
@@ -0,0 +1,145 @@
+// PFConstants.h
+// Copyright 2011 Parse, Inc. All rights reserved.
+
+#import <Foundation/Foundation.h>
+@class PFObject;
+@class PFUser;
+
+// Version
+#define PARSE_VERSION @"1.1.14"
+
+extern NSInteger const PARSE_API_VERSION;
+
+// Server
+extern NSString *const kPFParseServer;
+
+// Cache policies
+typedef enum {
+ kPFCachePolicyIgnoreCache = 0,
+ kPFCachePolicyCacheOnly,
+ kPFCachePolicyNetworkOnly,
+ kPFCachePolicyCacheElseNetwork,
+ kPFCachePolicyNetworkElseCache,
+ kPFCachePolicyCacheThenNetwork
+} PFCachePolicy;
+
+// Errors
+
+/*! @abstract 1: Internal server error. No information available. */
+extern NSInteger const kPFErrorInternalServer;
+
+/*! @abstract 100: The connection to the Parse servers failed. */
+extern NSInteger const kPFErrorConnectionFailed;
+/*! @abstract 101: Object doesn't exist, or has an incorrect password. */
+extern NSInteger const kPFErrorObjectNotFound;
+/*! @abstract 102: You tried to find values matching a datatype that doesn't support exact database matching, like an array or a dictionary. */
+extern NSInteger const kPFErrorInvalidQuery;
+/*! @abstract 103: Missing or invalid classname. Classnames are case-sensitive. They must start with a letter, and a-zA-Z0-9_ are the only valid characters. */
+extern NSInteger const kPFErrorInvalidClassName;
+/*! @abstract 104: Missing object id. */
+extern NSInteger const kPFErrorMissingObjectId;
+/*! @abstract 105: Invalid key name. Keys are case-sensitive. They must start with a letter, and a-zA-Z0-9_ are the only valid characters. */
+extern NSInteger const kPFErrorInvalidKeyName;
+/*! @abstract 106: Malformed pointer. Pointers must be arrays of a classname and an object id. */
+extern NSInteger const kPFErrorInvalidPointer;
+/*! @abstract 107: Malformed json object. A json dictionary is expected. */
+extern NSInteger const kPFErrorInvalidJSON;
+/*! @abstract 108: Tried to access a feature only available internally. */
+extern NSInteger const kPFErrorCommandUnavailable;
+/*! @abstract 111: Field set to incorrect type. */
+extern NSInteger const kPFErrorIncorrectType;
+/*! @abstract 112: Invalid channel name. A channel name is either an empty string (the broadcast channel) or contains only a-zA-Z0-9_ characters and starts with a letter. */
+extern NSInteger const kPFErrorInvalidChannelName;
+/*! @abstract 114: Invalid device token. */
+extern NSInteger const kPFErrorInvalidDeviceToken;
+/*! @abstract 115: Push is misconfigured. See details to find out how. */
+extern NSInteger const kPFErrorPushMisconfigured;
+/*! @abstract 116: The object is too large. */
+extern NSInteger const kPFErrorObjectTooLarge;
+/*! @abstract 119: That operation isn't allowed for clients. */
+extern NSInteger const kPFErrorOperationForbidden;
+/*! @abstract 120: The results were not found in the cache. */
+extern NSInteger const kPFErrorCacheMiss;
+/*! @abstract 121: Keys in NSDictionary values may not include '$' or '.'. */
+extern NSInteger const kPFErrorInvalidNestedKey;
+/*! @abstract 122: Invalid file name. A file name contains only a-zA-Z0-9_. characters and is between 1 and 36 characters. */
+extern NSInteger const kPFErrorInvalidFileName;
+/*! @abstract 123: Invalid ACL. An ACL with an invalid format was saved. This should not happen if you use PFACL. */
+extern NSInteger const kPFErrorInvalidACL;
+/*! @abstract 124: The request timed out on the server. Typically this indicates the request is too expensive. */
+extern NSInteger const kPFErrorTimeout;
+/*! @abstract 125: The email address was invalid. */
+extern NSInteger const kPFErrorInvalidEmailAddress;
+/*! @abstract 137: A unique field was given a value that is already taken. */
+extern NSInteger const kPFErrorDuplicateValue;
+/*! @abstract 139: Role's name is invalid. */
+extern NSInteger const kPFErrorInvalidRoleName;
+/*! @abstract 140: Exceeded an application quota. Upgrade to resolve. */
+extern NSInteger const kPFErrorExceededQuota;
+/*! @abstract 141: Cloud Code script had an error. */
+extern NSInteger const kPFScriptError;
+/*! @abstract 142: Cloud Code validation failed. */
+extern NSInteger const kPFValidationError;
+/*! @abstract 143: Product purchase receipt is missing */
+extern NSInteger const kPFErrorReceiptMissing;
+/*! @abstract 144: Product purchase receipt is invalid */
+extern NSInteger const kPFErrorInvalidPurchaseReceipt;
+/*! @abstract 145: Payment is disabled on this device */
+extern NSInteger const kPFErrorPaymentDisabled;
+/*! @abstract 146: The product identifier is invalid */
+extern NSInteger const kPFErrorInvalidProductIdentifier;
+/*! @abstract 147: The product is not found in the App Store */
+extern NSInteger const kPFErrorProductNotFoundInAppStore;
+/*! @abstract 148: The Apple server response is not valid */
+extern NSInteger const kPFErrorInvalidServerResponse;
+/*! @abstract 149: Product fails to download due to file system error */
+extern NSInteger const kPFErrorProductDownloadFileSystemFailure;
+/*! @abstract 150: Fail to convert data to image. */
+extern NSInteger const kPFErrorInvalidImageData;
+/*! @abstract 151: Unsaved file. */
+extern NSInteger const kPFErrorUnsavedFile;
+/*! @abstract 153: Fail to delete file. */
+extern NSInteger const kPFErrorFileDeleteFailure;
+
+/*! @abstract 200: Username is missing or empty */
+extern NSInteger const kPFErrorUsernameMissing;
+/*! @abstract 201: Password is missing or empty */
+extern NSInteger const kPFErrorUserPasswordMissing;
+/*! @abstract 202: Username has already been taken */
+extern NSInteger const kPFErrorUsernameTaken;
+/*! @abstract 203: Email has already been taken */
+extern NSInteger const kPFErrorUserEmailTaken;
+/*! @abstract 204: The email is missing, and must be specified */
+extern NSInteger const kPFErrorUserEmailMissing;
+/*! @abstract 205: A user with the specified email was not found */
+extern NSInteger const kPFErrorUserWithEmailNotFound;
+/*! @abstract 206: The user cannot be altered by a client without the session. */
+extern NSInteger const kPFErrorUserCannotBeAlteredWithoutSession;
+/*! @abstract 207: Users can only be created through sign up */
+extern NSInteger const kPFErrorUserCanOnlyBeCreatedThroughSignUp;
+/*! @abstract 208: An existing Facebook account already linked to another user. */
+extern NSInteger const kPFErrorFacebookAccountAlreadyLinked;
+/*! @abstract 208: An existing account already linked to another user. */
+extern NSInteger const kPFErrorAccountAlreadyLinked;
+/*! @abstract 209: User ID mismatch */
+extern NSInteger const kPFErrorUserIdMismatch;
+/*! @abstract 250: Facebook id missing from request */
+extern NSInteger const kPFErrorFacebookIdMissing;
+/*! @abstract 250: Linked id missing from request */
+extern NSInteger const kPFErrorLinkedIdMissing;
+/*! @abstract 251: Invalid Facebook session */
+extern NSInteger const kPFErrorFacebookInvalidSession;
+/*! @abstract 251: Invalid linked session */
+extern NSInteger const kPFErrorInvalidLinkedSession;
+
+typedef void (^PFBooleanResultBlock)(BOOL succeeded, NSError *error);
+typedef void (^PFIntegerResultBlock)(int number, NSError *error);
+typedef void (^PFArrayResultBlock)(NSArray *objects, NSError *error);
+typedef void (^PFObjectResultBlock)(PFObject *object, NSError *error);
+typedef void (^PFSetResultBlock)(NSSet *channels, NSError *error);
+typedef void (^PFUserResultBlock)(PFUser *user, NSError *error);
+typedef void (^PFDataResultBlock)(NSData *data, NSError *error);
+typedef void (^PFDataStreamResultBlock)(NSInputStream *stream, NSError *error);
+typedef void (^PFStringResultBlock)(NSString *string, NSError *error);
+typedef void (^PFIdResultBlock)(id object, NSError *error);
+typedef void (^PFProgressBlock)(int percentDone);
View
306 lib/Parse.framework/Versions/1.1.14/Headers/PFFacebookUtils.h
@@ -0,0 +1,306 @@
+//
+// PFFacebookUtils.h
+// Copyright (c) 2012 Parse, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PF_Facebook.h"
+#import "PFUser.h"
+#import "PFConstants.h"
+
+/*!
+ Provides utility functions for working with Facebook in a Parse application.
+ */
+@interface PFFacebookUtils : NSObject
+
+/** @name Interacting With Facebook */
+
+/*!
+ Gets the Facebook session for the current user.
+ */
++ (PF_FBSession *)session;
+
+/*!
+ Initializes the Facebook singleton. You must invoke this in order to use the Facebook functionality in Parse.
+ @param appId The Facebook application id that you are using with your Parse application.
+ */
++ (void)initializeWithApplicationId:(NSString *)appId;
+
+/*!
+ Initializes the Facebook singleton. You must invoke this in order to use the Facebook functionality in Parse.
+ @param appId The Facebook application id that you are using with your Parse application.
+ @param urlSchemeSuffix The URL suffix for this application - used when multiple applications with the same
+ Facebook application ID may be on the same device.
+ */
++ (void)initializeWithApplicationId:(NSString *)appId urlSchemeSuffix:(NSString *)urlSchemeSuffix;
+
+/*!
+ Whether the user has their account linked to Facebook.
+ @param user User to check for a facebook link. The user must be logged in on this device.
+ @result True if the user has their account linked to Facebook.
+ */
++ (BOOL)isLinkedWithUser:(PFUser *)user;
+
+/** @name Logging In & Creating Facebook-Linked Users */
+
+/*!
+ Logs in a user using Facebook. This method delegates to the Facebook SDK to authenticate
+ the user, and then automatically logs in (or creates, in the case where it is a new user)
+ a PFUser.
+ @param permissions The permissions required for Facebook log in. This passed to the authorize method on
+ the Facebook instance.
+ @param block The block to execute. The block should have the following argument signature:
+ (PFUser *user, NSError *error)
+ */
++ (void)logInWithPermissions:(NSArray *)permissions block:(PFUserResultBlock)block;
+
+/*!
+ Logs in a user using Facebook. This method delegates to the Facebook SDK to authenticate
+ the user, and then automatically logs in (or creates, in the case where it is a new user)
+ a PFUser. The selector for the callback should look like: (PFUser *)user error:(NSError **)error
+ @param permissions The permissions required for Facebook log in. This passed to the authorize method on
+ the Facebook instance.
+ @param target Target object for the selector
+ @param selector The selector that will be called when the asynchronous request is complete.
+ */
++ (void)logInWithPermissions:(NSArray *)permissions target:(id)target selector:(SEL)selector;
+
+/*!
+ Logs in a user using Facebook. Allows you to handle user login to Facebook, then provide authentication
+ data to log in (or create, in the case where it is a new user) the PFUser.
+ @param facebookId The id of the Facebook user being linked
+ @param accessToken The access token for the user's session
+ @param expirationDate The expiration date for the access token
+ @param block The block to execute. The block should have the following argument signature:
+ (PFUser *user, NSError *error)
+ */
++ (void)logInWithFacebookId:(NSString *)facebookId
+ accessToken:(NSString *)accessToken
+ expirationDate:(NSDate *)expirationDate
+ block:(PFUserResultBlock)block;
+
+/*!
+ Logs in a user using Facebook. Allows you to handle user login to Facebook, then provide authentication
+ data to log in (or create, in the case where it is a new user) the PFUser.
+ The selector for the callback should look like: (PFUser *)user error:(NSError *)error
+ @param facebookId The id of the Facebook user being linked
+ @param accessToken The access token for the user's session
+ @param expirationDate The expiration date for the access token
+ @param target Target object for the selector
+ @param selector The selector that will be called when the asynchronous request is complete
+ */
++ (void)logInWithFacebookId:(NSString *)facebookId
+ accessToken:(NSString *)accessToken
+ expirationDate:(NSDate *)expirationDate
+ target:(id)target
+ selector:(SEL)selector;
+
+/** @name Linking Users with Facebook */
+
+/*!
+ Links Facebook to an existing PFUser. This method delegates to the Facebook SDK to authenticate
+ the user, and then automatically links the account to the PFUser.
+ @param user User to link to Facebook.
+ @param permissions The permissions required for Facebook log in. This passed to the authorize method on
+ the Facebook instance.
+ */
++ (void)linkUser:(PFUser *)user permissions:(NSArray *)permissions;
+
+/*!
+ Links Facebook to an existing PFUser. This method delegates to the Facebook SDK to authenticate
+ the user, and then automatically links the account to the PFUser.
+ @param user User to link to Facebook.
+ @param permissions The permissions required for Facebook log in. This passed to the authorize method on
+ the Facebook instance.
+ @param block The block to execute. The block should have the following argument signature:
+ (BOOL *success, NSError *error)
+ */
++ (void)linkUser:(PFUser *)user permissions:(NSArray *)permissions block:(PFBooleanResultBlock)block;
+
+/*!
+ Links Facebook to an existing PFUser. This method delegates to the Facebook SDK to authenticate
+ the user, and then automatically links the account to the PFUser.
+ The selector for the callback should look like: (NSNumber *)result error:(NSError *)error
+ @param user User to link to Facebook.
+ @param permissions The permissions required for Facebook log in. This passed to the authorize method on
+ the Facebook instance.
+ @param target Target object for the selector
+ @param selector The selector that will be called when the asynchronous request is complete.
+ */
++ (void)linkUser:(PFUser *)user permissions:(NSArray *)permissions target:(id)target selector:(SEL)selector;
+
+/*!
+ Links Facebook to an existing PFUser. Allows you to handle user login to Facebook, then provide authentication
+ data to link the account to the PFUser.
+ @param user User to link to Facebook.
+ @param facebookId The id of the Facebook user being linked
+ @param accessToken The access token for the user's session
+ @param expirationDate The expiration date for the access token
+ @param block The block to execute. The block should have the following argument signature:
+ (BOOL *success, NSError *error)
+ */
++ (void)linkUser:(PFUser *)user
+ facebookId:(NSString *)facebookId
+ accessToken:(NSString *)accessToken
+ expirationDate:(NSDate *)expirationDate
+ block:(PFBooleanResultBlock)block;
+
+/*!
+ Links Facebook to an existing PFUser. Allows you to handle user login to Facebook, then provide authentication
+ data to link the account to the PFUser.
+ The selector for the callback should look like: (NSNumber *)result error:(NSError *)error
+ @param user User to link to Facebook.
+ @param facebookId The id of the Facebook user being linked
+ @param accessToken The access token for the user's session
+ @param expirationDate The expiration date for the access token
+ @param target Target object for the selector
+ @param selector The selector that will be called when the asynchronous request is complete
+ */
++ (void)linkUser:(PFUser *)user
+ facebookId:(NSString *)facebookId
+ accessToken:(NSString *)accessToken
+ expirationDate:(NSDate *)expirationDate
+ target:(id)target
+ selector:(SEL)selector;
+
+/** @name Unlinking Users from Facebook */
+
+/*!
+ Unlinks the PFUser from a Facebook account.
+ @param user User to unlink from Facebook.
+ @result Returns true if the unlink was successful.
+ */
++ (BOOL)unlinkUser:(PFUser *)user;
+
+/*!
+ Unlinks the PFUser from a Facebook account.
+ @param user User to unlink from Facebook.
+ @param error Error object to set on error.
+ @result Returns true if the unlink was successful.
+ */
++ (BOOL)unlinkUser:(PFUser *)user error:(NSError **)error;
+
+/*!
+ Makes an asynchronous request to unlink a user from a Facebook account.
+ @param user User to unlink from Facebook.
+ */
++ (void)unlinkUserInBackground:(PFUser *)user;
+
+/*!
+ Makes an asynchronous request to unlink a user from a Facebook account.
+ @param user User to unlink from Facebook.
+ @param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
+ */
++ (void)unlinkUserInBackground:(PFUser *)user block:(PFBooleanResultBlock)block;
+
+/*!
+ Makes an asynchronous request to unlink a user from a Facebook account.
+ @param user User to unlink from Facebook
+ @param target Target object for the selector
+ @param selector The selector that will be called when the asynchronous request is complete.
+ */
++ (void)unlinkUserInBackground:(PFUser *)user target:(id)target selector:(SEL)selector;
+
+/** @name Obtaining new permissions */
+
+/*!
+ Requests new Facebook publish permissions for the given user. This may prompt the user to
+ reauthorize the application. The user will be saved as part of this operation.
+ @param user User to request new permissions for. The user must be linked to Facebook.
+ @param permissions The new publishing permissions to request.
+ @param audience The default audience for publishing permissions to request.
+ @param block The block to execute. The block should have the following argument signature: (BOOL succeeded, NSError *error)
+ */
++ (void)reauthorizeUser:(PFUser *)user
+ withPublishPermissions:(NSArray *)permissions
+ audience:(PF_FBSessionDefaultAudience)audience
+ block:(PFBooleanResultBlock)block;
+
+/*!
+ Requests new Facebook publish permissions for the given user. This may prompt the user to
+ reauthorize the application. The user will be saved as part of this operation.
+ @param user User to request new permissions for. The user must be linked to Facebook.
+ @param permissions The new publishing permissions to request.
+ @param audience The default audience for publishing permissions to request.
+ @param target Target object for the selector
+ @param selector The selector that will be called when the asynchronous request is complete.
+ */
++ (void)reauthorizeUser:(PFUser *)user
+ withPublishPermissions:(NSArray *)permissions
+ audience:(PF_FBSessionDefaultAudience)audience
+ target:(id)target
+ selector:(SEL)selector;
+
+/** @name Delegating URL Actions */
+
+/*!
+ Handles URLs being opened by your AppDelegate. Invoke and return this from application:handleOpenURL:
+ or application:openURL:sourceApplication:annotation in your AppDelegate.
+ @param url URL being opened by your application.
+ @result True if Facebook will handle this URL.
+ */
++ (BOOL)handleOpenURL:(NSURL *)url;
+
+/** @name Interacting With Facebook (Deprecated) */
+
+/*!
+ Gets the instance of the Facebook object (from the Facebook SDK) that Parse uses.
+ @result The Facebook instance.
+ */
++ (PF_Facebook *)facebook __attribute__ ((deprecated));
+
+/*!
+ Gets the instance of the Facebook object (from the Facebook SDK) that Parse uses.
+ @param delegate Specify your own delegate for the Facebook object.
+ @result The Facebook instance
+ */
++ (PF_Facebook *)facebookWithDelegate:(NSObject<PF_FBSessionDelegate> *)delegate __attribute__ ((deprecated));
+
+/** @name Extending Facebook Access Tokens (Deprecated) */
+
+/*!
+ Whether the user has a Facebook access token that needs to be extended.
+ @param user User that is linked to Facebook and should be checked for access token extension.
+ @result True if the access token needs to be extended.
+ */
++ (BOOL)shouldExtendAccessTokenForUser:(PFUser *)user __attribute__ ((deprecated));
+
+/*!
+ Extends the access token for a user using Facebook, and saves the refreshed access token back to the PFUser.
+ The selector for the callback should look like: (NSNumber *)result error:(NSError *)error
+ @param user User whose access token should be extended
+ @param target Target object for the selector
+ @param selector The selector that will be called when the asynchronous request is complete.
+ */
++ (void)extendAccessTokenForUser:(PFUser *)user target:(id)target selector:(SEL)selector __attribute__ ((deprecated));
+
+/*!
+ Extends the access token for a user using Facebook, and saves the refreshed access token back to the PFUser.
+ @param user User whose access token should be extended
+ @param block The block to execute. The block should have the following argument signature:
+ (BOOL success, NSError *error)
+ */
++ (void)extendAccessTokenForUser:(PFUser *)user block:(PFBooleanResultBlock)block __attribute__ ((deprecated));
+
+/*!
+ If necessary, extends the access token for a user using Facebook, and saves the refreshed
+ access token back to the PFUser. We recommend invoking this from applicationDidBecomeActive: in your AppDelegate.
+ The selector for the callback should look like: (NSNumber *)result error:(NSError *)error
+ @param user User whose access token should be extended
+ @param target Target object for the selector
+ @param selector The selector that will be called when the asynchronous request is complete.
+ @result True if the access token needed to be extended.
+ */
++ (BOOL)extendAccessTokenIfNeededForUser:(PFUser *)user target:(id)target selector:(SEL)selector __attribute__ ((deprecated));
+
+/*!
+ If necessary, extends the access token for a user using Facebook, and saves the refreshed
+ access token back to the PFUser. We recommend invoking this from applicationDidBecomeActive: in your AppDelegate.
+ @param user User whose access token should be extended
+ @param block The block to execute. The block should have the following argument signature:
+ (BOOL success, NSError *error)
+ @result True if the access token needed to be extended.
+ */
++ (BOOL)extendAccessTokenIfNeededForUser:(PFUser *)user block:(PFBooleanResultBlock)block __attribute__ ((deprecated));
+
+@end
View
195 lib/Parse.framework/Versions/1.1.14/Headers/PFFile.h
@@ -0,0 +1,195 @@
+//
+// PFFile.h
+// Parse
+//
+// Created by Ilya Sukhar on 10/11/11.
+// Copyright 2011 Ping Labs, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PFConstants.h"
+
+/*!
+ A file of binary data stored on the Parse servers. This can be a image, video, or anything else
+ that an application needs to reference in a non-relational way.
+ */
+@interface PFFile : NSObject {
+ NSString *name;
+ NSString *url;
+}
+
+/** @name Creating a PFFile */
+
+/*!
+ Creates a file with given data. A name will be assigned to it by the server.
+ @param data The contents of the new PFFile.
+ @result A PFFile.
+ */
++ (id)fileWithData:(NSData *)data;
+
+/*!
+ Creates a file with given data and name.
+ @param name The name of the new PFFile.
+ @param data The contents of hte new PFFile.
+ @result A PFFile.
+ */
++ (id)fileWithName:(NSString *)name data:(NSData *)data;
+
+/*!
+ Creates a file with the contents of another file.
+ @param name The name of the new PFFile
+ @param path The path to the file that will be uploaded to Parse
+ */
++ (id)fileWithName:(NSString *)name
+ contentsAtPath:(NSString *)path;
+
+/*!
+The name of the file.
+ */
+@property (readonly) NSString *name;
+
+/*!
+ The url of the file.
+ */
+@property (readonly) NSString *url;
+
+/** @name Storing Data with Parse */
+
+/*!
+ Whether the file has been uploaded for the first time.
+ */
+@property (readonly) BOOL isDirty;
+
+/*!
+ Saves the file.
+ @result Returns whether the save succeeded.
+ */
+- (BOOL)save;
+
+/*!
+ Saves the file and sets an error if it occurs.
+ @param error Pointer to an NSError that will be set if necessary.
+ @result Returns whether the save succeeded.
+ */
+- (BOOL)save:(NSError **)error;
+
+/*!
+ Saves the file asynchronously.
+ @result Returns whether the save succeeded.
+ */
+- (void)saveInBackground;
+
+/*!
+ Saves the file asynchronously and executes the given block.
+ @param block The block should have the following argument signature: (BOOL succeeded, NSError *error)
+ */
+- (void)saveInBackgroundWithBlock:(PFBooleanResultBlock)block;
+
+/*!
+ Saves the file asynchronously and executes the given resultBlock. Executes the progressBlock periodically with the percent
+ progress. progressBlock will get called with 100 before resultBlock is called.
+ @param block The block should have the following argument signature: (BOOL succeeded, NSError *error)
+ @param progressBlock The block should have the following argument signature: (int percentDone)
+ */
+- (void)saveInBackgroundWithBlock:(PFBooleanResultBlock)block
+ progressBlock:(PFProgressBlock)progressBlock;
+
+/*!
+ Saves the file asynchronously and calls the given callback.
+ @param target The object to call selector on.
+ @param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSNumber *)result error:(NSError *)error. error will be nil on success and set if there was an error. [result boolValue] will tell you whether the call succeeded or not.
+ */
+- (void)saveInBackgroundWithTarget:(id)target selector:(SEL)selector;
+
+/** @name Getting Data from Parse */
+
+/*!
+ Whether the data is available in memory or needs to be downloaded.
+ */
+@property (readonly) BOOL isDataAvailable;
+
+/*!
+ Gets the data from cache if available or fetches its contents from the Parse
+ servers.
+ @result The data. Returns nil if there was an error in fetching.
+ */
+- (NSData *)getData;
+
+/*!
+ This method is like getData but avoids ever holding the entire PFFile's
+ contents in memory at once. This can help applications with many large PFFiles
+ avoid memory warnings.
+ @result A stream containing the data. Returns nil if there was an error in
+ fetching.
+ */
+- (NSInputStream *)getDataStream;
+
+/*!
+ Gets the data from cache if available or fetches its contents from the Parse
+ servers. Sets an error if it occurs.
+ @param error Pointer to an NSError that will be set if necessary.
+ @result The data. Returns nil if there was an error in fetching.
+ */
+- (NSData *)getData:(NSError **)error;
+
+/*!
+ This method is like getData: but avoids ever holding the entire PFFile's
+ contents in memory at once. This can help applications with many large PFFiles
+ avoid memory warnings. Sets an error if it occurs.
+ @param error Pointer to an NSError that will be set if necessary.
+ @result A stream containing the data. Returns nil if there was an error in
+ fetching.
+ */
+- (NSInputStream *)getDataStream:(NSError **)error;
+
+/*!
+ Asynchronously gets the data from cache if available or fetches its contents
+ from the Parse servers. Executes the given block.
+ @param block The block should have the following argument signature: (NSData *result, NSError *error)
+ */
+- (void)getDataInBackgroundWithBlock:(PFDataResultBlock)block;
+
+/*!
+ This method is like getDataInBackgroundWithBlock: but avoids ever holding the
+ entire PFFile's contents in memory at once. This can help applications with
+ many large PFFiles avoid memory warnings.
+ @param block The block should have the following argument signature: (NSInputStream *result, NSError *error)
+ */
+- (void)getDataStreamInBackgroundWithBlock:(PFDataStreamResultBlock)block;
+
+/*!
+ Asynchronously gets the data from cache if available or fetches its contents
+ from the Parse servers. Executes the resultBlock upon
+ completion or error. Executes the progressBlock periodically with the percent progress. progressBlock will get called with 100 before resultBlock is called.
+ @param block The block should have the following argument signature: (NSData *result, NSError *error)
+ @param progressBlock The block should have the following argument signature: (int percentDone)
+ */
+- (void)getDataInBackgroundWithBlock:(PFDataResultBlock)resultBlock
+ progressBlock:(PFProgressBlock)progressBlock;
+
+/*!
+ This method is like getDataInBackgroundWithBlock:progressBlock: but avoids ever
+ holding the entire PFFile's contents in memory at once. This can help
+ applications with many large PFFiles avoid memory warnings.
+ @param resultBlock The block should have the following argument signature: (NSInputStream *result, NSError *error)
+ @param progressBlock The block should have the following argument signature: (int percentDone)
+ */
+- (void)getDataStreamInBackgroundWithBlock:(PFDataStreamResultBlock)resultBlock
+ progressBlock:(PFProgressBlock)progressBlock;
+
+/*!
+ Asynchronously gets the data from cache if available or fetches its contents
+ from the Parse servers.
+ @param target The object to call selector on.
+ @param selector The selector to call. It should have the following signature: (void)callbackWithResult:(NSData *)result error:(NSError *)error. error will be nil on success and set if there was an error.
+ */
+- (void)getDataInBackgroundWithTarget:(id)target selector:(SEL)selector;
+
+/** @name Interrupting a Transfer */
+
+/*!
+ Cancels the current request (whether upload or download of file data).
+ */
+- (void)cancel;
+
+@end
View
88 lib/Parse.framework/Versions/1.1.14/Headers/PFGeoPoint.h
@@ -0,0 +1,88 @@
+//
+// PFGeoPoint.h
+// Parse
+//
+// Created by Henele Adams on 12/1/11.
+// Copyright (c) 2011 Parse, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <CoreLocation/CoreLocation.h>
+
+/*!
+ Object which may be used to embed a latitude / longitude point as the value for a key in a PFObject.
+ PFObjects with a PFGeoPoint field may be queried in a geospatial manner using PFQuery's whereKey:nearGeoPoint:.
+
+ This is also used as a point specifier for whereKey:nearGeoPoint: queries.
+
+ Currently, object classes may only have one key associated with a GeoPoint type.
+ */
+
+@interface PFGeoPoint : NSObject<NSCopying> {
+ double latitude;
+ double longitude;
+}
+
+/** @name Creating a PFGeoPoint */
+/*!
+ Create a PFGeoPoint object. Latitude and longitude are set to 0.0.
+ @result Returns a new PFGeoPoint.
+ */
++ (PFGeoPoint *)geoPoint;
+
+/*!
+ Creates a new PFGeoPoint object for the given CLLocation, set to the location's
+ coordinates.
+ @param location CLLocation object, with set latitude and longitude.
+ @result Returns a new PFGeoPoint at specified location.
+ */
++ (PFGeoPoint *)geoPointWithLocation:(CLLocation *)location;
+
+/*!
+ Creates a new PFGeoPoint object with the specified latitude and longitude.
+ @param latitude Latitude of point in degrees.
+ @param longitude Longitude of point in degrees.
+ @result New point object with specified latitude and longitude.
+ */
++ (PFGeoPoint *)geoPointWithLatitude:(double)latitude longitude:(double)longitude;
+
+/*!
+ Fetches the user's current location and returns a new PFGeoPoint object via the
+ provided block.
+ @param geoPointHandler A block which takes the newly created PFGeoPoint as an
+ argument.
+ */
++ (void)geoPointForCurrentLocationInBackground:(void(^)(PFGeoPoint *geoPoint, NSError *error))geoPointHandler;
+
+/** @name Controlling Position */
+
+/// Latitude of point in degrees. Valid range (-90.0, 90.0).
+@property (nonatomic) double latitude;
+/// Longitude of point in degrees. Valid range (-180.0, 180.0).
+@property (nonatomic) double longitude;
+
+/** @name Calculating Distance */
+
+/*!
+ Get distance in radians from this point to specified point.
+ @param point PFGeoPoint location of other point.
+ @result distance in radians
+ */
+- (double)distanceInRadiansTo:(PFGeoPoint*)point;
+
+/*!
+ Get distance in miles from this point to specified point.
+ @param point PFGeoPoint location of other point.
+ @result distance in miles
+ */
+- (double)distanceInMilesTo:(PFGeoPoint*)point;
+
+/*!
+ Get distance in kilometers from this point to specified point.
+ @param point PFGeoPoint location of other point.
+ @result distance in kilometers
+ */
+- (double)distanceInKilometersTo:(PFGeoPoint*)point;
+
+
+@end
View
32 lib/Parse.framework/Versions/1.1.14/Headers/PFImageView.h
@@ -0,0 +1,32 @@
+//
+// PFImageView.h
+// Parse
+//
+// Created by Qian Wang on 5/16/12.
+// Copyright (c) 2012 Parse Inc. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "PFFile.h"
+
+/*!
+ An image view that downloads and displays remote image stored on Parse's server.
+ */
+@interface PFImageView : UIImageView
+
+/// The remote file on Parse's server that stores the image.
+/// Note that the download does not start until loadInBackground: is called.
+@property (nonatomic, retain) PFFile *file;
+
+/*!
+ Initiate downloading of the remote image. Once the download completes, the remote image will be displayed.
+ */
+- (void)loadInBackground;
+
+/*!
+ Initiate downloading of the remote image. Once the download completes, the remote image will be displayed.
+ @param completion the completion block.
+ */
+- (void)loadInBackground:(void (^)(UIImage *image, NSError *error))completion;
+
+@end
View
76 lib/Parse.framework/Versions/1.1.14/Headers/PFInstallation.h
@@ -0,0 +1,76 @@
+//
+// PFInstallation.h
+// Parse
+//
+// Created by Brian Jacokes on 6/4/12.
+// Copyright (c) 2012 Parse, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "PFObject.h"
+#import "PFQuery.h"
+
+/*!
+ A Parse Framework Installation Object that is a local representation of an
+ installation persisted to the Parse cloud. This class is a subclass of a
+ PFObject, and retains the same functionality of a PFObject, but also extends
+ it with installation-specific fields and related immutability and validity
+ checks.
+
+ A valid PFInstallation can only be instantiated via
+ [PFInstallation currentInstallation] because the required identifier fields
+ are readonly. The timeZone and badge fields are also readonly properties which
+ are automatically updated to match the device's time zone and application badge
+ when the PFInstallation is saved, thus these fields might not reflect the
+ latest device state if the installation has not recently been saved.
+
+ PFInstallation objects which have a valid deviceToken and are saved to
+ the Parse cloud can be used to target push notifications.
+ */
+
+@interface PFInstallation : PFObject {
+}
+
+/** @name Accessing the Current Installation */
+
+/*!
+ Gets the currently-running installation from disk and returns an instance of
+ it. If this installation is not stored on disk, returns a PFInstallation
+ with deviceType and installationId fields set to those of the
+ current installation, and a deviceToken field set to the value stored by
+ [PFPush storeDeviceToken:]. In the latter case, if this installation matches
+ one in the Parse cloud, then calling save will fill in this installation's
+ objectId instead of creating a new installation.
+ @result Returns a PFInstallation that represents the currently-running
+ installation.
+ */
++ (PFInstallation *)currentInstallation;
+
+/** @name Targeting Installations */
+
+/*!
+ Creates a query for PFInstallation objects. The resulting query can only
+ be used for targeting a PFPush. Calling find methods on the resulting query
+ will raise an exception.
+ */
++ (PFQuery *)query;
+
+/// The device type for the PFInstallation.
+@property (nonatomic, readonly, retain) NSString *deviceType;
+
+/// The installationId for the PFInstallation.
+@property (nonatomic, readonly, retain) NSString *installationId;
+
+/// The device token for the PFInstallation.
+@property (nonatomic, readonly, retain) NSString *deviceToken;
+
+/// The badge for the PFInstallation.
+@property (nonatomic, assign) NSInteger badge;
+
+/// The timeZone for the PFInstallation.
+@property (nonatomic, readonly, retain) NSString *timeZone;
+
+/// The channels for the PFInstallation.
+@property (nonatomic, retain) NSArray *channels;
+
+@end
View
78 lib/Parse.framework/Versions/1.1.14/Headers/PFLogInView.h
@@ -0,0 +1,78 @@
+//
+// PFLogInView.h
+// Parse
+//
+// Created by Qian Wang on 3/9/12.
+// Copyright (c) 2012. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+typedef enum {
+ PFLogInFieldsNone = 0,
+ PFLogInFieldsUsernameAndPassword = 1 << 0,
+ PFLogInFieldsPasswordForgotten = 1 << 1,
+ PFLogInFieldsLogInButton = 1 << 2,
+ PFLogInFieldsFacebook = 1 << 3,
+ PFLogInFieldsTwitter = 1 << 4,
+ PFLogInFieldsSignUpButton = 1 << 5,
+ PFLogInFieldsDismissButton = 1 << 6,
+
+ PFLogInFieldsDefault = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton | PFLogInFieldsSignUpButton | PFLogInFieldsPasswordForgotten | PFLogInFieldsDismissButton
+} PFLogInFields;
+
+/*!
+ The class provides a standard log in interface for authenticating a PFUser.
+ */
+@interface PFLogInView : UIView
+
+/*! @name Creating Log In View */
+/*!
+ Initializes the view with the specified log in elements.
+ @param fields A bitmask specifying the log in elements which are enabled in the view
+ */
+- (id)initWithFields:(PFLogInFields) fields;
+
+/*! @name Customizing the Logo */
+
+/// The logo. By default, it is the Parse logo.
+@property (nonatomic, retain) UIView *logo;
+
+/*! @name Accessing Log In Elements */
+
+/// The bitmask which specifies the enabled log in elements in the view
+@property (nonatomic, readonly, assign) PFLogInFields fields;
+
+/// The username text field. It is nil if the element is not enabled.
+@property (nonatomic, readonly, retain) UITextField *usernameField;
+
+/// The password text field. It is nil if the element is not enabled.
+@property (nonatomic, readonly, retain) UITextField *passwordField;
+
+/// The password forgotten button. It is nil if the element is not enabled.
+@property (nonatomic, readonly, retain) UIButton *passwordForgottenButton;
+
+/// The log in button. It is nil if the element is not enabled.
+@property (nonatomic, readonly, retain) UIButton *logInButton;
+
+/// The Facebook button. It is nil if the element is not enabled.
+@property (nonatomic, readonly, retain) UIButton *facebookButton;
+
+/// The Twitter button. It is nil if the element is not enabled.
+@property (nonatomic, readonly, retain) UIButton *twitterButton;
+
+/// The sign up button. It is nil if the element is not enabled.
+@property (nonatomic, readonly, retain) UIButton *signUpButton;
+
+/// The dismiss button. It is nil if the element is not enabled.
+@property (nonatomic, readonly, retain) UIButton *dismissButton;
+
+/// The facebook/twitter login label. It is only shown if the external login is enabled.
+@property (nonatomic, readonly, retain) UILabel *externalLogInLabel;
+
+/// The sign up label. It is only shown if sign up button is enabled.
+@property (nonatomic, readonly, retain) UILabel *signUpLabel;
+
+@end
+
+
View
95 lib/Parse.framework/Versions/1.1.14/Headers/PFLogInViewController.h
@@ -0,0 +1,95 @@
+//
+// PFLogInViewController.h
+// Parse
+//
+// Created by Andrew Wang on 3/8/12.
+// Copyright (c) 2012. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "PFLogInView.h"
+#import "PFSignUpViewController.h"
+#import "PFUser.h"
+
+@protocol PFLogInViewControllerDelegate;
+
+/*!
+ The class that presents and manages a standard authentication interface for logging in a PFUser.
+ */
+@interface PFLogInViewController : UIViewController <UITextFieldDelegate>
+
+/*! @name Configuring Log In Elements */
+
+/*!
+ A bitmask specifying the log in elements which are enabled in the view.
+ enum {
+ PFLogInFieldsNone = 0,
+ PFLogInFieldsUsernameAndPassword = 1 << 0,
+ PFLogInFieldsPasswordForgotten = 1 << 1,
+ PFLogInFieldsLogInButton = 1 << 2,
+ PFLogInFieldsFacebook = 1 << 3,
+ PFLogInFieldsTwitter = 1 << 4,
+ PFLogInFieldsSignUpButton = 1 << 5,
+ PFLogInFieldsDismissButton = 1 << 6,
+ PFLogInFieldsDefault = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton | PFLogInFieldsSignUpButton | PFLogInFieldsPasswordForgotten | PFLogInFieldsDismissButton
+ };
+ */
+@property (nonatomic) PFLogInFields fields;
+
+/// The log in view. It contains all the enabled log in elements.
+@property (nonatomic, readonly, retain) PFLogInView *logInView;
+
+/*! @name Configuring Log In Behaviors */
+/// The delegate that responds to the control events of PFLogInViewController.
+@property (nonatomic, assign) id<PFLogInViewControllerDelegate> delegate;
+
+/// The facebook permissions that Facebook log in requests for.
+/// If unspecified, the default is basic facebook permissions.
+@property (nonatomic, retain) NSArray *facebookPermissions;
+
+/// The sign up controller if sign up is enabled.
+/// Use this to configure the sign up view, and the transition animation to the sign up view.
+/// The default is a sign up view with a username, a password, a dismiss button and a sign up button.
+@property (nonatomic, retain) PFSignUpViewController *signUpController;
+
+@end
+
+/*! @name Notifications */
+/// The notification is posted immediately after the log in succeeds.