Mhurd has uploaded a new change for review.
https://gerrit.wikimedia.org/r/99774
Change subject: Added section tocLevel to core data schema.
......................................................................
Added section tocLevel to core data schema.
Change-Id: I8e7df67e863208357f563196e62bb28aae37e239
---
M Wikipedia-iOS.xcodeproj/project.pbxproj
M
Wikipedia-iOS/Data/Model/ArticleData.xcdatamodeld/ArticleData.xcdatamodel/contents
M Wikipedia-iOS/Data/Model/Section.h
M Wikipedia-iOS/Data/Model/Section.m
M Wikipedia-iOS/View Controllers/WebView/WebViewController.m
M Wikipedia-iOSTests/ArticleDataModel.m
6 files changed, 28 insertions(+), 25 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/ios/wikipedia
refs/changes/74/99774/1
diff --git a/Wikipedia-iOS.xcodeproj/project.pbxproj
b/Wikipedia-iOS.xcodeproj/project.pbxproj
index f615b56..d16351e 100644
--- a/Wikipedia-iOS.xcodeproj/project.pbxproj
+++ b/Wikipedia-iOS.xcodeproj/project.pbxproj
@@ -25,8 +25,6 @@
04142A68184EC5AC006EF779 /* History.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04142A66184EC5AC006EF779 /* History.m */; };
04142A6F184EC5C9006EF779 /* Saved.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04142A6E184EC5C9006EF779 /* Saved.m */; };
04142A70184EC5C9006EF779 /* Saved.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04142A6E184EC5C9006EF779 /* Saved.m */; };
- 04142A73184EC5D4006EF779 /* Section.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04142A72184EC5D4006EF779 /* Section.m */; };
- 04142A74184EC5D4006EF779 /* Section.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04142A72184EC5D4006EF779 /* Section.m */; };
04142A77184EC5E1006EF779 /* Site.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04142A76184EC5E1006EF779 /* Site.m */; };
04142A78184EC5E1006EF779 /* Site.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04142A76184EC5E1006EF779 /* Site.m */; };
04142A7B184EC7B2006EF779 /* Image.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04142A7A184EC7B2006EF779 /* Image.m */; };
@@ -67,6 +65,8 @@
04478658185159700050563B /* history-random.png in Resources */
= {isa = PBXBuildFile; fileRef = 0447864D185159700050563B /* history-random.png
*/; };
04478659185159700050563B /* [email protected] in Resources
*/ = {isa = PBXBuildFile; fileRef = 0447864E185159700050563B /*
[email protected] */; };
0447865A185159700050563B /* [email protected] in Resources
*/ = {isa = PBXBuildFile; fileRef = 0447864E185159700050563B /*
[email protected] */; };
+ 0447866118528DCF0050563B /* Section.m in Sources */ = {isa =
PBXBuildFile; fileRef = 0447866018528DCF0050563B /* Section.m */; };
+ 0447866218528DCF0050563B /* Section.m in Sources */ = {isa =
PBXBuildFile; fileRef = 0447866018528DCF0050563B /* Section.m */; };
0466F44F183A30CC00EA1FD7 /* logo-search-placeholder.png in
Resources */ = {isa = PBXBuildFile; fileRef = 0466F44D183A30CC00EA1FD7 /*
logo-search-placeholder.png */; };
0466F450183A30CC00EA1FD7 /* [email protected] in
Resources */ = {isa = PBXBuildFile; fileRef = 0466F44E183A30CC00EA1FD7 /*
[email protected] */; };
04A47629183EF835009C0D82 /* w.png in Resources */ = {isa =
PBXBuildFile; fileRef = 04A47627183EF835009C0D82 /* w.png */; };
@@ -143,8 +143,6 @@
04142A66184EC5AC006EF779 /* History.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name
= History.m; path = "Wikipedia-iOS/Data/Model/History.m"; sourceTree =
SOURCE_ROOT; };
04142A6D184EC5C9006EF779 /* Saved.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name =
Saved.h; path = "Wikipedia-iOS/Data/Model/Saved.h"; sourceTree = SOURCE_ROOT; };
04142A6E184EC5C9006EF779 /* Saved.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name
= Saved.m; path = "Wikipedia-iOS/Data/Model/Saved.m"; sourceTree = SOURCE_ROOT;
};
- 04142A71184EC5D4006EF779 /* Section.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name =
Section.h; path = "Wikipedia-iOS/Data/Model/Section.h"; sourceTree =
SOURCE_ROOT; };
- 04142A72184EC5D4006EF779 /* Section.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name
= Section.m; path = "Wikipedia-iOS/Data/Model/Section.m"; sourceTree =
SOURCE_ROOT; };
04142A75184EC5E1006EF779 /* Site.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name =
Site.h; path = "Wikipedia-iOS/Data/Model/Site.h"; sourceTree = SOURCE_ROOT; };
04142A76184EC5E1006EF779 /* Site.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name
= Site.m; path = "Wikipedia-iOS/Data/Model/Site.m"; sourceTree = SOURCE_ROOT; };
04142A79184EC7B2006EF779 /* Image.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
Image.h; sourceTree = "<group>"; };
@@ -175,6 +173,8 @@
0447864C185159700050563B /* [email protected] */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path = "[email protected]";
sourceTree = "<group>"; };
0447864D185159700050563B /* history-random.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path = "history-random.png";
sourceTree = "<group>"; };
0447864E185159700050563B /* [email protected] */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path =
"[email protected]"; sourceTree = "<group>"; };
+ 0447865F18528DCF0050563B /* Section.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
Section.h; sourceTree = "<group>"; };
+ 0447866018528DCF0050563B /* Section.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= Section.m; sourceTree = "<group>"; };
0466F44D183A30CC00EA1FD7 /* logo-search-placeholder.png */ =
{isa = PBXFileReference; lastKnownFileType = image.png; path =
"logo-search-placeholder.png"; sourceTree = "<group>"; };
0466F44E183A30CC00EA1FD7 /* [email protected] */ =
{isa = PBXFileReference; lastKnownFileType = image.png; path =
"[email protected]"; sourceTree = "<group>"; };
04A47627183EF835009C0D82 /* w.png */ = {isa = PBXFileReference;
lastKnownFileType = image.png; path = w.png; sourceTree = "<group>"; };
@@ -367,12 +367,12 @@
isa = PBXGroup;
children = (
04FD6C78184EBFCD002CA02F /*
ArticleData.xcdatamodeld */,
+ 0447865F18528DCF0050563B /* Section.h */,
+ 0447866018528DCF0050563B /* Section.m */,
04142A79184EC7B2006EF779 /* Image.h */,
04142A7A184EC7B2006EF779 /* Image.m */,
04142A75184EC5E1006EF779 /* Site.h */,
04142A76184EC5E1006EF779 /* Site.m */,
- 04142A71184EC5D4006EF779 /* Section.h */,
- 04142A72184EC5D4006EF779 /* Section.m */,
04142A6D184EC5C9006EF779 /* Saved.h */,
04142A6E184EC5C9006EF779 /* Saved.m */,
04142A65184EC5AC006EF779 /* History.h */,
@@ -626,7 +626,6 @@
04FD6C7A184EBFCD002CA02F /*
ArticleData.xcdatamodeld in Sources */,
D4EE00B9182443FC0090790F /* MWPageTitle.m in
Sources */,
04142A8F184F974E006EF779 /* NSDate-Utilities.m
in Sources */,
- 04142A73184EC5D4006EF779 /* Section.m in
Sources */,
04142A77184EC5E1006EF779 /* Site.m in Sources
*/,
04142A5F184EC593006EF779 /* Domain.m in Sources
*/,
04C43AC2183442FC006C643B /*
NSURLRequest+DictionaryRequest.m in Sources */,
@@ -645,6 +644,7 @@
04142A63184EC5A0006EF779 /* GalleryImage.m in
Sources */,
04C43A9D183440B0006C643B /* MWCrumbyTest.m in
Sources */,
04478635185145090050563B /* SearchBarLogoView.m
in Sources */,
+ 0447866118528DCF0050563B /* Section.m in
Sources */,
D4991445181D51DE00E6073C /* main.m in Sources
*/,
04C43AC0183442FC006C643B /* NSString+Extras.m
in Sources */,
0447862F185145090050563B /* HistoryResultCell.m
in Sources */,
@@ -664,7 +664,6 @@
04478636185145090050563B /* SearchBarLogoView.m
in Sources */,
0447863A185145090050563B /* SearchResultCell.m
in Sources */,
04C43AC3183442FC006C643B /*
NSURLRequest+DictionaryRequest.m in Sources */,
- 04142A74184EC5D4006EF779 /* Section.m in
Sources */,
04142A54184EC55E006EF779 /* Article.m in
Sources */,
04C43A9E183440B0006C643B /* MWCrumbyTest.m in
Sources */,
04142A78184EC5E1006EF779 /* Site.m in Sources
*/,
@@ -673,6 +672,7 @@
04C43AA5183440C1006C643B /*
MWNetworkActivityIndicatorManager.m in Sources */,
04142A68184EC5AC006EF779 /* History.m in
Sources */,
04C43ABF183442FC006C643B /*
NSRunLoop+TimeOutAndFlag.m in Sources */,
+ 0447866218528DCF0050563B /* Section.m in
Sources */,
D4EE00BD1824459D0090790F /* PageTitleTests.m in
Sources */,
04C43AB61834423C006C643B /*
NetworkOpCrumbyTests.m in Sources */,
04478634185145090050563B /*
HistoryViewController.m in Sources */,
diff --git
a/Wikipedia-iOS/Data/Model/ArticleData.xcdatamodeld/ArticleData.xcdatamodel/contents
b/Wikipedia-iOS/Data/Model/ArticleData.xcdatamodeld/ArticleData.xcdatamodel/contents
index 4bc4a28..eee4916 100644
---
a/Wikipedia-iOS/Data/Model/ArticleData.xcdatamodeld/ArticleData.xcdatamodel/contents
+++
b/Wikipedia-iOS/Data/Model/ArticleData.xcdatamodeld/ArticleData.xcdatamodel/contents
@@ -56,8 +56,9 @@
<entity name="Section" representedClassName="Section" syncable="YES">
<attribute name="dateRetrieved" attributeType="Date" indexed="YES"
syncable="YES"/>
<attribute name="html" optional="YES" attributeType="String"
syncable="YES"/>
- <attribute name="index" optional="YES" attributeType="Integer 16"
defaultValueString="0" syncable="YES"/>
+ <attribute name="index" optional="YES" attributeType="Integer 16"
indexed="YES" syncable="YES"/>
<attribute name="title" optional="YES" attributeType="String"
syncable="YES"/>
+ <attribute name="tocLevel" optional="YES" attributeType="Integer 16"
defaultValueString="0" indexed="YES" syncable="YES"/>
<relationship name="article" maxCount="1" deletionRule="Nullify"
destinationEntity="Article" inverseName="section" inverseEntity="Article"
syncable="YES"/>
<relationship name="thumbnailImage" optional="YES" maxCount="1"
deletionRule="Nullify" destinationEntity="Image" inverseName="section"
inverseEntity="Image" syncable="YES"/>
</entity>
@@ -74,7 +75,7 @@
<element name="History" positionX="-317" positionY="-105" width="128"
height="103"/>
<element name="Image" positionX="-371" positionY="234" width="128"
height="208"/>
<element name="Saved" positionX="108" positionY="99" width="128"
height="73"/>
- <element name="Section" positionX="-551" positionY="63" width="128"
height="135"/>
+ <element name="Section" positionX="-551" positionY="63" width="128"
height="148"/>
<element name="Site" positionX="79" positionY="204" width="128"
height="75"/>
</elements>
</model>
\ No newline at end of file
diff --git a/Wikipedia-iOS/Data/Model/Section.h
b/Wikipedia-iOS/Data/Model/Section.h
index 0ecf01c..33077f7 100644
--- a/Wikipedia-iOS/Data/Model/Section.h
+++ b/Wikipedia-iOS/Data/Model/Section.h
@@ -2,7 +2,7 @@
// Section.h
// Wikipedia-iOS
//
-// Created by Monte Hurd on 12/3/13.
+// Created by Monte Hurd on 12/6/13.
// Copyright (c) 2013 Wikimedia Foundation. All rights reserved.
//
@@ -17,6 +17,7 @@
@property (nonatomic, retain) NSString * html;
@property (nonatomic, retain) NSNumber * index;
@property (nonatomic, retain) NSString * title;
+@property (nonatomic, retain) NSNumber * tocLevel;
@property (nonatomic, retain) Article *article;
@property (nonatomic, retain) Image *thumbnailImage;
diff --git a/Wikipedia-iOS/Data/Model/Section.m
b/Wikipedia-iOS/Data/Model/Section.m
index 4b2899e..0bb4199 100644
--- a/Wikipedia-iOS/Data/Model/Section.m
+++ b/Wikipedia-iOS/Data/Model/Section.m
@@ -2,7 +2,7 @@
// Section.m
// Wikipedia-iOS
//
-// Created by Monte Hurd on 12/3/13.
+// Created by Monte Hurd on 12/6/13.
// Copyright (c) 2013 Wikimedia Foundation. All rights reserved.
//
@@ -17,6 +17,7 @@
@dynamic html;
@dynamic index;
@dynamic title;
+@dynamic tocLevel;
@dynamic article;
@dynamic thumbnailImage;
diff --git a/Wikipedia-iOS/View Controllers/WebView/WebViewController.m
b/Wikipedia-iOS/View Controllers/WebView/WebViewController.m
index c0127fd..4949d28 100644
--- a/Wikipedia-iOS/View Controllers/WebView/WebViewController.m
+++ b/Wikipedia-iOS/View Controllers/WebView/WebViewController.m
@@ -828,24 +828,21 @@
article.lastScrollLocation = @0.0f;
// Get article sections text (faster joining array elements than
appending a string)
- NSDictionary *sections =
weakOp.jsonRetrieved[@"mobileview"][@"sections"];
- NSMutableArray *sectionText = [@[] mutableCopy];
- for (NSDictionary *section in sections) {
- if ([section valueForKey:@"text"]){
- [sectionText addObject:section[@"text"]];
+ NSArray *sections = weakOp.jsonRetrieved[@"mobileview"][@"sections"];
+ __block NSDictionary *sectionZeroDict = @{};
+ [sections enumerateObjectsUsingBlock:^(NSDictionary *dict, NSUInteger
idx, BOOL *stop){
+ if ([dict[@"id"] isEqual: @0]) {
+ sectionZeroDict = dict;
+ *stop = YES;
}
- }
-
- // Join article sections text
- NSString *joint = @""; //@"<div
style=\"background-color:#ffffff;height:55px;\"></div>";
- NSString *htmlStr = [sectionText componentsJoinedByString:joint];
+ }];
// Add sections for article
Section *section0 = [NSEntityDescription
insertNewObjectForEntityForName:@"Section" inManagedObjectContext:dataContext_];
section0.index = @0;
section0.title = @"";
section0.dateRetrieved = [NSDate date];
- section0.html = htmlStr;
+ section0.html = sectionZeroDict[@"text"];
article.section = [NSSet setWithObjects:section0, nil];
// Add history for article
@@ -875,7 +872,7 @@
// Clear out the loading message at the top of page
[bridge_ sendMessage:@"clear" withPayload:@{}];
// Add the first section html
- [bridge_ sendMessage:@"append" withPayload:@{@"html": htmlStr}];
+ [bridge_ sendMessage:@"append" withPayload:@{@"html":
sectionZeroDict[@"text"]}];
// Add a loading message beneath the first section so user can see
more is on the way
[bridge_ sendMessage: @"append"
withPayload: @{@"html": [NSString stringWithFormat:@"<div
id='loadingMessage'>%@</div>", self.loadingSectionsRemainingMessage]}];
@@ -915,7 +912,7 @@
NSDictionary *sections =
weakRemainingSectionsOp.jsonRetrieved[@"mobileview"][@"sections"];
NSMutableArray *sectionText = [@[] mutableCopy];
for (NSDictionary *section in sections) {
- if ([section valueForKey:@"text"]){
+ if (![section[@"id"] isEqual: @0]) {
[sectionText addObject:section[@"text"]];
// Add sections for article
@@ -923,6 +920,7 @@
thisSection.index = section[@"id"];
thisSection.title = section[@"line"];
thisSection.html = section[@"text"];
+ thisSection.tocLevel = section[@"toclevel"];
thisSection.dateRetrieved = [NSDate date];
[article addSectionObject:thisSection];
}
diff --git a/Wikipedia-iOSTests/ArticleDataModel.m
b/Wikipedia-iOSTests/ArticleDataModel.m
index dca8b29..8756b5f 100644
--- a/Wikipedia-iOSTests/ArticleDataModel.m
+++ b/Wikipedia-iOSTests/ArticleDataModel.m
@@ -81,12 +81,14 @@
section0.index = @0;
section0.title = @"Potato chip section 0 title";
section0.html = @"<b>Potato Chips section 0 html!</b>";
+ section0.tocLevel = @1;
section0.dateRetrieved = [NSDate date];
Section *section1 = [NSEntityDescription
insertNewObjectForEntityForName:@"Section" inManagedObjectContext:dataContext];
section1.index = @1;
section1.title = @"Potato chip section 1 title";
section1.html = @"<b>Potato Chips section 1 html!</b>";
+ section1.tocLevel = @1;
section1.dateRetrieved = [NSDate date];
article.section = [NSSet setWithObjects:section0, section1, nil];
--
To view, visit https://gerrit.wikimedia.org/r/99774
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8e7df67e863208357f563196e62bb28aae37e239
Gerrit-PatchSet: 1
Gerrit-Project: apps/ios/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mhurd <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits