Mhurd has uploaded a new change for review. https://gerrit.wikimedia.org/r/127378
Change subject: First pass at credits page. ...................................................................... First pass at credits page. Temporary menu entry and icon at bottom of main menu. Tapping on items loads respective urls in Safari. Change-Id: Ibe65df5cba9223d66dfa9bd7a8769a24f0c059ec --- M Wikipedia.xcodeproj/project.pbxproj M wikipedia/Base.lproj/Main_iPhone.storyboard A wikipedia/View Controllers/Credits/CreditsViewController.h A wikipedia/View Controllers/Credits/CreditsViewController.m M wikipedia/View Controllers/MainMenu/MainMenuViewController.m M wikipedia/en.lproj/Localizable.strings M wikipedia/qqq.lproj/Localizable.strings 7 files changed, 290 insertions(+), 6 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/ios/wikipedia refs/changes/78/127378/1 diff --git a/Wikipedia.xcodeproj/project.pbxproj b/Wikipedia.xcodeproj/project.pbxproj index e56f9c0..6027a44 100644 --- a/Wikipedia.xcodeproj/project.pbxproj +++ b/Wikipedia.xcodeproj/project.pbxproj @@ -70,6 +70,7 @@ 043649E018E2573E00B528DB /* main_menu_save.png in Resources */ = {isa = PBXBuildFile; fileRef = 043649BE18E2573E00B528DB /* main_menu_save.png */; }; 043649E218E2573E00B528DB /* main_menu_s...@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 043649BF18E2573E00B528DB /* main_menu_s...@2x.png */; }; 043C668A18BE9A8E00580E9B /* PreviewWikiTextOp.m in Sources */ = {isa = PBXBuildFile; fileRef = 043C668918BE9A8E00580E9B /* PreviewWikiTextOp.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 */; }; 043F18E918D9885F00D8489A /* TitleSubtitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 043F18E818D9885F00D8489A /* TitleSubtitleView.m */; }; @@ -285,6 +286,8 @@ 043649BF18E2573E00B528DB /* main_menu_s...@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "main_menu_s...@2x.png"; sourceTree = "<group>"; }; 043C668818BE9A8E00580E9B /* PreviewWikiTextOp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreviewWikiTextOp.h; sourceTree = "<group>"; }; 043C668918BE9A8E00580E9B /* PreviewWikiTextOp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreviewWikiTextOp.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>"; }; 043F18DC18D9691D00D8489A /* TopActionSheetLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopActionSheetLabel.m; sourceTree = "<group>"; }; 043F18DF18D9691D00D8489A /* UINavigationController+TopActionSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UINavigationController+TopActionSheet.h"; sourceTree = "<group>"; }; @@ -734,6 +737,15 @@ path = TopNav; sourceTree = "<group>"; }; + 043DAC481901C3D2001CD17C /* Credits */ = { + isa = PBXGroup; + children = ( + 043DAC491901C3EE001CD17C /* CreditsViewController.h */, + 043DAC4A1901C3EE001CD17C /* CreditsViewController.m */, + ); + path = Credits; + sourceTree = "<group>"; + }; 043F18DA18D9691D00D8489A /* TopActionSheet */ = { isa = PBXGroup; children = ( @@ -962,6 +974,7 @@ children = ( 04A97E8418B81D440046B166 /* AccountCreation */, 04B7B9BA18B5569600A63551 /* Captcha */, + 043DAC481901C3D2001CD17C /* Credits */, 04B9C42618CE5D25003B5058 /* EditSummary */, 0447861F185145090050563B /* History */, 041A3B5718E11ED90079FF1C /* Languages */, @@ -1575,6 +1588,7 @@ 041A3B5E18E11ED90079FF1C /* LanguagesCell.m in Sources */, 04D34DD91863F70A00610A87 /* Section.m in Sources */, 04C8781018F4A42700FA3B99 /* AccountCreationTokenOp.m in Sources */, + 043DAC4B1901C3EE001CD17C /* CreditsViewController.m in Sources */, D42E75EB18D11237002EA7E5 /* MWLanguageInfo.m in Sources */, 04A81E8618871EB000EEBADB /* Section+ImageRecords.m in Sources */, 047FF5471889078C009DB293 /* Image+Convenience.m in Sources */, diff --git a/wikipedia/Base.lproj/Main_iPhone.storyboard b/wikipedia/Base.lproj/Main_iPhone.storyboard index 27be88e..0ea82c3 100644 --- a/wikipedia/Base.lproj/Main_iPhone.storyboard +++ b/wikipedia/Base.lproj/Main_iPhone.storyboard @@ -606,6 +606,154 @@ </objects> <point key="canvasLocation" x="1104" y="1317"/> </scene> + <!--Credits View Controller--> + <scene sceneID="5Ik-j0-hCD"> + <objects> + <viewController restorationIdentifier="CreditsViewController" storyboardIdentifier="CreditsViewController" id="myl-z3-aa0" customClass="CreditsViewController" sceneMemberID="viewController"> + <layoutGuides> + <viewControllerLayoutGuide type="top" id="Cq6-KC-8bv"/> + <viewControllerLayoutGuide type="bottom" id="jJw-w1-zeH"/> + </layoutGuides> + <view key="view" contentMode="scaleToFill" id="XBS-Es-znJ"> + <rect key="frame" x="0.0" y="0.0" width="320" height="568"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qEv-qB-FRv"> + <rect key="frame" x="0.0" y="0.0" width="320" height="568"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <subviews> + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ULA-VS-Px0"> + <rect key="frame" x="0.0" y="0.0" width="320" height="388"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="credits" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="ieH-d1-Ds7"> + <rect key="frame" x="20" y="40" width="280" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <constraints> + <constraint firstAttribute="width" constant="280" id="Na3-NC-NRz"/> + </constraints> + <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="wikimedia" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="5KU-bp-5Fs"> + <rect key="frame" x="20" y="91" width="280" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <constraints> + <constraint firstAttribute="width" constant="280" id="WRH-2x-NwJ"/> + </constraints> + <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="main repo" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="gzT-kN-7kp"> + <rect key="frame" x="20" y="132" width="280" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <constraints> + <constraint firstAttribute="width" constant="280" id="lKk-3W-MB7"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="github repo" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="3gs-D6-glW"> + <rect key="frame" x="20" y="173" width="280" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <constraints> + <constraint firstAttribute="width" constant="280" id="xsY-AA-RGV"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="external" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="ven-ec-xzg"> + <rect key="frame" x="20" y="224" width="280" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <constraints> + <constraint firstAttribute="width" constant="280" id="9pZ-GE-rBr"/> + </constraints> + <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WikiFont" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="qQl-8k-ux4"> + <rect key="frame" x="20" y="265" width="280" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <constraints> + <constraint firstAttribute="width" constant="280" id="Cty-XK-Glb"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="HPPLE" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="eSk-uQ-Ran"> + <rect key="frame" x="20" y="306" width="280" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <constraints> + <constraint firstAttribute="width" constant="280" id="vyu-2A-a3C"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="NSDate-Extensions" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="280" translatesAutoresizingMaskIntoConstraints="NO" id="6O2-5x-h41"> + <rect key="frame" x="20" y="347" width="280" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <constraints> + <constraint firstAttribute="width" constant="280" id="Iwk-F6-h8L"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + <constraints> + <constraint firstAttribute="centerX" secondItem="6O2-5x-h41" secondAttribute="centerX" id="EIq-xZ-kkz"/> + <constraint firstAttribute="centerX" secondItem="ven-ec-xzg" secondAttribute="centerX" id="JY2-7J-igk"/> + <constraint firstItem="gzT-kN-7kp" firstAttribute="top" secondItem="5KU-bp-5Fs" secondAttribute="bottom" constant="20" id="TDr-V6-jrb"/> + <constraint firstItem="ieH-d1-Ds7" firstAttribute="top" secondItem="ULA-VS-Px0" secondAttribute="top" constant="40" id="TgT-z1-cyX"/> + <constraint firstAttribute="centerX" secondItem="ieH-d1-Ds7" secondAttribute="centerX" id="Tvt-qg-VEN"/> + <constraint firstItem="3gs-D6-glW" firstAttribute="top" secondItem="gzT-kN-7kp" secondAttribute="bottom" constant="20" id="Ucc-Sd-cUw"/> + <constraint firstAttribute="centerX" secondItem="5KU-bp-5Fs" secondAttribute="centerX" id="UpL-3N-aXi"/> + <constraint firstAttribute="centerX" secondItem="qQl-8k-ux4" secondAttribute="centerX" id="e1J-N7-ngT"/> + <constraint firstItem="6O2-5x-h41" firstAttribute="top" secondItem="eSk-uQ-Ran" secondAttribute="bottom" constant="20" id="fbY-ch-ngz"/> + <constraint firstItem="qQl-8k-ux4" firstAttribute="top" secondItem="ven-ec-xzg" secondAttribute="bottom" constant="20" id="ker-bq-3OO"/> + <constraint firstAttribute="centerX" secondItem="3gs-D6-glW" secondAttribute="centerX" id="pBH-cw-bNf"/> + <constraint firstItem="5KU-bp-5Fs" firstAttribute="top" secondItem="ieH-d1-Ds7" secondAttribute="bottom" constant="30" id="r1q-r9-uD6"/> + <constraint firstAttribute="centerX" secondItem="eSk-uQ-Ran" secondAttribute="centerX" id="rrs-gS-Ihn"/> + <constraint firstItem="eSk-uQ-Ran" firstAttribute="top" secondItem="qQl-8k-ux4" secondAttribute="bottom" constant="20" id="vfW-pJ-nvd"/> + <constraint firstAttribute="bottom" secondItem="6O2-5x-h41" secondAttribute="bottom" constant="20" symbolic="YES" id="wuw-9H-qQr"/> + <constraint firstAttribute="centerX" secondItem="gzT-kN-7kp" secondAttribute="centerX" id="xzk-5q-Czv"/> + <constraint firstItem="ven-ec-xzg" firstAttribute="top" secondItem="3gs-D6-glW" secondAttribute="bottom" constant="30" id="ytD-4S-psy"/> + </constraints> + </view> + </subviews> + <constraints> + <constraint firstItem="ULA-VS-Px0" firstAttribute="top" secondItem="qEv-qB-FRv" secondAttribute="top" id="5e3-gz-foX"/> + <constraint firstAttribute="trailing" secondItem="ULA-VS-Px0" secondAttribute="trailing" id="7l1-Xx-j8M"/> + <constraint firstAttribute="bottom" secondItem="ULA-VS-Px0" secondAttribute="bottom" constant="80" id="G7i-FS-P8G"/> + <constraint firstAttribute="width" secondItem="ULA-VS-Px0" secondAttribute="width" id="VLV-SK-Sv6"/> + <constraint firstItem="ULA-VS-Px0" firstAttribute="leading" secondItem="qEv-qB-FRv" secondAttribute="leading" id="gqk-UN-TvC"/> + </constraints> + </scrollView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> + <constraints> + <constraint firstAttribute="trailing" secondItem="qEv-qB-FRv" secondAttribute="trailing" id="4Ln-Qz-emi"/> + <constraint firstAttribute="bottom" secondItem="qEv-qB-FRv" secondAttribute="bottom" id="De2-ZF-dN4"/> + <constraint firstItem="qEv-qB-FRv" firstAttribute="top" secondItem="XBS-Es-znJ" secondAttribute="top" id="Hmj-4p-eoK"/> + <constraint firstItem="qEv-qB-FRv" firstAttribute="leading" secondItem="XBS-Es-znJ" secondAttribute="leading" id="sdn-y4-Yyg"/> + </constraints> + </view> + <extendedEdge key="edgesForExtendedLayout" bottom="YES"/> + <connections> + <outlet property="externalLibrariesLabel" destination="ven-ec-xzg" id="ipE-Zd-jCl"/> + <outlet property="gerritLabel" destination="gzT-kN-7kp" id="8PW-lc-Csn"/> + <outlet property="githubLabel" destination="3gs-D6-glW" id="fUX-qN-QZ5"/> + <outlet property="hppleLabel" destination="eSk-uQ-Ran" id="qN0-Td-phW"/> + <outlet property="nsdateLabel" destination="6O2-5x-h41" id="iCt-hu-Fa8"/> + <outlet property="titleLabel" destination="ieH-d1-Ds7" id="X4Z-41-eO2"/> + <outlet property="wikiFontLabel" destination="qQl-8k-ux4" id="yBp-Z2-ibr"/> + <outlet property="wikimediaReposLabel" destination="5KU-bp-5Fs" id="chD-0j-d6F"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="BLG-HG-Go1" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="554" y="2885"/> + </scene> <!--Preview And Save View Controller--> <scene sceneID="TJS-xh-DjB"> <objects> @@ -711,25 +859,25 @@ <viewControllerLayoutGuide type="bottom" id="NcO-7E-4V6"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="2UF-VY-OwF"> - <rect key="frame" x="0.0" y="0.0" width="320" height="163"/> + <rect key="frame" x="0.0" y="0.0" width="280" height="163"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <subviews> <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ubi-fl-THX"> - <rect key="frame" x="0.0" y="20" width="320" height="70"/> + <rect key="frame" x="0.0" y="20" width="280" height="70"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <constraints> <constraint firstAttribute="height" constant="70" id="djK-ra-WHc"/> </constraints> </imageView> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="wordWrap" translatesAutoresizingMaskIntoConstraints="NO" id="21c-U6-yfo"> - <rect key="frame" x="0.0" y="100" width="320" height="30"/> + <rect key="frame" x="0.0" y="100" width="280" height="30"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <state key="normal" title="Show another captcha"> <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> </state> </button> <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Enter CAPTCHA text from image above" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="gPg-cg-Yjy"> - <rect key="frame" x="20" y="140" width="280" height="30"/> + <rect key="frame" x="0.0" y="140" width="280" height="30"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <constraints> <constraint firstAttribute="width" constant="280" id="6wn-Hx-rhl"/> @@ -1091,6 +1239,6 @@ <simulatedScreenMetrics key="destination" type="retina4"/> </simulatedMetricsContainer> <inferredMetricsTieBreakers> - <segue reference="ca4-hw-8WK"/> + <segue reference="HJg-5s-ewq"/> </inferredMetricsTieBreakers> </document> diff --git a/wikipedia/View Controllers/Credits/CreditsViewController.h b/wikipedia/View Controllers/Credits/CreditsViewController.h new file mode 100644 index 0000000..68a8fc8 --- /dev/null +++ b/wikipedia/View Controllers/Credits/CreditsViewController.h @@ -0,0 +1,18 @@ +// Created by Monte Hurd on 4/18/14. +// Copyright (c) 2013 Wikimedia Foundation. Provided under MIT-style license; please copy and modify! + +#import <UIKit/UIKit.h> + +@interface CreditsViewController : UIViewController + +@property (weak, nonatomic) IBOutlet UILabel *titleLabel; +@property (weak, nonatomic) IBOutlet UILabel *wikimediaReposLabel; +@property (weak, nonatomic) IBOutlet UILabel *externalLibrariesLabel; +@property (weak, nonatomic) IBOutlet UILabel *githubLabel; +@property (weak, nonatomic) IBOutlet UILabel *gerritLabel; + +@property (weak, nonatomic) IBOutlet UILabel *wikiFontLabel; +@property (weak, nonatomic) IBOutlet UILabel *hppleLabel; +@property (weak, nonatomic) IBOutlet UILabel *nsdateLabel; + +@end diff --git a/wikipedia/View Controllers/Credits/CreditsViewController.m b/wikipedia/View Controllers/Credits/CreditsViewController.m new file mode 100644 index 0000000..23d2073 --- /dev/null +++ b/wikipedia/View Controllers/Credits/CreditsViewController.m @@ -0,0 +1,74 @@ +// Created by Monte Hurd on 4/18/14. +// Copyright (c) 2013 Wikimedia Foundation. Provided under MIT-style license; please copy and modify! + +#import "CreditsViewController.h" +#import "WikipediaAppUtils.h" + +@interface CreditsViewController () + +@end + +@implementation CreditsViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view. + + self.navigationItem.hidesBackButton = YES; + + self.titleLabel.text = MWLocalizedString(@"credits-title", nil); + self.wikimediaReposLabel.text = MWLocalizedString(@"credits-wikimedia-repos", nil); + self.externalLibrariesLabel.text = MWLocalizedString(@"credits-external-libraries", nil); + self.githubLabel.text = MWLocalizedString(@"credits-github-mirror", nil); + self.gerritLabel.text = MWLocalizedString(@"credits-gerrit-repo", nil); + + [self addTapRecognizerToView:self.githubLabel]; + [self addTapRecognizerToView:self.gerritLabel]; + [self addTapRecognizerToView:self.wikiFontLabel]; + [self addTapRecognizerToView:self.hppleLabel]; + [self addTapRecognizerToView:self.nsdateLabel]; +} + +-(void)addTapRecognizerToView:(UIView *)view +{ + [view addGestureRecognizer: + [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)] + ]; +} + +-(void)viewTapped:(UITapGestureRecognizer *)recognizer +{ + NSString *url = nil; + if (recognizer.view == self.githubLabel) { + url = @"https://github.com/wikimedia/apps-ios-wikipedia"; + }else if (recognizer.view == self.gerritLabel) { + url = @"https://gerrit.wikimedia.org/r/#/q/project:apps/ios/wikipedia,n,z"; + }else if (recognizer.view == self.wikiFontLabel) { + url = @"https://github.com/munmay/WikiFont"; + }else if (recognizer.view == self.hppleLabel) { + url = @"https://github.com/topfunky/hpple"; + }else if (recognizer.view == self.nsdateLabel) { + url = @"https://github.com/erica/NSDate-Extensions"; + } + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; +} + +- (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/MainMenu/MainMenuViewController.m b/wikipedia/View Controllers/MainMenu/MainMenuViewController.m index e65b6c7..7e372b5 100644 --- a/wikipedia/View Controllers/MainMenu/MainMenuViewController.m +++ b/wikipedia/View Controllers/MainMenu/MainMenuViewController.m @@ -24,6 +24,7 @@ #import "MainMenuRowView.h" #import "PageHistoryViewController.h" +#import "CreditsViewController.h" #pragma mark - Defines @@ -39,7 +40,8 @@ ROW_INDEX_SEARCH_LANGUAGE = 5, ROW_INDEX_ZERO_WARN_WHEN_LEAVING = 6, ROW_INDEX_SEND_FEEDBACK = 7, - ROW_INDEX_PAGE_HISTORY = 8 + ROW_INDEX_PAGE_HISTORY = 8, + ROW_INDEX_CREDITS = 9 } MainMenuRowIndex; #pragma mark - Private @@ -277,6 +279,14 @@ @"imageName": @"main_menu_save.png", @"highlighted": @YES, }.mutableCopy + , + @{ + @"domain": [SessionSingleton sharedInstance].domain, + @"title": MWLocalizedString(@"main-menu-credits", nil), + @"tag": @(ROW_INDEX_CREDITS), + @"imageName": @"main_menu_foreign_characters_gray.png", + @"highlighted": @YES, + }.mutableCopy ].mutableCopy; self.rowData = rowData; @@ -387,6 +397,13 @@ [NAV pushViewController:pageHistoryVC animated:YES]; } break; + case ROW_INDEX_CREDITS: + { + CreditsViewController *creditsVC = + [NAV.storyboard instantiateViewControllerWithIdentifier:@"CreditsViewController"]; + [NAV pushViewController:creditsVC animated:YES]; + } + break; default: break; } diff --git a/wikipedia/en.lproj/Localizable.strings b/wikipedia/en.lproj/Localizable.strings index dbd3230..b212ea7 100644 --- a/wikipedia/en.lproj/Localizable.strings +++ b/wikipedia/en.lproj/Localizable.strings @@ -76,6 +76,7 @@ "main-menu-feedback-heading" = "Feedback"; "main-menu-send-feedback" = "Send feedback"; "main-menu-show-page-history" = "History of changes to $1"; +"main-menu-credits" = "Credits"; "saved-pages-title" = "Saved Pages"; "page-history-title" = "Page History"; @@ -108,3 +109,9 @@ "article-pull-to-refresh-prompt" = "Pull to refresh article"; "article-pull-to-refresh-is-refreshing" = "Refreshing article"; + +"credits-title" = "Open source repositories"; +"credits-wikimedia-repos" = "Wikimedia"; +"credits-gerrit-repo" = "App main (Gerrit)"; +"credits-github-mirror" = "App mirror (GitHub)"; +"credits-external-libraries" = "External"; diff --git a/wikipedia/qqq.lproj/Localizable.strings b/wikipedia/qqq.lproj/Localizable.strings index 6e1250c..eb8bc84 100644 --- a/wikipedia/qqq.lproj/Localizable.strings +++ b/wikipedia/qqq.lproj/Localizable.strings @@ -73,6 +73,7 @@ "main-menu-feedback-heading" = "Header text for app feedback.\n{{Identical|Feedback}}"; "main-menu-send-feedback" = "Button text for button to send app feedback.\n{{Identical|Send feedback}}"; "main-menu-show-page-history" = "Button text for showing history of changes to current article. Parameters:\n* $1 - page title"; +"main-menu-credits" = "Button text for showing credits for external open source libraries used"; "saved-pages-title" = "Header text for Saved Pages interface.\n{{Identical|Saved page}}"; "page-history-title" = "Header text for Page History interface"; "navbar-title-mode-edit-wikitext" = "Header text shown when wikitext is being edited"; @@ -99,3 +100,8 @@ "fetching-random-article" = "Alert text shown when fetching a random article"; "article-pull-to-refresh-prompt" = "Label text informing user article may be pulled down to refresh"; "article-pull-to-refresh-is-refreshing" = "Label text shown when user pulls down on article to refresh"; +"credits-title" = "Title for credits page"; +"credits-wikimedia-repos" = "Title for area of credits page showing Wikimedia open source repositories for app"; +"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"; -- To view, visit https://gerrit.wikimedia.org/r/127378 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibe65df5cba9223d66dfa9bd7a8769a24f0c059ec Gerrit-PatchSet: 1 Gerrit-Project: apps/ios/wikipedia Gerrit-Branch: master Gerrit-Owner: Mhurd <mh...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits