Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #771 from facebook/development

[Release] Three20 1.0.11
  • Loading branch information...
commit 089a89c07945bb34c04a672e0410ed639914dec7 2 parents 9eb3580 + 9db7b9c
@tonklon tonklon authored
Showing with 1,169 additions and 583 deletions.
  1. +6 −2 .gitignore
  2. +2 −0  AUTHORS
  3. +12 −0 README.mdown
  4. +183 −0 Three20.xcworkspace/contents.xcworkspacedata
  5. +187 −0 Three20.xcworkspace/xcshareddata/xcschemes/Samples.xcscheme
  6. +283 −0 Three20.xcworkspace/xcshareddata/xcschemes/UnitTests.xcscheme
  7. +3 −4 samples/Core/TTCoreDemo/TTCoreDemo.xcodeproj/project.pbxproj
  8. +3 −4 samples/Network/TTNetworkDemo/TTNetworkDemo.xcodeproj/project.pbxproj
  9. +3 −4 samples/Style/TTCSSStyleSheets/TTCSSStyleSheets.xcodeproj/project.pbxproj
  10. +5 −4 samples/Style/TTStyleCatalog/TTStyleCatalog.xcodeproj/project.pbxproj
  11. +15 −15 samples/TTCatalog/Classes/DownloadProgressTestController.m
  12. +3 −3 samples/TTCatalog/Classes/PhotoTest2Controller.m
  13. +2 −5 samples/TTCatalog/Classes/TableDragRefreshController.m
  14. +3 −4 samples/TTCatalog/TTCatalog.xcodeproj/project.pbxproj
  15. +3 −4 samples/TTFacebook/TTFacebook.xcodeproj/project.pbxproj
  16. +5 −4 samples/TTNavigatorDemo/TTNavigatorDemo.xcodeproj/project.pbxproj
  17. +5 −4 samples/TTTwitter/TTTwitter.xcodeproj/project.pbxproj
  18. +1 −2  samples/UI/TTNibDemo/TTNibDemo.xcodeproj/project.pbxproj
  19. BIN  src/Three20.bundle/images/reloadButton.png
  20. BIN  src/Three20.bundle/images/reloadButton@2x.png
  21. BIN  src/Three20.bundle/images/reloadButtonActive.png
  22. BIN  src/Three20.bundle/images/reloadButtonActive@2x.png
  23. +3 −45 src/Three20/Three20.xcodeproj/project.pbxproj
  24. +2 −2 src/Three20Core/Sources/Three20Version.m
  25. +5 −17 src/Three20Core/Three20Core.xcodeproj/project.pbxproj
  26. +1 −1  src/Three20Core/UnitTests/CoreGlobalTests.m
  27. +40 −28 src/Three20Network/Sources/TTRequestLoader.m
  28. +2 −2 src/Three20Network/Sources/TTURLRequest.m
  29. +1 −1  src/Three20Network/Sources/TTURLRequestQueue.m
  30. +7 −31 src/Three20Network/Three20Network.xcodeproj/project.pbxproj
  31. +14 −1 src/Three20Network/{ → UnitTests}/NetworkRequestTimeoutTests.m
  32. +19 −1 src/Three20Style/Sources/TTDefaultStyleSheet.m
  33. +3 −15 src/Three20Style/Three20Style.xcodeproj/project.pbxproj
  34. +13 −2 src/Three20UI/Headers/TTErrorView.h
  35. +1 −1  src/Three20UI/Headers/TTLauncherPersistenceMode.h
  36. +2 −2 src/Three20UI/Headers/TTLauncherView.h
  37. +1 −1  src/Three20UI/Headers/TTTabStrip.h
  38. +6 −0 src/Three20UI/Headers/TTTableViewDataSource.h
  39. +26 −1 src/Three20UI/Sources/TTErrorView.m
  40. +1 −0  src/Three20UI/Sources/TTLauncherItem.m
  41. +9 −9 src/Three20UI/Sources/TTMessageController.m
  42. +3 −3 src/Three20UI/Sources/TTModelViewController.m
  43. +1 −1  src/Three20UI/Sources/TTNavigator.m
  44. +2 −1  src/Three20UI/Sources/TTPhotoViewController.m
  45. +2 −2 src/Three20UI/Sources/TTPostController.m
  46. +1 −1  src/Three20UI/Sources/TTScrollView.m
  47. +1 −1  src/Three20UI/Sources/TTSearchTextField.m
  48. +13 −0 src/Three20UI/Sources/TTTabStrip.m
  49. +1 −0  src/Three20UI/Sources/TTTableControlCell.m
  50. +3 −1 src/Three20UI/Sources/TTTableView.m
  51. +9 −1 src/Three20UI/Sources/TTTableViewController.m
  52. +6 −0 src/Three20UI/Sources/TTTableViewDataSource.m
  53. +6 −0 src/Three20UI/Sources/TTThumbsDataSource.m
  54. +0 −7 src/Three20UI/Sources/TTViewController.m
  55. +2 −1  src/Three20UI/Sources/UITableViewAdditions.m
  56. +3 −15 src/Three20UI/Three20UI.xcodeproj/project.pbxproj
  57. +10 −0 src/Three20UICommon/Headers/TTGlobalUICommon.h
  58. +25 −3 src/Three20UICommon/Sources/TTGlobalUICommon.m
  59. +3 −15 src/Three20UICommon/Three20UICommon.xcodeproj/project.pbxproj
  60. +1 −1  src/Three20UINavigator/Headers/TTBaseNavigator.h
  61. +10 −5 src/Three20UINavigator/Sources/TTBaseNavigator.m
  62. +3 −15 src/Three20UINavigator/Three20UINavigator.xcodeproj/project.pbxproj
  63. +0 −183 src/UnitTests/Xcode324iOS41TestSuiteWorkaround.m
  64. +3 −0  src/common/Configurations/Library.xcconfig
  65. +3 −32 src/extThree20CSSStyle/extThree20CSSStyle.xcodeproj/project.pbxproj
  66. +36 −45 src/extThree20JSON/extThree20JSON.xcodeproj/project.pbxproj
  67. +1 −1  src/extThree20XML/Configurations/UnitTests.xcconfig
  68. +6 −30 src/extThree20XML/extThree20XML.xcodeproj/project.pbxproj
  69. +135 −0 src/scripts/docs.py
View
8 .gitignore
@@ -5,7 +5,6 @@ Products
*.pbxuser
*.perspectivev3
*.mode1v3
-*.xcworkspace
xcuserdata
.DS_Store
config
@@ -18,4 +17,9 @@ src/Three20UINavigator/*.h
src/Three20UI/*.h
extensions/
-*.pyc
+*.pyc
+Docs
+
+# we don't support xcworkspaces for single projects. Use Three20.xcworkspace instead
+*.xcworkspace
+!Three20.xcworkspace
View
2  AUTHORS
@@ -11,6 +11,8 @@ Owen Yamauchi github.com/oyamauchi oyamauchi@facebook.com
Jeff Verkoeyen github.com/jverkoey jverkoey@gmail.com
John Wang github.com/jwang jwang392@gmail.com
Stephan Diederich github.com/diederich stephan.diederich@googlemail.com
+Adar Porat github.com/aporat adar.porat@gmail.com
+Tobias Klonk github.com/tonklon me@tonklon.com
Contributors
------------
View
12 README.mdown
@@ -21,6 +21,18 @@ If you would like to ask any questions regarding Three20, please check out any o
* [Three20 Mailing List][]
* [Three20 Tagged Questions on StackOverflow][]
+Documentation
+==============================
+
+You can access Three20 API documentation in several ways:
+
+1. Online: http://facebook.github.com/three20/api
+1. Within Xcode:
+ 1. Open your Xcode Preferences (`⌘,`) and switch to Documentation tab.
+ 1. Click the `+` button
+ 1. Add the Three20 doc set feed: `feed://facebook.github.com/three20/api/com.facebook.Three20.atom`
+1. Generate the documentation from the project repository with the `src/scripts/docs.py` script
+
Adding Three20 to your project
==============================
View
183 Three20.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <Group
+ location = "container:"
+ name = "src">
+ <Group
+ location = "group:src/common"
+ name = "common">
+ <Group
+ location = "group:Configurations"
+ name = "Configurations">
+ <FileRef
+ location = "group:Libraries.xcconfig">
+ </FileRef>
+ <FileRef
+ location = "group:Library.xcconfig">
+ </FileRef>
+ <FileRef
+ location = "group:Paths.xcconfig">
+ </FileRef>
+ <FileRef
+ location = "group:Project.xcconfig">
+ </FileRef>
+ <FileRef
+ location = "group:UnitTests.xcconfig">
+ </FileRef>
+ </Group>
+ </Group>
+ <Group
+ location = "group:src/scripts"
+ name = "scripts">
+ <FileRef
+ location = "group:Build.command">
+ </FileRef>
+ <FileRef
+ location = "group:Clean.command">
+ </FileRef>
+ <FileRef
+ location = "group:docs.py">
+ </FileRef>
+ <FileRef
+ location = "group:lint">
+ </FileRef>
+ <FileRef
+ location = "group:Paths.py">
+ </FileRef>
+ <FileRef
+ location = "group:Paths.pyc">
+ </FileRef>
+ <FileRef
+ location = "group:Pbxproj.html">
+ </FileRef>
+ <FileRef
+ location = "group:Pbxproj.py">
+ </FileRef>
+ <FileRef
+ location = "group:Pbxproj.pyc">
+ </FileRef>
+ <FileRef
+ location = "group:Protect.command">
+ </FileRef>
+ <FileRef
+ location = "group:ttmodule.py">
+ </FileRef>
+ </Group>
+ <FileRef
+ location = "group:src/Three20Core/Three20Core.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:src/Three20Network/Three20Network.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:src/Three20Style/Three20Style.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:src/Three20UICommon/Three20UICommon.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:src/Three20UINavigator/Three20UINavigator.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:src/Three20UI/Three20UI.xcodeproj">
+ </FileRef>
+ <Group
+ location = "container:"
+ name = "extensions">
+ <FileRef
+ location = "group:src/extThree20CSSStyle/extThree20CSSStyle.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:src/extThree20JSON/extThree20JSON.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:src/extThree20XML/extThree20XML.xcodeproj">
+ </FileRef>
+ </Group>
+ </Group>
+ <Group
+ location = "container:"
+ name = "Samples">
+ <Group
+ location = "group:samples/common"
+ name = "common">
+ <Group
+ location = "group:Configurations"
+ name = "Configurations">
+ <FileRef
+ location = "group:App.xcconfig">
+ </FileRef>
+ <FileRef
+ location = "group:Libraries.xcconfig">
+ </FileRef>
+ <FileRef
+ location = "group:Paths.xcconfig">
+ </FileRef>
+ <FileRef
+ location = "group:Project.xcconfig">
+ </FileRef>
+ <FileRef
+ location = "group:UnitTests.xcconfig">
+ </FileRef>
+ </Group>
+ </Group>
+ <FileRef
+ location = "group:samples/TTCatalog/TTCatalog.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:samples/Core/TTCoreDemo/TTCoreDemo.xcodeproj">
+ </FileRef>
+ <Group
+ location = "container:"
+ name = "Network">
+ <FileRef
+ location = "group:samples/Network/TTNetworkDemo/TTNetworkDemo.xcodeproj">
+ </FileRef>
+ </Group>
+ <Group
+ location = "container:"
+ name = "Style">
+ <FileRef
+ location = "group:samples/Style/TTCSSStyleSheets/TTCSSStyleSheets.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:samples/Style/TTStyleCatalog/TTStyleCatalog.xcodeproj">
+ </FileRef>
+ </Group>
+ <Group
+ location = "container:"
+ name = "UI">
+ <FileRef
+ location = "group:samples/UI/TTNibDemo/TTNibDemo.xcodeproj">
+ </FileRef>
+ </Group>
+ <FileRef
+ location = "group:samples/TTFacebook/TTFacebook.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:samples/TTNavigatorDemo/TTNavigatorDemo.xcodeproj">
+ </FileRef>
+ <FileRef
+ location = "group:samples/TTTwitter/TTTwitter.xcodeproj">
+ </FileRef>
+ </Group>
+ <FileRef
+ location = "group:AUTHORS">
+ </FileRef>
+ <FileRef
+ location = "group:config.template">
+ </FileRef>
+ <FileRef
+ location = "group:diffstrings.py">
+ </FileRef>
+ <FileRef
+ location = "group:LICENSE">
+ </FileRef>
+ <FileRef
+ location = "group:project.dev">
+ </FileRef>
+ <FileRef
+ location = "group:README.mdown">
+ </FileRef>
+</Workspace>
View
187 Three20.xcworkspace/xcshareddata/xcschemes/Samples.xcscheme
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTCSSStyleSheets.app"
+ BlueprintName = "TTCSSStyleSheets"
+ ReferencedContainer = "container:samples/Style/TTCSSStyleSheets/TTCSSStyleSheets.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTCatalog.app"
+ BlueprintName = "TTCatalog"
+ ReferencedContainer = "container:samples/TTCatalog/TTCatalog.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTCoreDemo.app"
+ BlueprintName = "TTCoreDemo"
+ ReferencedContainer = "container:samples/Core/TTCoreDemo/TTCoreDemo.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTFacebook.app"
+ BlueprintName = "TTFacebook"
+ ReferencedContainer = "container:samples/TTFacebook/TTFacebook.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTNavigatorDemo.app"
+ BlueprintName = "TTNavigatorDemo"
+ ReferencedContainer = "container:samples/TTNavigatorDemo/TTNavigatorDemo.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTNetworkDemo.app"
+ BlueprintName = "TTNetworkDemo"
+ ReferencedContainer = "container:samples/Network/TTNetworkDemo/TTNetworkDemo.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTNibDemo.app"
+ BlueprintName = "TTNibDemo"
+ ReferencedContainer = "container:samples/UI/TTNibDemo/TTNibDemo.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTStyleCatalog.app"
+ BlueprintName = "TTStyleCatalog"
+ ReferencedContainer = "container:samples/Style/TTStyleCatalog/TTStyleCatalog.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTTwitter.app"
+ BlueprintName = "TTTwitter"
+ ReferencedContainer = "container:samples/TTTwitter/TTTwitter.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ buildConfiguration = "Debug">
+ <Testables>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTCatalog.app"
+ BlueprintName = "TTCatalog"
+ ReferencedContainer = "container:samples/TTCatalog/TTCatalog.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ </TestAction>
+ <LaunchAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Debug"
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "1D6058900D05DD3D006BFB54"
+ BuildableName = "TTCatalog.app"
+ BlueprintName = "TTCatalog"
+ ReferencedContainer = "container:samples/TTCatalog/TTCatalog.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Release"
+ debugDocumentVersioning = "YES">
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
View
283 Three20.xcworkspace/xcshareddata/xcschemes/UnitTests.xcscheme
@@ -0,0 +1,283 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "Three20UnitTests.octest"
+ BlueprintName = "Three20UnitTests"
+ ReferencedContainer = "container:src/Three20/Three20.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "CoreUnitTests.octest"
+ BlueprintName = "Three20CoreUnitTests"
+ ReferencedContainer = "container:src/Three20Core/Three20Core.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "NetworkUnitTests.octest"
+ BlueprintName = "Three20NetworkUnitTests"
+ ReferencedContainer = "container:src/Three20Network/Three20Network.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "StyleUnitTests.octest"
+ BlueprintName = "Three20StyleUnitTests"
+ ReferencedContainer = "container:src/Three20Style/Three20Style.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "UIUnitTests.octest"
+ BlueprintName = "Three20UIUnitTests"
+ ReferencedContainer = "container:src/Three20UI/Three20UI.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "UICommonUnitTests.octest"
+ BlueprintName = "Three20UICommonUnitTests"
+ ReferencedContainer = "container:src/Three20UICommon/Three20UICommon.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "UINavigatorUnitTests.octest"
+ BlueprintName = "Three20UINavigatorUnitTests"
+ ReferencedContainer = "container:src/Three20UINavigator/Three20UINavigator.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "extCSSStyleUnitTests.octest"
+ BlueprintName = "extThree20CSSStyleUnitTests"
+ ReferencedContainer = "container:src/extThree20CSSStyle/extThree20CSSStyle.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "extJSONUnitTests+SBJSON.octest"
+ BlueprintName = "extThree20JSONUnitTests+SBJSON"
+ ReferencedContainer = "container:src/extThree20JSON/extThree20JSON.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "extXMLUnitTests.octest"
+ BlueprintName = "extThree20XMLUnitTests"
+ ReferencedContainer = "container:src/extThree20XML/extThree20XML.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ buildConfiguration = "Debug">
+ <Testables>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "CoreUnitTests.octest"
+ BlueprintName = "Three20CoreUnitTests"
+ ReferencedContainer = "container:src/Three20Core/Three20Core.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "NetworkUnitTests.octest"
+ BlueprintName = "Three20NetworkUnitTests"
+ ReferencedContainer = "container:src/Three20Network/Three20Network.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "StyleUnitTests.octest"
+ BlueprintName = "Three20StyleUnitTests"
+ ReferencedContainer = "container:src/Three20Style/Three20Style.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "UICommonUnitTests.octest"
+ BlueprintName = "Three20UICommonUnitTests"
+ ReferencedContainer = "container:src/Three20UICommon/Three20UICommon.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "UINavigatorUnitTests.octest"
+ BlueprintName = "Three20UINavigatorUnitTests"
+ ReferencedContainer = "container:src/Three20UINavigator/Three20UINavigator.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "UIUnitTests.octest"
+ BlueprintName = "Three20UIUnitTests"
+ ReferencedContainer = "container:src/Three20UI/Three20UI.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "Three20UnitTests.octest"
+ BlueprintName = "Three20UnitTests"
+ ReferencedContainer = "container:src/Three20/Three20.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "extCSSStyleUnitTests.octest"
+ BlueprintName = "extThree20CSSStyleUnitTests"
+ ReferencedContainer = "container:src/extThree20CSSStyle/extThree20CSSStyle.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "extJSONUnitTests+SBJSON.octest"
+ BlueprintName = "extThree20JSONUnitTests+SBJSON"
+ ReferencedContainer = "container:src/extThree20JSON/extThree20JSON.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ <TestableReference
+ skipped = "NO">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "EB9E6C6110B6A8F800DE563C"
+ BuildableName = "extXMLUnitTests.octest"
+ BlueprintName = "extThree20XMLUnitTests"
+ ReferencedContainer = "container:src/extThree20XML/extThree20XML.xcodeproj">
+ </BuildableReference>
+ </TestableReference>
+ </Testables>
+ </TestAction>
+ <LaunchAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Debug"
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES">
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Release"
+ debugDocumentVersioning = "YES">
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
View
7 samples/Core/TTCoreDemo/TTCoreDemo.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -213,9 +213,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTCoreDemo" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -321,7 +322,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -334,7 +334,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
View
7 samples/Network/TTNetworkDemo/TTNetworkDemo.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -245,9 +245,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTNetworkDemo" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -376,7 +377,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -389,7 +389,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
View
7 samples/Style/TTCSSStyleSheets/TTCSSStyleSheets.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -491,9 +491,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTCSSStyleSheets" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -770,7 +771,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -783,7 +783,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
View
9 samples/Style/TTStyleCatalog/TTStyleCatalog.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -469,8 +469,11 @@
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0420;
+ };
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTStyleCatalog" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -717,7 +720,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -730,7 +732,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
View
30 samples/TTCatalog/Classes/DownloadProgressTestController.m
@@ -6,13 +6,13 @@
@implementation DownloadProgressTestController
-static const NSString *k1MBDownloadUrl = @"http://cachefly.cachefly.net/1mb.test";
-static const NSString *k5MBDownloadUrl = @"http://cachefly.cachefly.net/5mb.test";
-static const NSString *k10MBDownloadUrl = @"http://cachefly.cachefly.net/10mb.test";
+static NSString* const k1MBDownloadUrl = @"http://cachefly.cachefly.net/1mb.test";
+static NSString* const k5MBDownloadUrl = @"http://cachefly.cachefly.net/5mb.test";
+static NSString* const k10MBDownloadUrl = @"http://cachefly.cachefly.net/10mb.test";
-static const NSString *k1MBDownloadTitle = @"Download 1MB File";
-static const NSString *k5MBDownloadTitle = @"Download 5MB File";
-static const NSString *k10MBDownloadTitle = @"Download 10MB File";
+static NSString* const k1MBDownloadTitle = @"Download 1MB File";
+static NSString* const k5MBDownloadTitle = @"Download 5MB File";
+static NSString* const k10MBDownloadTitle = @"Download 10MB File";
///////////////////////////////////////////////////////////////////////////////////////////////////
// initiation
@@ -67,9 +67,9 @@ - (void)loadView {
[self.view addSubview: _activityLabel];
NSArray *buttons = [NSArray arrayWithObjects:
- [TTButton buttonWithStyle:@"toolbarRoundButton:" title:[k1MBDownloadTitle copy]],
- [TTButton buttonWithStyle:@"toolbarRoundButton:" title:[k5MBDownloadTitle copy]],
- [TTButton buttonWithStyle:@"toolbarRoundButton:" title:[k10MBDownloadTitle copy]],
+ [TTButton buttonWithStyle:@"toolbarRoundButton:" title:k1MBDownloadTitle],
+ [TTButton buttonWithStyle:@"toolbarRoundButton:" title:k5MBDownloadTitle],
+ [TTButton buttonWithStyle:@"toolbarRoundButton:" title:k10MBDownloadTitle],
nil];
for (TTButton* button in buttons) {
[button setFont: [UIFont systemFontOfSize: 16.0f]];
@@ -96,14 +96,14 @@ - (void)viewWillDisappear:(BOOL)animated {
// public
- (void)downloadButtonAction:(TTButton*)button {
- if ([[button titleForState:UIControlStateNormal] isEqualToString: [k1MBDownloadTitle copy]]) {
- [self loadWithUrl: [k1MBDownloadUrl copy]];
+ if ([[button titleForState:UIControlStateNormal] isEqualToString:k1MBDownloadTitle]) {
+ [self loadWithUrl:k1MBDownloadUrl];
}
- else if ([[button titleForState:UIControlStateNormal] isEqualToString: [k5MBDownloadTitle copy]]) {
- [self loadWithUrl: [k5MBDownloadUrl copy]];
+ else if ([[button titleForState:UIControlStateNormal] isEqualToString: k5MBDownloadTitle]) {
+ [self loadWithUrl:k5MBDownloadUrl];
}
- else if ([[button titleForState:UIControlStateNormal] isEqualToString: [k10MBDownloadTitle copy]]) {
- [self loadWithUrl: [k10MBDownloadUrl copy]];
+ else if ([[button titleForState:UIControlStateNormal] isEqualToString: k10MBDownloadTitle]) {
+ [self loadWithUrl: k10MBDownloadUrl];
}
}
View
6 samples/TTCatalog/Classes/PhotoTest2Controller.m
@@ -4,13 +4,13 @@
@implementation PhotoTest2Controller
- (void)viewDidLoad {
- self.photoSource = [[MockPhotoSource alloc]
+ self.photoSource = [[[MockPhotoSource alloc]
initWithType:MockPhotoSourceNormal
//initWithType:MockPhotoSourceDelayed
// initWithType:MockPhotoSourceLoadError
// initWithType:MockPhotoSourceDelayed|MockPhotoSourceLoadError
title:@"Flickr Photos"
- photos:[[NSArray alloc] initWithObjects:
+ photos:[NSArray arrayWithObjects:
[[[MockPhoto alloc]
initWithURL:@"http://farm4.static.flickr.com/3246/2957580101_33c799fc09_o.jpg"
smallURL:@"http://farm4.static.flickr.com/3246/2957580101_d63ef56b15_t.jpg"
@@ -273,7 +273,7 @@ - (void)viewDidLoad {
// smallURL:@"http://farm4.static.flickr.com/3280/2949707060_8139284ba5_t.jpg"
// size:CGSizeMake(800, 533)] autorelease],
// nil]
- ];
+ ] autorelease];
}
@end
View
7 samples/TTCatalog/Classes/TableDragRefreshController.m
@@ -28,11 +28,8 @@ - (void) createModel {
[ds release];
}
-- (id<TTTableViewDelegate>) createDelegate {
-
- TTTableViewDragRefreshDelegate *delegate = [[TTTableViewDragRefreshDelegate alloc] initWithController:self];
-
- return [delegate autorelease];
+- (id<UITableViewDelegate>)createDelegate {
+ return [[[TTTableViewDragRefreshDelegate alloc] initWithController:self] autorelease];
}
@end
View
7 samples/TTCatalog/TTCatalog.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -805,9 +805,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTCatalog" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -1100,7 +1101,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
ONLY_ACTIVE_ARCH = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -1115,7 +1115,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
View
7 samples/TTFacebook/TTFacebook.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -581,9 +581,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTFacebook" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -885,7 +886,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
SDKROOT = iphoneos;
};
@@ -899,7 +899,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
SDKROOT = iphoneos;
};
View
9 samples/TTNavigatorDemo/TTNavigatorDemo.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -424,8 +424,11 @@
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0420;
+ };
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTNavigatorDemo" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -674,7 +677,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
};
name = Debug;
};
@@ -686,7 +688,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
"PROVISIONING_PROFILE[sdk=iphoneos*]" = DefaultProfileUuid;
};
name = Release;
View
9 samples/TTTwitter/TTTwitter.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -532,8 +532,11 @@
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0420;
+ };
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTTwitter" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -810,7 +813,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -823,7 +825,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
View
3  samples/UI/TTNibDemo/TTNibDemo.xcodeproj/project.pbxproj
@@ -534,6 +534,7 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TTNibDemo" */;
compatibilityVersion = "Xcode 3.2";
@@ -793,7 +794,6 @@
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -805,7 +805,6 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
View
BIN  src/Three20.bundle/images/reloadButton.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  src/Three20.bundle/images/reloadButton@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  src/Three20.bundle/images/reloadButtonActive.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  src/Three20.bundle/images/reloadButtonActive@2x.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
48 src/Three20/Three20.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -20,20 +20,6 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 18C011EC13D5EE01006DFF7A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6EE7389D1184ADB400A35176 /* Three20Network.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 662D81EF12630516005851C2;
- remoteInfo = "Three20Network-Xcode3.2.5";
- };
- 18C011EE13D5EE01006DFF7A /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 6EE7389D1184ADB400A35176 /* Three20Network.xcodeproj */;
- proxyType = 2;
- remoteGlobalIDString = 662D81B2126304EB005851C2;
- remoteInfo = "Three20NetworkUnitTests-Xcode3.2.5";
- };
66FC2E291265264C00F56B19 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
@@ -376,9 +362,7 @@
isa = PBXGroup;
children = (
6EE738A31184ADB400A35176 /* libThree20Network.a */,
- 18C011ED13D5EE01006DFF7A /* libThree20Network-Xcode3.2.5.a */,
6EE738A51184ADB400A35176 /* NetworkUnitTests.octest */,
- 18C011EF13D5EE01006DFF7A /* NetworkUnitTests-Xcode3.2.5.octest */,
);
name = Products;
sourceTree = "<group>";
@@ -455,9 +439,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Three20" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -503,20 +488,6 @@
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
- 18C011ED13D5EE01006DFF7A /* libThree20Network-Xcode3.2.5.a */ = {
- isa = PBXReferenceProxy;
- fileType = archive.ar;
- path = "libThree20Network-Xcode3.2.5.a";
- remoteRef = 18C011EC13D5EE01006DFF7A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- 18C011EF13D5EE01006DFF7A /* NetworkUnitTests-Xcode3.2.5.octest */ = {
- isa = PBXReferenceProxy;
- fileType = wrapper.cfbundle;
- path = "NetworkUnitTests-Xcode3.2.5.octest";
- remoteRef = 18C011EE13D5EE01006DFF7A /* PBXContainerItemProxy */;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
6E6454A71184D42800F08CB1 /* libThree20Style.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
@@ -754,7 +725,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Internal;
@@ -769,7 +739,6 @@
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
PRODUCT_NAME = "$(BASE_PRODUCT_NAME)";
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = iphoneos;
@@ -782,12 +751,10 @@
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREFIX_HEADER = "";
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
PRODUCT_NAME = "$(BASE_PRODUCT_NAME)";
SDKROOT = iphoneos;
WRAPPER_EXTENSION = octest;
@@ -802,7 +769,6 @@
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
PRODUCT_NAME = "$(BASE_PRODUCT_NAME)";
SDKROOT = iphoneos;
};
@@ -814,8 +780,6 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- PREBINDING = NO;
PRODUCT_NAME = "$(BASE_PRODUCT_NAME)";
SDKROOT = iphoneos;
ZERO_LINK = NO;
@@ -830,7 +794,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -843,7 +806,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
@@ -854,12 +816,10 @@
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
PRODUCT_NAME = "$(BASE_PRODUCT_NAME)";
SDKROOT = iphoneos;
WRAPPER_EXTENSION = octest;
@@ -872,10 +832,8 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
- PREBINDING = NO;
PRODUCT_NAME = "$(BASE_PRODUCT_NAME)";
SDKROOT = iphoneos;
WRAPPER_EXTENSION = octest;
View
4 src/Three20Core/Sources/Three20Version.m
@@ -18,6 +18,6 @@
/*! \mainpage Three20 API Documentation
*
- * Generated from Three20 Release <a href="http://three20.info/roadmap/1.0.10">1.0.10</a>.
+ * Generated from Three20 Release <a href="http://three20.info/roadmap/1.0.11">1.0.11</a>.
*/
-NSString* const Three20Version = @"1.0.10";
+NSString* const Three20Version = @"1.0.11";
View
22 src/Three20Core/Three20Core.xcodeproj/project.pbxproj
@@ -3,13 +3,13 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
+ 660E7375135A560A00531398 /* Three20Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 660E7374135A560A00531398 /* Three20Version.h */; settings = {ATTRIBUTES = (Public, ); }; };
6656B2531354035900B34AB5 /* TTAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = 6656B2521354035900B34AB5 /* TTAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; };
6656B2551354035F00B34AB5 /* TTAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = 6656B2541354035F00B34AB5 /* TTAvailability.m */; };
- 660E7375135A560A00531398 /* Three20Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 660E7374135A560A00531398 /* Three20Version.h */; settings = {ATTRIBUTES = (Public, ); }; };
66A0530A132EB47900132434 /* Three20.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A05309132EB47900132434 /* Three20.m */; };
66A0530C132EB47F00132434 /* Three20.h in Headers */ = {isa = PBXBuildFile; fileRef = 66A0530B132EB47F00132434 /* Three20.h */; settings = {ATTRIBUTES = (Public, ); }; };
66ADC9091290B23A00855386 /* TTExtensionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 66ADC9071290B23A00855386 /* TTExtensionInfo.m */; };
@@ -69,9 +69,9 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
+ 660E7374135A560A00531398 /* Three20Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Three20Version.h; path = Headers/Three20Version.h; sourceTree = "<group>"; };
6656B2521354035900B34AB5 /* TTAvailability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TTAvailability.h; path = Headers/TTAvailability.h; sourceTree = "<group>"; };
6656B2541354035F00B34AB5 /* TTAvailability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TTAvailability.m; path = Sources/TTAvailability.m; sourceTree = "<group>"; };
- 660E7374135A560A00531398 /* Three20Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Three20Version.h; path = Headers/Three20Version.h; sourceTree = "<group>"; };
66A05309132EB47900132434 /* Three20.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Three20.m; path = Sources/Three20.m; sourceTree = "<group>"; };
66A0530B132EB47F00132434 /* Three20.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Three20.h; path = Headers/Three20.h; sourceTree = "<group>"; };
66ADC9071290B23A00855386 /* TTExtensionInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TTExtensionInfo.m; path = Sources/TTExtensionInfo.m; sourceTree = "<group>"; };
@@ -406,9 +406,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Three20Core" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -539,7 +540,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Internal;
@@ -554,7 +554,6 @@
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = iphoneos;
};
@@ -566,12 +565,10 @@
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Internal;
@@ -584,7 +581,6 @@
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -595,8 +591,6 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- PREBINDING = NO;
SDKROOT = iphoneos;
ZERO_LINK = NO;
};
@@ -610,7 +604,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -624,7 +617,6 @@
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
@@ -635,12 +627,10 @@
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -651,10 +641,8 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
ZERO_LINK = NO;
};
View
2  src/Three20Core/UnitTests/CoreGlobalTests.m
@@ -63,7 +63,7 @@ - (void)testThree20Versioning {
@"The latest major version has not been updated correctly.");
STAssertEquals([Three20 minorVersion], 0,
@"The latest minor version has not been updated correctly.");
- STAssertEquals([Three20 bugfixVersion], 5,
+ STAssertEquals([Three20 bugfixVersion], 11,
@"The latest bugfix version has not been updated correctly.");
STAssertEquals([Three20 hotfixVersion], 0,
@"The latest hotfix version has not been updated correctly.");
View
68 src/Three20Network/Sources/TTRequestLoader.m
@@ -35,6 +35,11 @@
#import "Three20Core/TTDebug.h"
#import "Three20Core/TTDebugFlags.h"
+@interface TTRequestLoader (Private)
+- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSHTTPURLResponse*)response ;
+- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data ;
+- (void)connectionDidFinishLoading:(NSURLConnection *)connection ;
+@end
static const NSInteger kLoadMaxRetries = 2;
@@ -100,13 +105,15 @@ - (void)deliverDataResponse:(NSURL*)URL {
// Strictly speaking, to be really conformant need to interpret %xx hex encoded entities.
// The [NSString dataUsingEncoding] doesn't do that correctly, but most documents don't use that.
// Skip for now.
- _responseData = [[[dataSplit objectAtIndex:1] dataUsingEncoding:NSASCIIStringEncoding] retain];
+ _responseData = [[NSMutableData dataWithData:[[dataSplit objectAtIndex:1] dataUsingEncoding:NSASCIIStringEncoding]] retain];
} else {
_responseData = [[NSData dataWithBase64EncodedString:[dataSplit objectAtIndex:1]] retain];
}
- [_queue performSelector:@selector(loader:didLoadResponse:data:) withObject:self
- withObject:_response withObject:_responseData];
+ [_queue performSelector:@selector(loader:didLoadResponse:data:)
+ withObject:self
+ withObject:_response
+ withObject:_responseData];
}
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -119,7 +126,7 @@ - (void)connectToURL:(NSURL*)URL {
}
TTNetworkRequestStarted();
- TTURLRequest* request = _requests.count == 1 ? [_requests objectAtIndex:0] : nil;
+ TTURLRequest* request = _requests.count >= 1 ? [_requests objectAtIndex:0] : nil;
// there are situations where urlPath is somehow nil (therefore crashing in
// createNSURLRequest:URL:, even if we checked for non-blank values before
@@ -187,7 +194,7 @@ - (void)loadSynchronously:(NSURL*)URL {
// correctly, this would be the place to start tracing for errors.
TTNetworkRequestStarted();
- TTURLRequest* request = _requests.count == 1 ? [_requests objectAtIndex:0] : nil;
+ TTURLRequest* request = _requests.count >= 1 ? [_requests objectAtIndex:0] : nil;
NSURLRequest* URLRequest = [_queue createNSURLRequest:request URL:URL];
NSHTTPURLResponse* response = nil;
@@ -249,7 +256,7 @@ - (NSError*)processResponse:(NSHTTPURLResponse*)response data:(id)data {
for (TTURLRequest* request in _requests) {
NSError* error = nil;
// We need to accept valid HTTP status codes, not only 200.
- if (!response
+ if (!response || ![response respondsToSelector:@selector(statusCode)]
|| (response.statusCode >= 200 && response.statusCode < 300)
|| response.statusCode == 304) {
error = [request.response request:request processResponse:response data:data];
@@ -334,28 +341,32 @@ - (void)cancel {
///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSHTTPURLResponse*)response {
_response = [response retain];
- NSDictionary* headers = [response allHeaderFields];
- int contentLength = [[headers objectForKey:@"Content-Length"] intValue];
-
- // If you hit this assertion it's because a massive file is about to be downloaded.
- // If you're sure you want to do this, add the following line to your app delegate startup
- // method. Setting the max content length to zero allows anything to go through. If you just
- // want to raise the limit, set it to any positive byte size.
- // [[TTURLRequestQueue mainQueue] setMaxContentLength:0]
- TTDASSERT(0 == _queue.maxContentLength || contentLength <=_queue.maxContentLength);
-
- if (contentLength > _queue.maxContentLength && _queue.maxContentLength) {
- TTDCONDITIONLOG(TTDFLAG_URLREQUEST, @"MAX CONTENT LENGTH EXCEEDED (%d) %@",
- contentLength, _urlPath);
- [self cancel];
- }
-
- _responseData = [[NSMutableData alloc] initWithCapacity:contentLength];
-
+ if ([response respondsToSelector:@selector(allHeaderFields)]){
+ NSDictionary* headers = [response allHeaderFields];
+ int contentLength = [[headers objectForKey:@"Content-Length"] intValue];
+
+ // If you hit this assertion it's because a massive file is about to be downloaded.
+ // If you're sure you want to do this, add the following line to your app delegate startup
+ // method. Setting the max content length to zero allows anything to go through. If you just
+ // want to raise the limit, set it to any positive byte size.
+ // [[TTURLRequestQueue mainQueue] setMaxContentLength:0]
+ TTDASSERT(0 == _queue.maxContentLength || contentLength <=_queue.maxContentLength);
+
+ if (contentLength > _queue.maxContentLength && _queue.maxContentLength) {
+ TTDCONDITIONLOG(TTDFLAG_URLREQUEST, @"MAX CONTENT LENGTH EXCEEDED (%d) %@",
+ contentLength, _urlPath);
+ [self cancel];
+ }
+
+ _responseData = [[NSMutableData alloc] initWithCapacity:contentLength];
+
for (TTURLRequest* request in [[_requests copy] autorelease]) {
- request.totalContentLength = contentLength;
+ request.totalContentLength = contentLength;
}
-
+
+ }else {
+ _responseData = [[NSMutableData alloc] init];
+ }
}
@@ -389,8 +400,9 @@ - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
TTNetworkRequestStopped();
TTDCONDITIONLOG(TTDFLAG_ETAGS, @"Response status code: %d", _response.statusCode);
-
- if (_response.statusCode == 304) {
+ if (![_response respondsToSelector:@selector(statusCode)]){
+ [_queue loader:self didLoadResponse:_response data:_responseData];
+ } else if (_response.statusCode == 304) {
[_queue loader:self didLoadUnmodifiedResponse:_response];
} else {
[_queue loader:self didLoadResponse:_response data:_responseData];
View
4 src/Three20Network/Sources/TTURLRequest.m
@@ -29,7 +29,7 @@
#import "Three20Core/NSStringAdditions.h"
static NSString* kStringBoundary = @"3i2ndDfv2rTHiSisAbouNdArYfORhtTPEefj3q2f";
-const NSTimeInterval TTURLRequestUseDefaultTimeout = -1.0;
+const NSTimeInterval TTURLRequestUseQueueTimeout = -1.0;
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -107,7 +107,7 @@ - (id)init {
_shouldHandleCookies = YES;
_charsetForMultipart = NSUTF8StringEncoding;
_multiPartForm = YES;
- _timeoutInterval = TTURLRequestUseDefaultTimeout;
+ _timeoutInterval = TTURLRequestUseQueueTimeout;
}
return self;
}
View
2  src/Three20Network/Sources/TTURLRequestQueue.m
@@ -499,7 +499,7 @@ - (NSURLRequest*)createNSURLRequest:(TTURLRequest*)request URL:(NSURL*)URL {
NSTimeInterval usedTimeout = request.timeoutInterval;
- if (usedTimeout < 0.0) {
+ if (usedTimeout < 0.0 || request == nil) {
usedTimeout = self.defaultTimeout;
}
View
38 src/Three20Network/Three20Network.xcodeproj/project.pbxproj
@@ -3,17 +3,17 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
- 662D819D126304DE005851C2 /* Xcode324iOS41TestSuiteWorkaround.m in Sources */ = {isa = PBXBuildFile; fileRef = 662D819C126304DE005851C2 /* Xcode324iOS41TestSuiteWorkaround.m */; };
664B29BF12848AA50008D569 /* TTErrorCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 664B29BC12848AA50008D569 /* TTErrorCodes.h */; settings = {ATTRIBUTES = (Public, ); }; };
664B29C312848AAD0008D569 /* TTErrorCodes.m in Sources */ = {isa = PBXBuildFile; fileRef = 664B29C012848AAD0008D569 /* TTErrorCodes.m */; };
66F955B0126662E300BEF6F0 /* NetworkURLCacheTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 66F955AF126662E300BEF6F0 /* NetworkURLCacheTests.m */; };
66F955BA1266647A00BEF6F0 /* both.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B71266647A00BEF6F0 /* both.png */; };
66F955BB1266647A00BEF6F0 /* both@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B81266647A00BEF6F0 /* both@2x.png */; };
66F955BC1266647A00BEF6F0 /* only@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 66F955B91266647A00BEF6F0 /* only@2x.png */; };
+ 6DB66E8614B90568003581DF /* NetworkRequestTimeoutTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D64C15814B7C9C100BF5E23 /* NetworkRequestTimeoutTests.m */; };
6EE735F8118499D300A35176 /* Three20Network.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE735F7118499D300A35176 /* Three20Network.h */; settings = {ATTRIBUTES = (Public, ); }; };
6EE735FA118499FB00A35176 /* TTGlobalNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE735F9118499FB00A35176 /* TTGlobalNetwork.h */; settings = {ATTRIBUTES = (Public, ); }; };
6EE735FC11849A0C00A35176 /* TTGlobalNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE735FB11849A0C00A35176 /* TTGlobalNetwork.m */; };
@@ -45,7 +45,6 @@
6EE736C811849FAB00A35176 /* libThree20Core.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EE7366C11849C5800A35176 /* libThree20Core.a */; };
6EE739CD1184BAF600A35176 /* libThree20Network.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BEF31F3A0F352DF5000DE5D2 /* libThree20Network.a */; };
6EF96405118EFCF0003902E7 /* TTURLRequestQueueInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EF96404118EFCF0003902E7 /* TTURLRequestQueueInternal.h */; settings = {ATTRIBUTES = (Private, ); }; };
- E1F076A1130521F7007CA6F1 /* NetworkRequestTimeoutTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F076A0130521F7007CA6F1 /* NetworkRequestTimeoutTests.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -87,13 +86,13 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
- 662D819C126304DE005851C2 /* Xcode324iOS41TestSuiteWorkaround.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Xcode324iOS41TestSuiteWorkaround.m; path = ../UnitTests/Xcode324iOS41TestSuiteWorkaround.m; sourceTree = SOURCE_ROOT; };
664B29BC12848AA50008D569 /* TTErrorCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TTErrorCodes.h; path = Headers/TTErrorCodes.h; sourceTree = "<group>"; };
664B29C012848AAD0008D569 /* TTErrorCodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TTErrorCodes.m; path = Sources/TTErrorCodes.m; sourceTree = "<group>"; };
66F955AF126662E300BEF6F0 /* NetworkURLCacheTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NetworkURLCacheTests.m; path = UnitTests/NetworkURLCacheTests.m; sourceTree = "<group>"; };
66F955B71266647A00BEF6F0 /* both.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = both.png; path = UnitTests/Resources/both.png; sourceTree = "<group>"; };
66F955B81266647A00BEF6F0 /* both@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "both@2x.png"; path = "UnitTests/Resources/both@2x.png"; sourceTree = "<group>"; };
66F955B91266647A00BEF6F0 /* only@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "only@2x.png"; path = "UnitTests/Resources/only@2x.png"; sourceTree = "<group>"; };
+ 6D64C15814B7C9C100BF5E23 /* NetworkRequestTimeoutTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NetworkRequestTimeoutTests.m; path = UnitTests/NetworkRequestTimeoutTests.m; sourceTree = "<group>"; };
6E64541F1184BDF900F08CB1 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Project.xcconfig; path = Configurations/Project.xcconfig; sourceTree = "<group>"; };
6EE735F7118499D300A35176 /* Three20Network.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Three20Network.h; path = Headers/Three20Network.h; sourceTree = "<group>"; };
6EE735F9118499FB00A35176 /* TTGlobalNetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TTGlobalNetwork.h; path = Headers/TTGlobalNetwork.h; sourceTree = "<group>"; };
@@ -130,7 +129,6 @@
6EE7366611849C5800A35176 /* Three20Core.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Three20Core.xcodeproj; path = ../Three20Core/Three20Core.xcodeproj; sourceTree = SOURCE_ROOT; };
6EF96404118EFCF0003902E7 /* TTURLRequestQueueInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TTURLRequestQueueInternal.h; path = Headers/TTURLRequestQueueInternal.h; sourceTree = "<group>"; };
BEF31F3A0F352DF5000DE5D2 /* libThree20Network.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libThree20Network.a; sourceTree = BUILT_PRODUCTS_DIR; };
- E1F076A0130521F7007CA6F1 /* NetworkRequestTimeoutTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NetworkRequestTimeoutTests.m; sourceTree = "<group>"; };
EB9E6C6210B6A8F800DE563C /* NetworkUnitTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NetworkUnitTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
@@ -177,23 +175,14 @@
name = CustomTemplate;
sourceTree = "<group>";
};
- 662D819B126304DE005851C2 /* Xcode 3.2.4 Workaround */ = {
- isa = PBXGroup;
- children = (
- 662D819C126304DE005851C2 /* Xcode324iOS41TestSuiteWorkaround.m */,
- );
- name = "Xcode 3.2.4 Workaround";
- sourceTree = "<group>";
- };
6E08B274118282F700DA1579 /* Tests */ = {
isa = PBXGroup;
children = (
6EE7364611849AF200A35176 /* Resources */,
6E08B27D118282F700DA1579 /* Mocks */,
- 662D819B126304DE005851C2 /* Xcode 3.2.4 Workaround */,
6EE7363B11849AA100A35176 /* NetworkModelTests.m */,
+ 6D64C15814B7C9C100BF5E23 /* NetworkRequestTimeoutTests.m */,
66F955AF126662E300BEF6F0 /* NetworkURLCacheTests.m */,
- E1F076A0130521F7007CA6F1 /* NetworkRequestTimeoutTests.m */,
);
name = Tests;
sourceTree = "<group>";
@@ -436,9 +425,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Three20Network" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -548,9 +538,8 @@
files = (
6EE7363A11849A9800A35176 /* MockModelDelegate.m in Sources */,
6EE7363C11849AA100A35176 /* NetworkModelTests.m in Sources */,
- 662D819D126304DE005851C2 /* Xcode324iOS41TestSuiteWorkaround.m in Sources */,
66F955B0126662E300BEF6F0 /* NetworkURLCacheTests.m in Sources */,
- E1F076A1130521F7007CA6F1 /* NetworkRequestTimeoutTests.m in Sources */,
+ 6DB66E8614B90568003581DF /* NetworkRequestTimeoutTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -583,7 +572,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Internal;
@@ -596,7 +584,6 @@
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = iphoneos;
};
@@ -608,12 +595,10 @@
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Internal;
@@ -626,7 +611,6 @@
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -637,8 +621,6 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- PREBINDING = NO;
SDKROOT = iphoneos;
ZERO_LINK = NO;
};
@@ -652,7 +634,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -665,7 +646,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
@@ -676,12 +656,10 @@
buildSettings = {
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -692,10 +670,8 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
- PREBINDING = NO;
SDKROOT = iphoneos;
ZERO_LINK = NO;
};
View
15 src/Three20Network/NetworkRequestTimeoutTests.m → ...e20Network/UnitTests/NetworkRequestTimeoutTests.m
@@ -57,7 +57,7 @@ @implementation NetworkRequestTimeout
///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)testTTURLRequest_timeoutIntervalAccess {
STAssertEqualsWithAccuracy([[[[TTURLRequest alloc] init] autorelease] timeoutInterval],
- (NSTimeInterval)TTURLRequestUseDefaultTimeout,
+ (NSTimeInterval)TTURLRequestUseQueueTimeout,
0.1,
@"default timeout should be set on initialization");
@@ -124,4 +124,17 @@ - (void)testTTURLRequestQueue_timeoutIntervalUsage {
STAssertEqualsWithAccuracy([urlRequest timeoutInterval],48.5,0.1,@"wrong timeoutInterval set");
}
+- (void)testTTURLRequestQueue_useDefaultTimeoutForNilRequest_gh680 {
+ TTURLRequestQueue* queue = [[TTURLRequestQueue alloc] init];
+
+ NSURL* url = [NSURL URLWithString:@"http://three20.info"];
+
+ NSURLRequest* urlRequest = nil;
+
+ urlRequest = [queue createNSURLRequest:nil URL:url];
+
+ STAssertNotNil(urlRequest,@"request queue didn't return an NSURLRequest");
+ STAssertEqualsWithAccuracy([urlRequest timeoutInterval],kTimeout,0.1,@"wrong timeoutInterval set");
+}
+
@end
View
20 src/Three20Style/Sources/TTDefaultStyleSheet.m
@@ -743,7 +743,7 @@ - (UIColor*)highlightedTextColor {
///////////////////////////////////////////////////////////////////////////////////////////////////
- (UIColor*)backgroundTextColor {
- return [UIColor whiteColor];
+ return [UIColor clearColor];
}
@@ -826,6 +826,24 @@ - (UIColor*)searchTableSeparatorColor {
return [UIColor colorWithWhite:0.85 alpha:1];
}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (TTStyle*)tableReloadButton:(UIControlState)state {
+ if (state == UIControlStateHighlighted) {
+ return
+ [TTImageStyle styleWithImageURL:@"bundle://Three20.bundle/images/reloadButtonActive.png"
+ defaultImage:nil
+ contentMode:UIViewContentModeCenter
+ size:CGSizeMake(50,50) next:nil];
+
+ } else {
+ return
+ [TTImageStyle styleWithImageURL:@"bundle://Three20.bundle/images/reloadButton.png"
+ defaultImage:nil
+ contentMode:UIViewContentModeCenter
+ size:CGSizeMake(50,50) next:nil];
+ }
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
View
18 src/Three20Style/Three20Style.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 45;
+ objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
@@ -858,9 +858,10 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
+ LastUpgradeCheck = 0420;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Three20Style" */;
- compatibilityVersion = "Xcode 3.1";
+ compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -1090,7 +1091,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Internal;
@@ -1105,7 +1105,6 @@
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = iphoneos;
};
@@ -1122,13 +1121,11 @@
"\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
);
GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
WRAPPER_EXTENSION = octest;
};
@@ -1142,7 +1139,6 @@
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -1153,8 +1149,6 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
- PREBINDING = NO;
SDKROOT = iphoneos;
ZERO_LINK = NO;
};
@@ -1168,7 +1162,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Debug;
@@ -1181,7 +1174,6 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OTHER_LDFLAGS = "-ObjC";
- PREBINDING = NO;
SDKROOT = iphoneos;
};
name = Release;
@@ -1197,12 +1189,10 @@
"\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
);
GCC_DYNAMIC_NO_PIC = NO;
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
- PREBINDING = NO;
SDKROOT = iphoneos;
WRAPPER_EXTENSION = octest;
};
@@ -1219,11 +1209,9 @@
"\"$(SDKROOT)/Developer/Library/Frameworks\"",
"\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
);
- GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
HEADER_SEARCH_PATHS = .;
- PREBINDING = NO;
SDKROOT = iphoneos;
WRAPPER_EXTENSION = octest;
ZERO_LINK = NO;
View
15 src/Three20UI/Headers/TTErrorView.h
@@ -14,19 +14,30 @@
// limitations under the License.
//
-#import <Foundation/Foundation.h>
-#import <UIKit/UIKit.h>
+// UI
+#import "Three20UI/TTButton.h"
@interface TTErrorView : UIView {
UIImageView* _imageView;
UILabel* _titleView;
UILabel* _subtitleView;
+ TTButton* _reloadButton;
}
@property (nonatomic, retain) UIImage* image;
@property (nonatomic, copy) NSString* title;
@property (nonatomic, copy) NSString* subtitle;
+@property (nonatomic, copy) TTButton* reloadButton;
+
+/**
+ * creates an error view
+ */
- (id)initWithTitle:(NSString*)title subtitle:(NSString*)subtitle image:(UIImage*)image;
+/**
+ * adds a reload button into the error view
+ */
+- (void)addReloadButton;
+
@end
View
2  src/Three20UI/Headers/TTLauncherPersistenceMode.h
@@ -16,6 +16,6 @@
typedef enum {
TTLauncherPersistenceModeNone, // no persistence
- TTLauncherPersistenceModeAll, // persists all pages & buttons
+ TTLauncherPersistenceModeAll, // persists all pages and buttons
} TTLauncherPersistenceMode;
View
4 src/Three20UI/Headers/TTLauncherView.h
@@ -106,12 +106,12 @@
- (void)endEditing;
/**
- * Persists all pages & buttons to user defaults.
+ * Persists all pages &amp; buttons to user defaults.
*/
- (void)persistLauncherItems;
/**
- * Restores all pages & button from user defaults and returns if sucess
+ * Restores all pages &amp; button from user defaults and returns if sucess
*/
- (BOOL)restoreLauncherItems;
View
2  src/Three20UI/Headers/TTTabStrip.h
@@ -17,7 +17,7 @@
// UI
#import "Three20UI/TTTabBar.h"
-@interface TTTabStrip : TTTabBar {
+@interface TTTabStrip : TTTabBar <UIScrollViewDelegate> {
@private
TTView* _overflowLeft;
TTView* _overflowRight;
View
6 src/Three20UI/Headers/TTTableViewDataSource.h
@@ -54,6 +54,12 @@
- (NSString*)subtitleForEmpty;
+
+/**
+ * return YES to include a reload button in the TTErrorView.
+ */
+- (BOOL)reloadButtonForEmpty;
+
- (UIImage*)imageForError:(NSError*)error;
- (NSString*)titleForError:(NSError*)error;