Brion VIBBER has submitted this change and it was merged.
Change subject: Change "Credits" to "About".
......................................................................
Change "Credits" to "About".
Includes version info and other items from Android version.
Updated doc type index.html to strict.
Updated doc types to not include outdated version info.
Re-added "repositories" section to About page.
Change-Id: I9914dd0c56af25d7ecf9cbeb25245b939540a0a4
---
M Wikipedia.xcodeproj/project.pbxproj
M scripts/icon-svgs-to-pngs.sh
M wikipedia/Base.lproj/Main_iPhone.storyboard
A wikipedia/Categories/UIWebView+LoadAssetsHtml.h
A wikipedia/Categories/UIWebView+LoadAssetsHtml.m
A wikipedia/Images.xcassets/WMFLogo_60.imageset/Contents.json
A wikipedia/Images.xcassets/WMFLogo_60.imageset/wmf_logo.svg
A wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_120.png
A wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_180.png
A wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_60.png
A wikipedia/View Controllers/About/AboutViewController.h
A wikipedia/View Controllers/About/AboutViewController.m
A wikipedia/View Controllers/About/AboutViewController.plist
M wikipedia/View Controllers/Navigation/Secondary/SecondaryMenuViewController.m
A wikipedia/assets/about.html
M wikipedia/assets/abusefilter.html
A wikipedia/assets/images/wmflogo_120.png
A wikipedia/assets/images/wmflogo_180.png
A wikipedia/assets/images/wmflogo_60.png
M wikipedia/assets/index.html
M wikipedia/assets/preview.html
M wikipedia/en.lproj/Localizable.strings
M wikipedia/mw-bridge/CommunicationBridge.m
M wikipedia/qqq.lproj/Localizable.strings
M www/Gruntfile.js
A www/about.html
M www/abusefilter.html
A www/images/wmflogo_120.png
A www/images/wmflogo_180.png
A www/images/wmflogo_60.png
M www/index.html
M www/preview.html
32 files changed, 715 insertions(+), 35 deletions(-)
Approvals:
Brion VIBBER: Looks good to me, approved
jenkins-bot: Verified
diff --git a/Wikipedia.xcodeproj/project.pbxproj
b/Wikipedia.xcodeproj/project.pbxproj
index db352b1..ad429ca 100644
--- a/Wikipedia.xcodeproj/project.pbxproj
+++ b/Wikipedia.xcodeproj/project.pbxproj
@@ -46,6 +46,7 @@
042B3996192EAEEA0066B270 /* ShareMenuSavePageActivity.m in
Sources */ = {isa = PBXBuildFile; fileRef = 042B3995192EAEEA0066B270 /*
ShareMenuSavePageActivity.m */; };
0433542218A023FE009305F0 /* UIViewController+HideKeyboard.m in
Sources */ = {isa = PBXBuildFile; fileRef = 0433542118A023FE009305F0 /*
UIViewController+HideKeyboard.m */; };
0433542618A093C5009305F0 /* UIView+RemoveConstraints.m in
Sources */ = {isa = PBXBuildFile; fileRef = 0433542518A093C5009305F0 /*
UIView+RemoveConstraints.m */; };
+ 0439317619FB092600386E8F /* UIWebView+LoadAssetsHtml.m in
Sources */ = {isa = PBXBuildFile; fileRef = 0439317519FB092600386E8F /*
UIWebView+LoadAssetsHtml.m */; };
043DAC4B1901C3EE001CD17C /* CreditsViewController.m in Sources
*/ = {isa = PBXBuildFile; fileRef = 043DAC4A1901C3EE001CD17C /*
CreditsViewController.m */; };
043F18E118D9691D00D8489A /* TopActionSheetLabel.m in Sources */
= {isa = PBXBuildFile; fileRef = 043F18DC18D9691D00D8489A /*
TopActionSheetLabel.m */; };
043F18E518D9691D00D8489A /*
UINavigationController+TopActionSheet.m in Sources */ = {isa = PBXBuildFile;
fileRef = 043F18E018D9691D00D8489A /* UINavigationController+TopActionSheet.m
*/; };
@@ -66,6 +67,7 @@
04530AF81935C07500022512 /* ModalContentViewController.m in
Sources */ = {isa = PBXBuildFile; fileRef = 04530AF71935C07500022512 /*
ModalContentViewController.m */; };
04530AFB1935C2B500022512 /* EmptySegue.m in Sources */ = {isa =
PBXBuildFile; fileRef = 04530AFA1935C2B500022512 /* EmptySegue.m */; };
045A9F0D18F6090E0057EA85 /* assets in Resources */ = {isa =
PBXBuildFile; fileRef = 045A9F0C18F6090E0057EA85 /* assets */; };
+ 045D872119FAD2FA0035C1F9 /* AboutViewController.m in Sources */
= {isa = PBXBuildFile; fileRef = 045D872019FAD2FA0035C1F9 /*
AboutViewController.m */; };
045EFF1A19A25FEB00D0EDBB /* logo-placeholder-search.png in
Resources */ = {isa = PBXBuildFile; fileRef = 045EFF1819A25FEB00D0EDBB /*
logo-placeholder-search.png */; };
045EFF1B19A25FEB00D0EDBB /* [email protected] in
Resources */ = {isa = PBXBuildFile; fileRef = 045EFF1919A25FEB00D0EDBB /*
[email protected] */; };
0460F8DC19B0F932001BC59B /* CenteredPathView.m in Sources */ =
{isa = PBXBuildFile; fileRef = 0460F8DB19B0F932001BC59B /* CenteredPathView.m
*/; };
@@ -81,6 +83,7 @@
047ED63918C13E4900442BE3 /* PreviewWebView.m in Sources */ =
{isa = PBXBuildFile; fileRef = 047ED63818C13E4900442BE3 /* PreviewWebView.m */;
};
047FF5471889078C009DB293 /* Image+Convenience.m in Sources */ =
{isa = PBXBuildFile; fileRef = 047FF5461889078C009DB293 /* Image+Convenience.m
*/; };
04821CD119895EDC007558F6 /* ReferenceGradientView.m in Sources
*/ = {isa = PBXBuildFile; fileRef = 04821CD019895EDC007558F6 /*
ReferenceGradientView.m */; };
+ 0484411E19FF15AF00FD26C5 /* AboutViewController.plist in
Resources */ = {isa = PBXBuildFile; fileRef = 0484411D19FF15AF00FD26C5 /*
AboutViewController.plist */; };
0484E3DE19D9D19B0085D18D /* UIView+ConstraintsScale.m in
Sources */ = {isa = PBXBuildFile; fileRef = 0484E3DD19D9D19B0085D18D /*
UIView+ConstraintsScale.m */; };
0485FECF1994D5AE00141361 /* NearbyResultCell.xib in Resources
*/ = {isa = PBXBuildFile; fileRef = 0485FECD1994D5AE00141361 /*
NearbyResultCell.xib */; };
0487041419F7683300B7D307 /* Cocoapods Notes.txt in Resources */
= {isa = PBXBuildFile; fileRef = 0487041319F7683300B7D307 /* Cocoapods
Notes.txt */; };
@@ -312,6 +315,8 @@
0433542118A023FE009305F0 /* UIViewController+HideKeyboard.m */
= {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; path = "UIViewController+HideKeyboard.m"; sourceTree =
"<group>"; };
0433542418A093C5009305F0 /* UIView+RemoveConstraints.h */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = "UIView+RemoveConstraints.h"; sourceTree = "<group>"; };
0433542518A093C5009305F0 /* UIView+RemoveConstraints.m */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; path = "UIView+RemoveConstraints.m"; sourceTree = "<group>";
};
+ 0439317419FB092600386E8F /* UIWebView+LoadAssetsHtml.h */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = "UIWebView+LoadAssetsHtml.h"; sourceTree = "<group>"; };
+ 0439317519FB092600386E8F /* UIWebView+LoadAssetsHtml.m */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; path = "UIWebView+LoadAssetsHtml.m"; sourceTree = "<group>";
};
043DAC491901C3EE001CD17C /* CreditsViewController.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
CreditsViewController.h; sourceTree = "<group>"; };
043DAC4A1901C3EE001CD17C /* CreditsViewController.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= CreditsViewController.m; sourceTree = "<group>"; };
043F18DB18D9691D00D8489A /* TopActionSheetLabel.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
TopActionSheetLabel.h; sourceTree = "<group>"; };
@@ -352,6 +357,8 @@
04530AF91935C2B500022512 /* EmptySegue.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
EmptySegue.h; sourceTree = "<group>"; };
04530AFA1935C2B500022512 /* EmptySegue.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= EmptySegue.m; sourceTree = "<group>"; };
045A9F0C18F6090E0057EA85 /* assets */ = {isa =
PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree =
"<group>"; };
+ 045D871F19FAD2FA0035C1F9 /* AboutViewController.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
AboutViewController.h; sourceTree = "<group>"; };
+ 045D872019FAD2FA0035C1F9 /* AboutViewController.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= AboutViewController.m; sourceTree = "<group>"; };
045EFF1819A25FEB00D0EDBB /* logo-placeholder-search.png */ =
{isa = PBXFileReference; lastKnownFileType = image.png; path =
"logo-placeholder-search.png"; sourceTree = "<group>"; };
045EFF1919A25FEB00D0EDBB /* [email protected] */ =
{isa = PBXFileReference; lastKnownFileType = image.png; path =
"[email protected]"; sourceTree = "<group>"; };
0460F8DA19B0F932001BC59B /* CenteredPathView.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
CenteredPathView.h; sourceTree = "<group>"; };
@@ -381,6 +388,7 @@
047FF5461889078C009DB293 /* Image+Convenience.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= "Image+Convenience.m"; sourceTree = "<group>"; };
04821CCF19895EDC007558F6 /* ReferenceGradientView.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
ReferenceGradientView.h; sourceTree = "<group>"; };
04821CD019895EDC007558F6 /* ReferenceGradientView.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= ReferenceGradientView.m; sourceTree = "<group>"; };
+ 0484411D19FF15AF00FD26C5 /* AboutViewController.plist */ = {isa
= PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path
= AboutViewController.plist; sourceTree = "<group>"; };
0484E3DC19D9D19B0085D18D /* UIView+ConstraintsScale.h */ = {isa
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path
= "UIView+ConstraintsScale.h"; sourceTree = "<group>"; };
0484E3DD19D9D19B0085D18D /* UIView+ConstraintsScale.m */ = {isa
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc;
path = "UIView+ConstraintsScale.m"; sourceTree = "<group>"; };
0485FECD1994D5AE00141361 /* NearbyResultCell.xib */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path =
NearbyResultCell.xib; sourceTree = "<group>"; };
@@ -1040,6 +1048,16 @@
path = ModalOverlay;
sourceTree = "<group>";
};
+ 045D871D19FAD2D00035C1F9 /* About */ = {
+ isa = PBXGroup;
+ children = (
+ 045D871F19FAD2FA0035C1F9 /*
AboutViewController.h */,
+ 045D872019FAD2FA0035C1F9 /*
AboutViewController.m */,
+ 0484411D19FF15AF00FD26C5 /*
AboutViewController.plist */,
+ );
+ path = About;
+ sourceTree = "<group>";
+ };
0460F8D919B0F90E001BC59B /* CenteredPathView */ = {
isa = PBXGroup;
children = (
@@ -1283,6 +1301,7 @@
04C43AB0183441A4006C643B /* View Controllers */ = {
isa = PBXGroup;
children = (
+ 045D871D19FAD2D00035C1F9 /* About */,
04A97E8418B81D440046B166 /* AccountCreation */,
04B7B9BA18B5569600A63551 /* Captcha */,
043DAC481901C3D2001CD17C /* Credits */,
@@ -1378,6 +1397,8 @@
04F0E2E9186EDC1A00468738 /*
UIWebView+ElementLocation.m */,
04B6924E18E77B2A00F88D8A /*
UIWebView+HideScrollGradient.h */,
04B6924F18E77B2A00F88D8A /*
UIWebView+HideScrollGradient.m */,
+ 0439317419FB092600386E8F /*
UIWebView+LoadAssetsHtml.h */,
+ 0439317519FB092600386E8F /*
UIWebView+LoadAssetsHtml.m */,
04D149D818877343006B4104 /* Alerts */,
);
path = Categories;
@@ -1684,11 +1705,11 @@
048702AE19F75B0800B7D307 /* ShellScript */,
D4991431181D51DE00E6073C /* Sources */,
D4991432181D51DE00E6073C /* Frameworks */,
+ 046F268119C387BD00D7ACB3 /* ShellScript */,
04272E7619404CDF00CC682F /* ShellScript */,
04272E75193FF7F000CC682F /* ShellScript */,
D4C16A621970946900CD91AD /* ShellScript */,
D4C16A631970949A00CD91AD /* ShellScript */,
- 046F268119C387BD00D7ACB3 /* ShellScript */,
D4991433181D51DE00E6073C /* Resources */,
);
buildRules = (
@@ -1875,6 +1896,7 @@
D47FEE2019C8CB0000B998C8 /* (null) in Resources
*/,
04123638189C29EA00E0CF8E /*
[email protected] in Resources */,
04C91CEF195520990035ED1B /*
[email protected] in Resources */,
+ 0484411E19FF15AF00FD26C5 /*
AboutViewController.plist in Resources */,
04C91CEE195520990035ED1B /*
logo-onboarding-subtitle.png in Resources */,
045EFF1A19A25FEB00D0EDBB /*
logo-placeholder-search.png in Resources */,
04224502197F5E09005DD0BF /* BulletedLabel.xib
in Resources */,
@@ -1921,6 +1943,7 @@
"$(SRCROOT)/wikipedia/Images.xcassets/AppIcon.appiconset/icon.svg",
"$(SRCROOT)/wikipedia/Images.xcassets/RecentPagesEmpty.imageset/recent.svg",
"$(SRCROOT)/wikipedia/Images.xcassets/SavedPagesEmpty.imageset/savedpages.svg",
+
"$(SRCROOT)/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmf_logo.svg",
);
outputPaths = (
);
@@ -1988,6 +2011,7 @@
042A5B36192591520095E172 /* TopMenuTextField.m
in Sources */,
04AE1C701891B302002D5487 /* NSObject+Extras.m
in Sources */,
04B7B9BD18B5570E00A63551 /*
CaptchaViewController.m in Sources */,
+ 045D872119FAD2FA0035C1F9 /*
AboutViewController.m in Sources */,
04C43AA4183440C1006C643B /*
MWNetworkActivityIndicatorManager.m in Sources */,
0447863D185145090050563B /* WebViewController.m
in Sources */,
0487048A19F8262600B7D307 /*
PreviewHtmlFetcher.m in Sources */,
@@ -2094,6 +2118,7 @@
04C9509D19EF02980013F3C0 /* EventLogger.m in
Sources */,
D4E8A8A719084F1300DA4765 /* SQLiteHelper.m in
Sources */,
04F39590186CF80100B0D6FC /* TOCViewController.m
in Sources */,
+ 0439317619FB092600386E8F /*
UIWebView+LoadAssetsHtml.m in Sources */,
04B91AA718E34BBC00FFAA1C /*
UIView+TemporaryAnimatedXF.m in Sources */,
04224500197F5E09005DD0BF /* AbuseFilterAlert.m
in Sources */,
D4B0AE0819366A0A00F0AC90 /*
CreateAccountFunnel.m in Sources */,
diff --git a/scripts/icon-svgs-to-pngs.sh b/scripts/icon-svgs-to-pngs.sh
index 2ba0f67..e4bf258 100755
--- a/scripts/icon-svgs-to-pngs.sh
+++ b/scripts/icon-svgs-to-pngs.sh
@@ -7,3 +7,7 @@
ruby -e '[120,240,360].each { |x|
`/Applications/Inkscape.app/Contents/Resources/bin/inkscape --export-png
"wikipedia/Images.xcassets/RecentPagesEmpty.imageset/recent#{x}.png" -w #{x}
'"$SCRIPT_INPUT_FILE_1"'` }'
ruby -e '[120,240,360].each { |x|
`/Applications/Inkscape.app/Contents/Resources/bin/inkscape --export-png
"wikipedia/Images.xcassets/SavedPagesEmpty.imageset/savedpages#{x}.png" -w #{x}
'"$SCRIPT_INPUT_FILE_2"'` }'
+
+ruby -e '[60,120,180].each { |x|
`/Applications/Inkscape.app/Contents/Resources/bin/inkscape --export-png
"wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_#{x}.png" -w #{x}
'"$SCRIPT_INPUT_FILE_3"'` }'
+
+ruby -e '[60,120,180].each { |x|
`/Applications/Inkscape.app/Contents/Resources/bin/inkscape --export-png
"www/images/wmflogo_#{x}.png" -w #{x} '"$SCRIPT_INPUT_FILE_3"'` }'
diff --git a/wikipedia/Base.lproj/Main_iPhone.storyboard
b/wikipedia/Base.lproj/Main_iPhone.storyboard
index e65cdfd..a5bbbbc 100644
--- a/wikipedia/Base.lproj/Main_iPhone.storyboard
+++ b/wikipedia/Base.lproj/Main_iPhone.storyboard
@@ -5,6 +5,7 @@
<development version="5100" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version="6244"/>
<capability name="Alignment constraints with different attributes"
minToolsVersion="5.1"/>
+ <capability name="Constraints to layout margins"
minToolsVersion="6.0"/>
</dependencies>
<scenes>
<!--Languages View Controller-->
@@ -113,7 +114,7 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder"
id="I47-Yh-yr4" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
- <point key="canvasLocation" x="324" y="251"/>
+ <point key="canvasLocation" x="522" y="-162"/>
</scene>
<!--Page History View Controller-->
<scene sceneID="nqw-r1-g0T">
@@ -1021,7 +1022,7 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder"
id="Lwh-ga-zh6" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
- <point key="canvasLocation" x="111" y="-1469"/>
+ <point key="canvasLocation" x="111" y="-899"/>
</scene>
<!--Search Results Controller-->
<scene sceneID="Jmf-xS-W4M">
@@ -1060,7 +1061,7 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder"
id="QYs-yc-yzW" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
- <point key="canvasLocation" x="629" y="-164"/>
+ <point key="canvasLocation" x="941" y="-130"/>
</scene>
<!--Web View Controller-->
<scene sceneID="ufC-wZ-h7g">
@@ -1396,7 +1397,7 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder"
id="mef-6q-1qK" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
- <point key="canvasLocation" x="-585" y="-3251"/>
+ <point key="canvasLocation" x="111" y="-1530"/>
</scene>
<!--ReferenceVC-->
<scene sceneID="oNi-7F-FeN">
@@ -1682,7 +1683,7 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder"
id="heC-Be-Fgw" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
- <point key="canvasLocation" x="478" y="501"/>
+ <point key="canvasLocation" x="89" y="250"/>
</scene>
<!--Center Nav Controller-->
<scene sceneID="dor-Wk-JQd">
@@ -1764,6 +1765,39 @@
</objects>
<point key="canvasLocation" x="111" y="-6277"/>
</scene>
+ <!--About View Controller-->
+ <scene sceneID="1T4-cp-JUc">
+ <objects>
+ <viewController restorationIdentifier="AboutViewController"
storyboardIdentifier="AboutViewController" id="XBx-HT-7Nb"
customClass="AboutViewController" sceneMemberID="viewController">
+ <layoutGuides>
+ <viewControllerLayoutGuide type="top" id="6Pt-o7-LWr"/>
+ <viewControllerLayoutGuide type="bottom"
id="bm9-VB-zc0"/>
+ </layoutGuides>
+ <view key="view" contentMode="scaleToFill" id="0dn-de-ub8">
+ <rect key="frame" x="0.0" y="0.0" width="320"
height="568"/>
+ <autoresizingMask key="autoresizingMask"
widthSizable="YES" heightSizable="YES"/>
+ <subviews>
+ <webView clipsSubviews="YES"
contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO"
id="RuO-Uu-LzH">
+ <rect key="frame" x="0.0" y="0.0" width="320"
height="568"/>
+ <color key="backgroundColor" white="1"
alpha="1" colorSpace="calibratedWhite"/>
+ </webView>
+ </subviews>
+ <color key="backgroundColor" white="1" alpha="1"
colorSpace="calibratedWhite"/>
+ <constraints>
+ <constraint firstItem="RuO-Uu-LzH"
firstAttribute="bottom" secondItem="0dn-de-ub8" secondAttribute="bottomMargin"
id="B5e-Py-Wnj"/>
+ <constraint firstItem="RuO-Uu-LzH"
firstAttribute="leading" secondItem="0dn-de-ub8" secondAttribute="leading"
id="RhE-aT-0we"/>
+ <constraint firstItem="RuO-Uu-LzH"
firstAttribute="top" secondItem="0dn-de-ub8" secondAttribute="topMargin"
id="Ui3-Iv-6ZS"/>
+ <constraint firstAttribute="trailing"
secondItem="RuO-Uu-LzH" secondAttribute="trailing" id="m6K-i2-U2o"/>
+ </constraints>
+ </view>
+ <connections>
+ <outlet property="webView" destination="RuO-Uu-LzH"
id="wmz-k2-G2w"/>
+ </connections>
+ </viewController>
+ <placeholder placeholderIdentifier="IBFirstResponder"
id="MUa-PK-2vN" userLabel="First Responder" sceneMemberID="firstResponder"/>
+ </objects>
+ <point key="canvasLocation" x="-585" y="-3155"/>
+ </scene>
<!--Modal Content View Controller-->
<scene sceneID="ucp-TA-lD3">
<objects>
@@ -1790,6 +1824,7 @@
<segue destination="Sst-9G-sfn" kind="custom"
identifier="modal_segue_show_page_history" customClass="EmptySegue"
id="XIR-ro-Nuv"/>
<segue destination="vqp-1K-wjM" kind="custom"
identifier="modal_segue_show_languages" customClass="EmptySegue"
id="4tK-6e-A2j"/>
<segue destination="O3D-bU-RYB" kind="custom"
identifier="modal_segue_show_nearby" customClass="EmptySegue" id="Npp-Oj-MXW"/>
+ <segue destination="XBx-HT-7Nb" kind="custom"
identifier="modal_segue_show_about" customClass="EmptySegue" id="4K1-vh-0Ac"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder"
id="41a-r2-anV" userLabel="First Responder" sceneMemberID="firstResponder"/>
diff --git a/wikipedia/Categories/UIWebView+LoadAssetsHtml.h
b/wikipedia/Categories/UIWebView+LoadAssetsHtml.h
new file mode 100644
index 0000000..6db5425
--- /dev/null
+++ b/wikipedia/Categories/UIWebView+LoadAssetsHtml.h
@@ -0,0 +1,11 @@
+// Created by Monte Hurd on 10/24/14.
+// Copyright (c) 2013 Wikimedia Foundation. Provided under MIT-style license;
please copy and modify!
+
+#import <UIKit/UIKit.h>
+
+@interface UIWebView (LoadAssetsHtml)
+
+// Loads contents of fileName. Assumes the file is in the "assets" folder.
+-(void)loadHTMLFromAssetsFile:(NSString *)fileName;
+
+@end
diff --git a/wikipedia/Categories/UIWebView+LoadAssetsHtml.m
b/wikipedia/Categories/UIWebView+LoadAssetsHtml.m
new file mode 100644
index 0000000..3938158
--- /dev/null
+++ b/wikipedia/Categories/UIWebView+LoadAssetsHtml.m
@@ -0,0 +1,19 @@
+// Created by Monte Hurd on 10/24/14.
+// Copyright (c) 2013 Wikimedia Foundation. Provided under MIT-style license;
please copy and modify!
+
+#import "UIWebView+LoadAssetsHtml.h"
+
+@implementation UIWebView (LoadAssetsHtml)
+
+-(void)loadHTMLFromAssetsFile:(NSString *)fileName
+{
+ NSArray *documentsPath = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
+ NSString *assetsPath = [[documentsPath firstObject]
stringByAppendingPathComponent:@"assets"];
+ NSString *indexHTMLFilePath = [assetsPath
stringByAppendingPathComponent:fileName];
+ NSString *encodedAssetsPath = [assetsPath
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+ NSURL *baseURL = [NSURL URLWithString:[NSString
stringWithFormat:@"file:///%@/", encodedAssetsPath]];
+ NSData *fileData = [[NSFileManager defaultManager] contentsAtPath:
indexHTMLFilePath];
+ [self loadData:fileData MIMEType:@"text/html" textEncodingName:@"UTF-8"
baseURL:baseURL];
+}
+
+@end
diff --git a/wikipedia/Images.xcassets/WMFLogo_60.imageset/Contents.json
b/wikipedia/Images.xcassets/WMFLogo_60.imageset/Contents.json
new file mode 100644
index 0000000..66256b5
--- /dev/null
+++ b/wikipedia/Images.xcassets/WMFLogo_60.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "scale" : "1x",
+ "filename" : "wmflogo_60.png"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x",
+ "filename" : "wmflogo_120.png"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x",
+ "filename" : "wmflogo_180.png"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+}
\ No newline at end of file
diff --git a/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmf_logo.svg
b/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmf_logo.svg
new file mode 100644
index 0000000..e7ef65e
--- /dev/null
+++ b/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmf_logo.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" standalone="yes"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
+ id="Wikimedia logo"
+ viewBox="-599 -599 1198 1198" width="1024" height="1024">
+<defs>
+ <clipPath id="mask">
+ <path d="M 47.5,-87.5 v 425 h -95 v -425 l -552,-552 v 1250 h 1199 v -1250
z" />
+ </clipPath>
+</defs>
+<g clip-path="url(#mask)">
+ <circle id="green parts" fill="#396" r="336.5"/>
+ <circle id="blue arc" fill="none" stroke="#069" r="480.25"
stroke-width="135.5" />
+</g>
+<circle fill="#900" cy="-379.5" r="184.5" id="red circle"/>
+</svg>
diff --git a/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_120.png
b/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_120.png
new file mode 100644
index 0000000..bcf48aa
--- /dev/null
+++ b/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_120.png
Binary files differ
diff --git a/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_180.png
b/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_180.png
new file mode 100644
index 0000000..d525463
--- /dev/null
+++ b/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_180.png
Binary files differ
diff --git a/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_60.png
b/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_60.png
new file mode 100644
index 0000000..ba64109
--- /dev/null
+++ b/wikipedia/Images.xcassets/WMFLogo_60.imageset/wmflogo_60.png
Binary files differ
diff --git a/wikipedia/View Controllers/About/AboutViewController.h
b/wikipedia/View Controllers/About/AboutViewController.h
new file mode 100644
index 0000000..e03aa82
--- /dev/null
+++ b/wikipedia/View Controllers/About/AboutViewController.h
@@ -0,0 +1,16 @@
+// Created by Monte Hurd on 10/24/14.
+// Copyright (c) 2013 Wikimedia Foundation. Provided under MIT-style license;
please copy and modify!
+
+#import <UIKit/UIKit.h>
+#import "TopMenuViewController.h"
+
+@interface AboutViewController : UIViewController <UIWebViewDelegate>
+
+@property (weak, nonatomic) IBOutlet UIWebView *webView;
+
+@property (nonatomic) NavBarMode navBarMode;
+
+@property (weak, nonatomic) id truePresentingVC;
+@property (weak, nonatomic) TopMenuViewController *topMenuViewController;
+
+@end
diff --git a/wikipedia/View Controllers/About/AboutViewController.m
b/wikipedia/View Controllers/About/AboutViewController.m
new file mode 100644
index 0000000..bdee482
--- /dev/null
+++ b/wikipedia/View Controllers/About/AboutViewController.m
@@ -0,0 +1,216 @@
+// Created by Monte Hurd on 10/24/14.
+// Copyright (c) 2013 Wikimedia Foundation. Provided under MIT-style license;
please copy and modify!
+
+#import "AboutViewController.h"
+#import "WikipediaAppUtils.h"
+#import "UIViewController+ModalPop.h"
+#import "UIWebView+LoadAssetsHtml.h"
+#import "Defines.h"
+
+@interface AboutViewController ()
+
+@property (nonatomic, retain) NSDictionary *data;
+@property (nonatomic, retain, readonly) NSString *contributors;
+@property (nonatomic, retain, readonly) NSString *repositoryLinks;
+@property (nonatomic, retain, readonly) NSString *libraryLinks;
+@property (nonatomic, retain, readonly) NSDictionary *urls;
+@property (nonatomic, retain, readonly) NSString *feedbackURL;
+
+@end
+
+@implementation AboutViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ // Do any additional setup after loading the view.
+ NSString *plistPath = [[NSBundle mainBundle]
pathForResource:@"AboutViewController" ofType:@"plist"];
+ self.data = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
+ self.webView.delegate = self;
+ [self.webView loadHTMLFromAssetsFile:@"about.html"];
+}
+
+-(void)viewDidAppear:(BOOL)animated
+{
+ [super viewDidAppear:animated];
+
+ [[NSNotificationCenter defaultCenter] addObserver: self
+ selector:
@selector(navItemTappedNotification:)
+ name: @"NavItemTapped"
+ object: nil];
+}
+
+-(void)viewWillDisappear:(BOOL)animated
+{
+ [[NSNotificationCenter defaultCenter] removeObserver: self
+ name: @"NavItemTapped"
+ object: nil];
+ [super viewWillDisappear:animated];
+}
+
+- (void)navItemTappedNotification:(NSNotification *)notification
+{
+ NSDictionary *userInfo = [notification userInfo];
+ UIView *tappedItem = userInfo[@"tappedItem"];
+
+ switch (tappedItem.tag) {
+ case NAVBAR_BUTTON_X:
+ [self popModal];
+ break;
+ default:
+ break;
+ }
+}
+
+-(NavBarMode)navBarMode
+{
+ return NAVBAR_MODE_X_WITH_LABEL;
+}
+
+-(NSString *)title
+{
+ return MWLocalizedString(@"about-title", nil);
+}
+
+- (BOOL)prefersStatusBarHidden
+{
+ return NO;
+}
+
+-(NSString *)contributors
+{
+ return [self.data[@"contributors"] componentsJoinedByString:@", "];
+}
+
+-(NSDictionary *)urls
+{
+ return self.data[@"urls"];
+}
+
+-(NSString *)libraryLinks
+{
+ NSMutableDictionary *libraries = (NSMutableDictionary
*)self.data[@"libraries"];
+
+ for (NSString *library in libraries.copy) {
+ libraries[library] = [self getLinkHTMLForURL:libraries[library]
title:library];
+ }
+
+ NSString *output = [libraries.allValues componentsJoinedByString:@", "];
+ return output;
+}
+
+-(NSString *)repositoryLinks
+{
+ NSMutableDictionary *repos = (NSMutableDictionary
*)self.data[@"repositories"];
+
+ for (NSString *repo in repos.copy) {
+ repos[repo] = [self getLinkHTMLForURL:repos[repo] title:repo];
+ }
+
+ NSString *output = [repos.allValues componentsJoinedByString:@", "];
+ return output;
+}
+
+-(NSString *)feedbackUrl
+{
+ NSString *feedbackUrl = self.urls[@"feedback"];
+ feedbackUrl = [feedbackUrl stringByReplacingOccurrencesOfString:@"$1"
withString:[WikipediaAppUtils versionedUserAgent]];
+
+ NSString *encodedUrlString =
+ [feedbackUrl
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
+
+ return encodedUrlString;
+}
+
+-(NSString *)getLinkHTMLForURL:(NSString *)url title:(NSString *)title
+{
+ return [NSString stringWithFormat:@"<a href='%@'>%@</a>", url, title];
+}
+
+- (void)webViewDidFinishLoad:(UIWebView *)webView
+{
+ NSString*(^stringEscapedForJavasacript)(NSString*) = ^ NSString*(NSString
*string) {
+ // FROM: http://stackoverflow.com/a/13569786
+ // valid JSON object need to be an array or dictionary
+ NSArray *arrayForEncoding = @[string];
+ NSString *jsonString = [[NSString alloc]
initWithData:[NSJSONSerialization dataWithJSONObject:arrayForEncoding options:0
error:nil] encoding:NSUTF8StringEncoding];
+ NSString *escapedString = [jsonString
substringWithRange:NSMakeRange(2, jsonString.length - 4)];
+ return escapedString;
+ };
+
+ void (^setDivHTML)(NSString*, NSString*) = ^ void(NSString *divId,
NSString *twnString) {
+ twnString = stringEscapedForJavasacript(twnString);
+ [self.webView stringByEvaluatingJavaScriptFromString:
+ [NSString stringWithFormat:@"document.getElementById('%@').innerHTML
= \"%@\";", divId, twnString]];
+ };
+
+ NSDictionary *appInfo = [[NSBundle mainBundle] infoDictionary];
+ NSString *version = appInfo[@"CFBundleVersion"] ?
appInfo[@"CFBundleVersion"] : @"Unknown version";
+
+ setDivHTML(@"version", version);
+ setDivHTML(@"wikipedia", MWLocalizedString(@"about-wikipedia", nil));
+ setDivHTML(@"contributors_title", MWLocalizedString(@"about-contributors",
nil));
+ setDivHTML(@"contributors_body", self.contributors);
+ setDivHTML(@"translators_title", MWLocalizedString(@"about-translators",
nil));
+ setDivHTML(@"libraries_title", MWLocalizedString(@"about-libraries", nil));
+ setDivHTML(@"libraries_body", self.libraryLinks);
+ setDivHTML(@"repositories_title", MWLocalizedString(@"about-repositories",
nil));
+ setDivHTML(@"repositories_body", self.repositoryLinks);
+ setDivHTML(@"feedback_body", [self getLinkHTMLForURL:self.feedbackURL
title:MWLocalizedString(@"about-send-feedback", nil)]);
+
+ NSString *twnUrl = self.urls[@"twn"];
+ NSString *translatorsLink = [self getLinkHTMLForURL:twnUrl title:twnUrl];
+ NSString *translatorDetails =
+ [MWLocalizedString(@"about-translators-details", nil)
stringByReplacingOccurrencesOfString: @"$1"
+
withString: translatorsLink];
+ setDivHTML(@"translators_body", translatorDetails);
+
+ NSString *wmfUrl = self.urls[@"wmf"];
+ NSString *foundation = [self getLinkHTMLForURL:wmfUrl
title:MWLocalizedString(@"about-wikimedia-foundation", nil)];
+ NSString *footer =
+ [MWLocalizedString(@"about-product-of", nil)
stringByReplacingOccurrencesOfString: @"$1"
+
withString: foundation];
+ setDivHTML(@"footer", footer);
+
+ NSString *textDirection = ([WikipediaAppUtils isDeviceLanguageRTL] ?
@"rtl" : @"ltr");
+ NSString *textDirectionJS = [NSString
stringWithFormat:@"document.body.style.direction = '%@'", textDirection];
+ [self.webView stringByEvaluatingJavaScriptFromString:textDirectionJS];
+
+ NSString *fontSizeJS = [NSString
stringWithFormat:@"document.body.style.fontSize = '%f%%'",
(MENUS_SCALE_MULTIPLIER * 100.0f)];
+ [self.webView stringByEvaluatingJavaScriptFromString:fontSizeJS];
+}
+
+// Force web view links to open in Safari.
+// From: http://stackoverflow.com/a/2532884
+-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest
*)request navigationType:(UIWebViewNavigationType)navigationType;
+{
+ NSURL *requestURL = [request URL];
+ if (
+ (
+ [[requestURL scheme] isEqualToString:@"http"]
+ ||
+ [[requestURL scheme] isEqualToString:@"https"]
+ ||
+ [[requestURL scheme] isEqualToString:@"mailto"])
+ && (navigationType == UIWebViewNavigationTypeLinkClicked)
+ ) {
+ return ![[UIApplication sharedApplication] openURL:requestURL];
+ }
+ return YES;
+}
+
+- (void)didReceiveMemoryWarning {
+ [super didReceiveMemoryWarning];
+ // Dispose of any resources that can be recreated.
+}
+
+/*
+ #pragma mark - Navigation
+
+ // In a storyboard-based application, you will often want to do a little
preparation before navigation
+ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+ // Get the new view controller using [segue destinationViewController].
+ // Pass the selected object to the new view controller.
+ }
+ */
+
+@end
diff --git a/wikipedia/View Controllers/About/AboutViewController.plist
b/wikipedia/View Controllers/About/AboutViewController.plist
new file mode 100644
index 0000000..24ff96c
--- /dev/null
+++ b/wikipedia/View Controllers/About/AboutViewController.plist
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>urls</key>
+ <dict>
+ <key>feedback</key>
+
<string>mailto:[email protected]?subject=Feedback:$1</string>
+ <key>twn</key>
+ <string>http://translatewiki.net</string>
+ <key>wmf</key>
+ <string>http://wikimediafoundation.org</string>
+ </dict>
+ <key>libraries</key>
+ <dict>
+ <key>WikiFont</key>
+ <string>https://github.com/munmay/WikiFont</string>
+ <key>HPPLE</key>
+ <string>https://github.com/topfunky/hpple</string>
+ <key>NSDate-Extensions</key>
+ <string>https://github.com/erica/NSDate-Extensions</string>
+ <key>AFNetworking</key>
+ <string>https://github.com/AFNetworking/AFNetworking</string>
+ <key>CocoaPods</key>
+ <string>http://cocoapods.org</string>
+ </dict>
+ <key>repositories</key>
+ <dict>
+ <key>GitHub</key>
+ <string>https://github.com/wikimedia/apps-ios-wikipedia</string>
+ <key>Gerrit</key>
+
<string>https://gerrit.wikimedia.org/r/#/q/project:apps/ios/wikipedia,n,z</string>
+ </dict>
+ <key>contributors</key>
+ <array>
+ <string>Adam Baso</string>
+ <string>Amir E. Aharoni</string>
+ <string>Anirudh S</string>
+ <string>Bernd Sitzmann</string>
+ <string>Brion Vibber</string>
+ <string>Dan Garry</string>
+ <string>Dmitry Brant</string>
+ <string>Kenan Wang</string>
+ <string>Maryana Pinchuk</string>
+ <string>Max Semenik</string>
+ <string>Moiz Syed</string>
+ <string>Monte Hurd</string>
+ <string>Mun May Tee</string>
+ <string>Nicole Borrelli</string>
+ <string>Niklas Laxström</string>
+ <string>Thomas PT</string>
+ <string>Tomasz Finc</string>
+ <string>Vibha Bamba</string>
+ <string>Yuvi Panda</string>
+ </array>
+</dict>
+</plist>
diff --git a/wikipedia/View
Controllers/Navigation/Secondary/SecondaryMenuViewController.m b/wikipedia/View
Controllers/Navigation/Secondary/SecondaryMenuViewController.m
index 08adda1..e24a3ca 100644
--- a/wikipedia/View
Controllers/Navigation/Secondary/SecondaryMenuViewController.m
+++ b/wikipedia/View
Controllers/Navigation/Secondary/SecondaryMenuViewController.m
@@ -38,26 +38,26 @@
#define URL_TERMS @"https://m.wikimediafoundation.org/wiki/Terms_of_Use"
#define URL_RATE_APP @"itms-apps://itunes.apple.com/app/id324715238"
-typedef enum {
- SECONDARY_MENU_ROW_INDEX_LOGIN = 0,
- SECONDARY_MENU_ROW_INDEX_SAVED_PAGES = 1,
- SECONDARY_MENU_ROW_INDEX_SAVE_PAGE = 2,
- SECONDARY_MENU_ROW_INDEX_SEARCH_LANGUAGE = 3,
- SECONDARY_MENU_ROW_INDEX_ZERO_FAQ = 4,
- SECONDARY_MENU_ROW_INDEX_ZERO_WARN_WHEN_LEAVING = 5,
- SECONDARY_MENU_ROW_INDEX_SEND_FEEDBACK = 6,
- SECONDARY_MENU_ROW_INDEX_PAGE_HISTORY = 7,
- SECONDARY_MENU_ROW_INDEX_CREDITS = 8,
- SECONDARY_MENU_ROW_INDEX_SEND_USAGE_REPORTS = 9,
- SECONDARY_MENU_ROW_INDEX_PRIVACY_POLICY = 10,
- SECONDARY_MENU_ROW_INDEX_TERMS = 11,
- SECONDARY_MENU_ROW_INDEX_RATE_APP = 12,
- SECONDARY_MENU_ROW_INDEX_HEADING_ZERO = 13,
- SECONDARY_MENU_ROW_INDEX_HEADING_LEGAL = 14,
- SECONDARY_MENU_ROW_INDEX_HEADING_BLANK = 15,
- SECONDARY_MENU_ROW_INDEX_HEADING_BLANK_2 = 16
-
-} SecondaryMenuRowIndex;
+typedef NS_ENUM(NSUInteger, SecondaryMenuRowIndex) {
+ SECONDARY_MENU_ROW_INDEX_LOGIN,
+ SECONDARY_MENU_ROW_INDEX_SAVED_PAGES,
+ SECONDARY_MENU_ROW_INDEX_SAVE_PAGE,
+ SECONDARY_MENU_ROW_INDEX_SEARCH_LANGUAGE,
+ SECONDARY_MENU_ROW_INDEX_ZERO_FAQ,
+ SECONDARY_MENU_ROW_INDEX_ZERO_WARN_WHEN_LEAVING,
+ SECONDARY_MENU_ROW_INDEX_SEND_FEEDBACK,
+ SECONDARY_MENU_ROW_INDEX_PAGE_HISTORY,
+ SECONDARY_MENU_ROW_INDEX_CREDITS,
+ SECONDARY_MENU_ROW_INDEX_ABOUT,
+ SECONDARY_MENU_ROW_INDEX_SEND_USAGE_REPORTS,
+ SECONDARY_MENU_ROW_INDEX_PRIVACY_POLICY,
+ SECONDARY_MENU_ROW_INDEX_TERMS,
+ SECONDARY_MENU_ROW_INDEX_RATE_APP,
+ SECONDARY_MENU_ROW_INDEX_HEADING_ZERO,
+ SECONDARY_MENU_ROW_INDEX_HEADING_LEGAL,
+ SECONDARY_MENU_ROW_INDEX_HEADING_BLANK,
+ SECONDARY_MENU_ROW_INDEX_HEADING_BLANK_2
+};
#pragma mark - Private
@@ -436,10 +436,20 @@
@"type": @(ROW_TYPE_HEADING),
}.mutableCopy
,
+ /*
@{
@"domain": [SessionSingleton sharedInstance].domain,
@"title": MWLocalizedString(@"main-menu-credits", nil),
@"tag": @(SECONDARY_MENU_ROW_INDEX_CREDITS),
+ @"icon": IOS_WIKIGLYPH_DOWN,
+ @"type": @(ROW_TYPE_SELECTION),
+ }.mutableCopy
+ ,
+ */
+ @{
+ @"domain": [SessionSingleton sharedInstance].domain,
+ @"title": MWLocalizedString(@"main-menu-about", nil),
+ @"tag": @(SECONDARY_MENU_ROW_INDEX_ABOUT),
@"icon": IOS_WIKIGLYPH_DOWN,
@"type": @(ROW_TYPE_SELECTION),
}.mutableCopy
@@ -641,6 +651,7 @@
block: nil];
}
break;
+ /*
case SECONDARY_MENU_ROW_INDEX_CREDITS:
{
[self performModalSequeWithID: @"modal_segue_show_credits"
@@ -648,6 +659,14 @@
block: nil];
}
break;
+ */
+ case SECONDARY_MENU_ROW_INDEX_ABOUT:
+ {
+ [self performModalSequeWithID: @"modal_segue_show_about"
+ transitionStyle:
UIModalTransitionStyleCoverVertical
+ block: nil];
+ }
+ break;
default:
break;
}
diff --git a/wikipedia/assets/about.html b/wikipedia/assets/about.html
new file mode 100644
index 0000000..4137636
--- /dev/null
+++ b/wikipedia/assets/about.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta name="viewport" id="viewport" content="width=device-width,
initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=1.0">
+
+ <style type="text/css">
+
+ body{
+ font-size:100%;
+ margin:1.45em;
+ font-family: Helvetica;
+ color:#444444;
+ border-style:none;
+ -webkit-text-size-adjust: none;
+ direction:ltr;
+ }
+
+ div body{
+ margin-top:0.5em;
+ margin-bottom:0.5em;
+ }
+
+ .heading{
+ font-weight:bold;
+ color:#000000;
+ }
+
+ #version{
+ font-size:1.5em;
+ }
+
+ #wikipedia{
+ font-size:2.0em;
+ }
+
+ .title{
+ color:#888888;
+ margin-bottom:0.5em;
+ }
+
+ A{
+ color:#4F76eB;
+ }
+
+ .feedback{
+ text-align:center;
+ }
+
+ .title, .feedback{
+ margin-top:1.5em;
+ }
+
+ .footer-table{
+ margin-top:1.0em;
+ width:100%;
+ }
+
+ .footer{
+ width:100%;
+ }
+
+ .wmf-logo{
+ padding-right:0.5em;
+ }
+
+ </style>
+ </head>
+ <body>
+
+ <div id="wikipedia" class="heading">wikipedia</div>
+
+ <div id="version" class="heading">version</div>
+
+ <div id="contributors_title" class="title">contributors_title</div>
+
+ <div id="contributors_body">contributors_body</div>
+
+ <div id="translators_title" class="title">translators_title</div>
+
+ <div id="translators_body">translators_body</div>
+
+ <div id="libraries_title" class="title">libraries_title</div>
+
+ <div id="libraries_body">libraries_body</div>
+
+ <div id="repositories_title" class="title">repositories_title</div>
+
+ <div id="repositories_body">repositories_body</div>
+
+ <div id="feedback_body" class="feedback">feedback_body</div>
+
+ <table class="footer-table">
+ <tr>
+ <td>
+ <img class="wmf-logo" src="./images/wmflogo_60.png"
srcset="./images/wmflogo_60.png 1x, ./images/wmflogo_120.png 2x,
./images/wmflogo_180.png 3x">
+ </td>
+ <td id="footer" class="footer">
+ footer
+ </td>
+ </tr>
+ </table>
+
+ </body>
+</html>
diff --git a/wikipedia/assets/abusefilter.html
b/wikipedia/assets/abusefilter.html
index 2433884..2f41e82 100644
--- a/wikipedia/assets/abusefilter.html
+++ b/wikipedia/assets/abusefilter.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
<html class="content-ltr ui-ltr" dir="ltr">
<head>
diff --git a/wikipedia/assets/images/wmflogo_120.png
b/wikipedia/assets/images/wmflogo_120.png
new file mode 100644
index 0000000..bcf48aa
--- /dev/null
+++ b/wikipedia/assets/images/wmflogo_120.png
Binary files differ
diff --git a/wikipedia/assets/images/wmflogo_180.png
b/wikipedia/assets/images/wmflogo_180.png
new file mode 100644
index 0000000..d525463
--- /dev/null
+++ b/wikipedia/assets/images/wmflogo_180.png
Binary files differ
diff --git a/wikipedia/assets/images/wmflogo_60.png
b/wikipedia/assets/images/wmflogo_60.png
new file mode 100644
index 0000000..ba64109
--- /dev/null
+++ b/wikipedia/assets/images/wmflogo_60.png
Binary files differ
diff --git a/wikipedia/assets/index.html b/wikipedia/assets/index.html
index 6dab995..9e63ac9 100644
--- a/wikipedia/assets/index.html
+++ b/wikipedia/assets/index.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
<html>
<head>
diff --git a/wikipedia/assets/preview.html b/wikipedia/assets/preview.html
index 63a893b..ea2ccf8 100644
--- a/wikipedia/assets/preview.html
+++ b/wikipedia/assets/preview.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
<html class="content-ltr ui-ltr" dir="ltr">
<head>
diff --git a/wikipedia/en.lproj/Localizable.strings
b/wikipedia/en.lproj/Localizable.strings
index 16262cc..c9159ee 100644
--- a/wikipedia/en.lproj/Localizable.strings
+++ b/wikipedia/en.lproj/Localizable.strings
@@ -101,6 +101,7 @@
"main-menu-send-feedback" = "Send app feedback";
"main-menu-show-page-history" = "History of changes to $1";
"main-menu-credits" = "Credits";
+"main-menu-about" = "About the Wikipedia app";
"main-menu-zero-faq" = "Wikipedia Zero FAQ";
"main-menu-privacy-policy" = "Privacy policy";
"main-menu-terms-of-use" = "Terms of use";
@@ -157,6 +158,17 @@
"credits-github-mirror" = "App mirror (GitHub)";
"credits-external-libraries" = "External repositories";
+"about-title" = "About";
+"about-wikipedia" = "Wikipedia";
+"about-contributors" = "contributors";
+"about-translators" = "translators";
+"about-translators-details" = "This app was translated by the volunteer
translators at $1";
+"about-libraries" = "libraries used";
+"about-repositories" = "repositories";
+"about-send-feedback" = "Send app feedback";
+"about-product-of" = "A product of the $1";
+"about-wikimedia-foundation" = "Wikimedia Foundation";
+
"share-menu-save-page" = "Save page";
"share-menu-page-saved" = "Saved for offline reading.";
"share-menu-page-saved-access" = "Tip: to access your saved pages, tap $1
above or long-press $2 below.";
diff --git a/wikipedia/mw-bridge/CommunicationBridge.m
b/wikipedia/mw-bridge/CommunicationBridge.m
index 0c74f08..c2e8ee5 100644
--- a/wikipedia/mw-bridge/CommunicationBridge.m
+++ b/wikipedia/mw-bridge/CommunicationBridge.m
@@ -2,6 +2,7 @@
// Copyright (c) 2013 Wikimedia Foundation. Provided under MIT-style license;
please copy and modify!
#import "CommunicationBridge.h"
+#import "UIWebView+LoadAssetsHtml.h"
@interface CommunicationBridge (){
@@ -103,14 +104,8 @@
htmlFileName: (NSString *)htmlFileName
{
webView.delegate = self;
-
- NSArray *documentsPath = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *assetsPath = [[documentsPath firstObject]
stringByAppendingPathComponent:@"assets"];
- NSString *indexHTMLFilePath = [assetsPath
stringByAppendingPathComponent:htmlFileName];
- NSString *encodedAssetsPath = [assetsPath
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- NSURL *baseURL = [NSURL URLWithString:[NSString
stringWithFormat:@"file:///%@/", encodedAssetsPath]];
- NSData *indexHTMLFileData = [[NSFileManager defaultManager]
contentsAtPath: indexHTMLFilePath];
- [webView loadData:indexHTMLFileData MIMEType:@"text/html"
textEncodingName:@"UTF-8" baseURL:baseURL];
+
+ [webView loadHTMLFromAssetsFile:htmlFileName];
}
static NSString *bridgeURLPrefix = @"x-wikipedia-bridge:";
diff --git a/wikipedia/qqq.lproj/Localizable.strings
b/wikipedia/qqq.lproj/Localizable.strings
index d2e25fa..fe7154e 100644
--- a/wikipedia/qqq.lproj/Localizable.strings
+++ b/wikipedia/qqq.lproj/Localizable.strings
@@ -109,6 +109,7 @@
"main-menu-show-today" = "Button text for showing mobile version of main
page\n{{Identical|Today}}";
"main-menu-nearby" = "Button for showing nearby
articles.\n{{Identical|Nearby}}";
"main-menu-more" = "Button for showing additional settings and menu
items.\n{{Identical|More}}";
+"main-menu-about" = "Button for showing information about the app.";
"saved-pages-title" = "Header text for Saved Pages
interface.\n{{Identical|Saved page}}";
"saved-pages-clear-confirmation-heading" = "Heading text of delete all
confirmation dialog";
"saved-pages-clear-confirmation-sub-heading" = "Sub-heading text of delete all
confirmation dialog";
@@ -147,6 +148,16 @@
"credits-gerrit-repo" = "Text for item linking to the app's main gerrit
repository";
"credits-github-mirror" = "Text for item linking to the app's mirrored GitHub
repository";
"credits-external-libraries" = "Title for area of credits page showing
external open source libraries used by app.\n{{Identical|External}}";
+"about-title" = "Title for credits page";
+"about-wikipedia" = "Wikipedia";
+"about-contributors" = "Label text for contributors section of the about page";
+"about-translators" = "Label text for translators section of the about page";
+"about-translators-details" = "Description of volunteer translation. $1 is
translatewiki url.";
+"about-libraries" = "Label text for libraries section of the about page";
+"about-repositories" = "Label text for repositories section of the about page";
+"about-send-feedback" = "Link text for sending app feedback";
+"about-product-of" = "Description of who produced the app. $1 is the name of
the foundation";
+"about-wikimedia-foundation" = "Name of the Wikimedia Foundation. Used by
'about-product-of'.";
"share-menu-save-page" = "Button text for saving current page from the share
menu";
"share-menu-page-saved" = "Alert text shown when page saved for offline
reading.\n\nSee also:\n* {{msg-wm|Wikipedia-ios-share-menu-page-saved-access}}";
"share-menu-page-saved-access" = "Reminder to user of ways to access saved
pages. Parameters:\n* $1 - the main menu W icon\n* $2 - the save page heart
icon\nSee also:\n* {{msg-wm|Wikipedia-ios-share-menu-page-saved}}";
diff --git a/www/Gruntfile.js b/www/Gruntfile.js
index e8fe65f..3ca968e 100644
--- a/www/Gruntfile.js
+++ b/www/Gruntfile.js
@@ -37,8 +37,14 @@
copy: {
main: {
files: [
- {src: ["index.html", "preview.html", "abusefilter.html",
"bundle.js", "footer.css"], dest: "../wikipedia/assets/"}
+ {src: ["index.html", "preview.html", "abusefilter.html",
"about.html", "bundle.js", "footer.css"], dest: "../wikipedia/assets/"}
]
+ },
+ files: {
+ cwd: 'images', // folder to copy
+ src: '**/*', // copy all files and subfolders
+ dest: '../wikipedia/assets/images', // destination folder
+ expand: true // required when using cwd
}
},
watch: {
diff --git a/www/about.html b/www/about.html
new file mode 100644
index 0000000..4137636
--- /dev/null
+++ b/www/about.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta name="viewport" id="viewport" content="width=device-width,
initial-scale=1.0, user-scalable=yes, minimum-scale=1.0, maximum-scale=1.0">
+
+ <style type="text/css">
+
+ body{
+ font-size:100%;
+ margin:1.45em;
+ font-family: Helvetica;
+ color:#444444;
+ border-style:none;
+ -webkit-text-size-adjust: none;
+ direction:ltr;
+ }
+
+ div body{
+ margin-top:0.5em;
+ margin-bottom:0.5em;
+ }
+
+ .heading{
+ font-weight:bold;
+ color:#000000;
+ }
+
+ #version{
+ font-size:1.5em;
+ }
+
+ #wikipedia{
+ font-size:2.0em;
+ }
+
+ .title{
+ color:#888888;
+ margin-bottom:0.5em;
+ }
+
+ A{
+ color:#4F76eB;
+ }
+
+ .feedback{
+ text-align:center;
+ }
+
+ .title, .feedback{
+ margin-top:1.5em;
+ }
+
+ .footer-table{
+ margin-top:1.0em;
+ width:100%;
+ }
+
+ .footer{
+ width:100%;
+ }
+
+ .wmf-logo{
+ padding-right:0.5em;
+ }
+
+ </style>
+ </head>
+ <body>
+
+ <div id="wikipedia" class="heading">wikipedia</div>
+
+ <div id="version" class="heading">version</div>
+
+ <div id="contributors_title" class="title">contributors_title</div>
+
+ <div id="contributors_body">contributors_body</div>
+
+ <div id="translators_title" class="title">translators_title</div>
+
+ <div id="translators_body">translators_body</div>
+
+ <div id="libraries_title" class="title">libraries_title</div>
+
+ <div id="libraries_body">libraries_body</div>
+
+ <div id="repositories_title" class="title">repositories_title</div>
+
+ <div id="repositories_body">repositories_body</div>
+
+ <div id="feedback_body" class="feedback">feedback_body</div>
+
+ <table class="footer-table">
+ <tr>
+ <td>
+ <img class="wmf-logo" src="./images/wmflogo_60.png"
srcset="./images/wmflogo_60.png 1x, ./images/wmflogo_120.png 2x,
./images/wmflogo_180.png 3x">
+ </td>
+ <td id="footer" class="footer">
+ footer
+ </td>
+ </tr>
+ </table>
+
+ </body>
+</html>
diff --git a/www/abusefilter.html b/www/abusefilter.html
index 2433884..2f41e82 100644
--- a/www/abusefilter.html
+++ b/www/abusefilter.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
<html class="content-ltr ui-ltr" dir="ltr">
<head>
diff --git a/www/images/wmflogo_120.png b/www/images/wmflogo_120.png
new file mode 100644
index 0000000..bcf48aa
--- /dev/null
+++ b/www/images/wmflogo_120.png
Binary files differ
diff --git a/www/images/wmflogo_180.png b/www/images/wmflogo_180.png
new file mode 100644
index 0000000..d525463
--- /dev/null
+++ b/www/images/wmflogo_180.png
Binary files differ
diff --git a/www/images/wmflogo_60.png b/www/images/wmflogo_60.png
new file mode 100644
index 0000000..ba64109
--- /dev/null
+++ b/www/images/wmflogo_60.png
Binary files differ
diff --git a/www/index.html b/www/index.html
index 6dab995..9e63ac9 100644
--- a/www/index.html
+++ b/www/index.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
<html>
<head>
diff --git a/www/preview.html b/www/preview.html
index 63a893b..ea2ccf8 100644
--- a/www/preview.html
+++ b/www/preview.html
@@ -1,3 +1,4 @@
+<!DOCTYPE html>
<html class="content-ltr ui-ltr" dir="ltr">
<head>
--
To view, visit https://gerrit.wikimedia.org/r/169305
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9914dd0c56af25d7ecf9cbeb25245b939540a0a4
Gerrit-PatchSet: 2
Gerrit-Project: apps/ios/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mhurd <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits