Brion VIBBER has submitted this change and it was merged.
Change subject: Changing Wikipedia Zero On/Off.
......................................................................
Changing Wikipedia Zero On/Off.
* Now a fixed box at bottom of screen when On, temporary when Off.
Change-Id: I0a0924af08682fd82398a6d5a827a589811f0122
---
M Wikipedia.xcodeproj/project.pbxproj
M wikipedia/AppDelegate.m
M wikipedia/Base.lproj/Main_iPhone.storyboard
M wikipedia/Data/Operations/DownloadWikipediaZeroMessageOp.m
M wikipedia/View Controllers/TopNav/NavController.h
M wikipedia/View Controllers/TopNav/NavController.m
M wikipedia/View Controllers/WebView/WebViewController.m
A wikipedia/View Controllers/WebView/ZeroStatusLabel.h
A wikipedia/View Controllers/WebView/ZeroStatusLabel.m
M wikipedia/Web Image Interception/URLCache.m
M wikipedia/Zero/ZeroConfigState.h
M wikipedia/Zero/ZeroConfigState.m
12 files changed, 168 insertions(+), 40 deletions(-)
Approvals:
Mhurd: Looks good to me, but someone else must approve
Brion VIBBER: Verified; Looks good to me, approved
diff --git a/Wikipedia.xcodeproj/project.pbxproj
b/Wikipedia.xcodeproj/project.pbxproj
index 72dee5e..926c320 100644
--- a/Wikipedia.xcodeproj/project.pbxproj
+++ b/Wikipedia.xcodeproj/project.pbxproj
@@ -11,6 +11,7 @@
0402E10F18A3ABA900C3B679 /* NavBarContainerView.m in Sources */
= {isa = PBXBuildFile; fileRef = 0402E10E18A3ABA900C3B679 /*
NavBarContainerView.m */; };
0406CEF618F8C390007EE43E /* LogEventOp.m in Sources */ = {isa =
PBXBuildFile; fileRef = 0406CEF518F8C390007EE43E /* LogEventOp.m */; };
0406CEF918F8D6F7007EE43E /* UIViewController+LogEvent.m in
Sources */ = {isa = PBXBuildFile; fileRef = 0406CEF818F8D6F7007EE43E /*
UIViewController+LogEvent.m */; };
+ 0406CEFC18FC88A6007EE43E /* ZeroStatusLabel.m in Sources */ =
{isa = PBXBuildFile; fileRef = 0406CEFB18FC88A6007EE43E /* ZeroStatusLabel.m
*/; };
04082B5318ADA25A00FAF3D6 /* text_field_x_circle_gray.png in
Resources */ = {isa = PBXBuildFile; fileRef = 04082B5118ADA25A00FAF3D6 /*
text_field_x_circle_gray.png */; };
04082B5518ADA25A00FAF3D6 /* [email protected] in
Resources */ = {isa = PBXBuildFile; fileRef = 04082B5218ADA25A00FAF3D6 /*
[email protected] */; };
04090A33187F53E400577EDF /* clear.png in Resources */ = {isa =
PBXBuildFile; fileRef = 04090A32187F53E400577EDF /* clear.png */; };
@@ -194,6 +195,8 @@
0406CEF518F8C390007EE43E /* LogEventOp.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= LogEventOp.m; sourceTree = "<group>"; };
0406CEF718F8D6F7007EE43E /* UIViewController+LogEvent.h */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = "UIViewController+LogEvent.h"; sourceTree = "<group>"; };
0406CEF818F8D6F7007EE43E /* UIViewController+LogEvent.m */ =
{isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; path = "UIViewController+LogEvent.m"; sourceTree =
"<group>"; };
+ 0406CEFA18FC88A6007EE43E /* ZeroStatusLabel.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
ZeroStatusLabel.h; sourceTree = "<group>"; };
+ 0406CEFB18FC88A6007EE43E /* ZeroStatusLabel.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= ZeroStatusLabel.m; sourceTree = "<group>"; };
04082B5118ADA25A00FAF3D6 /* text_field_x_circle_gray.png */ =
{isa = PBXFileReference; lastKnownFileType = image.png; path =
text_field_x_circle_gray.png; sourceTree = "<group>"; };
04082B5218ADA25A00FAF3D6 /* [email protected] */
= {isa = PBXFileReference; lastKnownFileType = image.png; path =
"[email protected]"; sourceTree = "<group>"; };
04090A32187F53E400577EDF /* clear.png */ = {isa =
PBXFileReference; lastKnownFileType = image.png; path = clear.png; sourceTree =
"<group>"; };
@@ -740,6 +743,8 @@
04478625185145090050563B /* WebView */ = {
isa = PBXGroup;
children = (
+ 0406CEFA18FC88A6007EE43E /* ZeroStatusLabel.h
*/,
+ 0406CEFB18FC88A6007EE43E /* ZeroStatusLabel.m
*/,
0447862D185145090050563B /* WebViewController.h
*/,
0447862E185145090050563B /* WebViewController.m
*/,
);
@@ -1501,6 +1506,7 @@
04293000185FC2C7002A13FC /* QueuesSingleton.m
in Sources */,
04D34DC91863F6CC00610A87 /* Saved.m in Sources
*/,
04EA3A5B18D25D7700E2F5C4 /*
UINavigationController+Alert.m in Sources */,
+ 0406CEFC18FC88A6007EE43E /* ZeroStatusLabel.m
in Sources */,
04D34DE11868E21F00610A87 /*
Article+Convenience.m in Sources */,
04D34DB91863F69500610A87 /* DiscoveryContext.m
in Sources */,
04142A8F184F974E006EF779 /* NSDate-Utilities.m
in Sources */,
diff --git a/wikipedia/AppDelegate.m b/wikipedia/AppDelegate.m
index b71bb37..c2aacdf 100644
--- a/wikipedia/AppDelegate.m
+++ b/wikipedia/AppDelegate.m
@@ -40,7 +40,8 @@
@"Site": @"wikipedia.org",
@"ZeroWarnWhenLeaving" : @YES,
@"ZeroOnDialogShownOnce" : @NO,
- @"ZeroOffDialogShownOnce" : @NO
+ @"ZeroOffDialogShownOnce" : @NO,
+ @"FakeZeroOn" : @NO
};
[[NSUserDefaults standardUserDefaults]
registerDefaults:userDefaultsDefaults];
}
diff --git a/wikipedia/Base.lproj/Main_iPhone.storyboard
b/wikipedia/Base.lproj/Main_iPhone.storyboard
index fdae2ba..4dde14f 100644
--- a/wikipedia/Base.lproj/Main_iPhone.storyboard
+++ b/wikipedia/Base.lproj/Main_iPhone.storyboard
@@ -988,16 +988,27 @@
<constraint firstAttribute="centerY"
secondItem="vSI-Du-yis" secondAttribute="centerY" id="q7i-mm-NjB"/>
</constraints>
</view>
+ <label opaque="NO" clipsSubviews="YES"
userInteractionEnabled="NO" alpha="0.93000000000000005" contentMode="left"
horizontalHuggingPriority="251" verticalHuggingPriority="251" text=""
textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0"
baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO"
preferredMaxLayoutWidth="320" translatesAutoresizingMaskIntoConstraints="NO"
id="aCV-ih-PXn" userLabel="Zero Status Label" customClass="ZeroStatusLabel">
+ <rect key="frame" x="0.0" y="504" width="320"
height="0.0"/>
+ <autoresizingMask key="autoresizingMask"
flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <color key="backgroundColor" white="0.0"
alpha="1" colorSpace="calibratedWhite"/>
+ <fontDescription key="fontDescription"
type="system" pointSize="10"/>
+ <color key="textColor" white="1" alpha="1"
colorSpace="calibratedWhite"/>
+ <nil key="highlightedColor"/>
+ </label>
</subviews>
<color key="backgroundColor" red="1" green="1"
blue="1" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="WeL-Mj-Zsh"
firstAttribute="top" secondItem="C8y-0k-FBq" secondAttribute="bottom"
id="3Gh-gP-O56"/>
<constraint firstItem="WeL-Mj-Zsh"
firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leading"
id="3Zs-jL-a48"/>
+ <constraint firstAttribute="trailing"
secondItem="aCV-ih-PXn" secondAttribute="trailing" id="5C2-ao-aE8"/>
<constraint firstItem="WeL-Mj-Zsh"
firstAttribute="leading" secondItem="F4Q-Xc-ImV" secondAttribute="leading"
id="87k-zE-vFH"/>
<constraint firstAttribute="trailing"
secondItem="F4Q-Xc-ImV" secondAttribute="trailing" id="D19-HH-fX5"/>
<constraint firstAttribute="trailing"
secondItem="WeL-Mj-Zsh" secondAttribute="trailing" id="QSr-uN-iN4"/>
<constraint firstAttribute="bottom"
secondItem="WeL-Mj-Zsh" secondAttribute="bottom" id="UTu-Ve-ee9"/>
- <constraint firstAttribute="bottom"
secondItem="F4Q-Xc-ImV" secondAttribute="bottom" id="aO2-JM-8QC"/>
+ <constraint firstItem="aCV-ih-PXn"
firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leading"
id="asD-mW-6X0"/>
+ <constraint firstItem="aCV-ih-PXn"
firstAttribute="top" secondItem="F4Q-Xc-ImV" secondAttribute="bottom"
id="bCO-Yn-w7h"/>
+ <constraint firstAttribute="bottom"
secondItem="aCV-ih-PXn" secondAttribute="bottom" id="bls-Ke-Bwu"/>
</constraints>
</view>
<extendedEdge key="edgesForExtendedLayout"/>
@@ -1014,6 +1025,7 @@
<outlet property="webView" destination="WeL-Mj-Zsh"
id="UAL-nl-cQD"/>
<outlet property="webViewLeftConstraint"
destination="3Zs-jL-a48" id="fnl-sG-tsS"/>
<outlet property="webViewRightConstraint"
destination="QSr-uN-iN4" id="EG4-9F-vyJ"/>
+ <outlet property="zeroStatusLabel"
destination="aCV-ih-PXn" id="uhp-ae-eMa"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder"
id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
diff --git a/wikipedia/Data/Operations/DownloadWikipediaZeroMessageOp.m
b/wikipedia/Data/Operations/DownloadWikipediaZeroMessageOp.m
index d56bd8a..c415c55 100644
--- a/wikipedia/Data/Operations/DownloadWikipediaZeroMessageOp.m
+++ b/wikipedia/Data/Operations/DownloadWikipediaZeroMessageOp.m
@@ -56,6 +56,14 @@
NSString *zeroRatedMessage = json.count > 0 ? [json
objectForKey:@"message"] : nil;
+ // For testing Wikipedia Zero visual flourishes.
+ // Go to WebViewController.m and uncomment the W0 part,
+ // then when running the app in the simulator fire the
+ // memory warning to toggle the fake state on or off.
+ if ([SessionSingleton sharedInstance].zeroConfigState.fakeZeroOn) {
+ zeroRatedMessage = @"Free Wikipedia by Test Operator";
+ }
+
if (zeroRatedMessage) {
completionBlock(zeroRatedMessage);
}
diff --git a/wikipedia/View Controllers/TopNav/NavController.h b/wikipedia/View
Controllers/TopNav/NavController.h
index 28c0f20..c35a662 100644
--- a/wikipedia/View Controllers/TopNav/NavController.h
+++ b/wikipedia/View Controllers/TopNav/NavController.h
@@ -56,6 +56,9 @@
animated: (BOOL)animated
discoveryMethod: (ArticleDiscoveryMethod)discoveryMethod;
+-(void) promptFirstTimeZeroOnWithMessageIfAppropriate:(NSString *) message;
+-(void) promptFirstTimeZeroOffIfAppropriate;
+
@end
//TODO: maybe use currentNavBarTextFieldText instead of currentSearchString?
diff --git a/wikipedia/View Controllers/TopNav/NavController.m b/wikipedia/View
Controllers/TopNav/NavController.m
index ceaf1a5..eaa252a 100644
--- a/wikipedia/View Controllers/TopNav/NavController.m
+++ b/wikipedia/View Controllers/TopNav/NavController.m
@@ -52,6 +52,7 @@
@property (strong, nonatomic) NSDictionary *navBarSubViewMetrics;
@property (nonatomic) BOOL isTransitioningBetweenViewControllers;
+@property (strong, nonatomic) NSString *wikipediaZeroLearnMoreExternalUrl;
@end
@@ -802,4 +803,47 @@
return editVC ? YES : NO;
}
+#pragma Wikipedia Zero alert dialogs
+
+// Don't call this directly. Use promptFirstTimeZeroOnWithMessageIfAppropriate
or promptFirstTimeZeroOffIfAppropriate
+-(void) promptZeroOnOrOff:(NSString *) message
+{
+ self.wikipediaZeroLearnMoreExternalUrl =
MWLocalizedString(@"zero-webpage-url", nil);
+ UIAlertView *dialog = [[UIAlertView alloc]
+ initWithTitle: (message ? message :
MWLocalizedString(@"zero-charged-verbiage", nil))
+ message:MWLocalizedString(@"zero-learn-more", nil)
+ delegate:self
+
cancelButtonTitle:MWLocalizedString(@"zero-learn-more-no-thanks", nil)
+
otherButtonTitles:MWLocalizedString(@"zero-learn-more-learn-more", nil)
+ , nil];
+ [dialog show];
+}
+
+-(void) promptFirstTimeZeroOnWithMessageIfAppropriate:(NSString *) message {
+ if (![SessionSingleton
sharedInstance].zeroConfigState.zeroOnDialogShownOnce || ![self
isTopViewControllerAWebviewController]) {
+ [[SessionSingleton sharedInstance].zeroConfigState
setZeroOnDialogShownOnce];
+ [self promptZeroOnOrOff:message];
+ }
+}
+
+-(void) promptFirstTimeZeroOffIfAppropriate {
+ if (![SessionSingleton
sharedInstance].zeroConfigState.zeroOffDialogShownOnce || ![self
isTopViewControllerAWebviewController]) {
+ [[SessionSingleton sharedInstance].zeroConfigState
setZeroOffDialogShownOnce];
+ [self promptZeroOnOrOff:nil];
+ }
+}
+
+- (void)alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex
+{
+ if (1 == buttonIndex) {
+ NSURL *url = [NSURL
URLWithString:self.wikipediaZeroLearnMoreExternalUrl];
+ [[UIApplication sharedApplication] openURL:url];
+ }
+}
+
+-(BOOL) isTopViewControllerAWebviewController
+{
+ return [[self topViewController] isMemberOfClass:[WebViewController
class]];
+}
+
@end
diff --git a/wikipedia/View Controllers/WebView/WebViewController.m
b/wikipedia/View Controllers/WebView/WebViewController.m
index e93ad9c..2ebe7b9 100644
--- a/wikipedia/View Controllers/WebView/WebViewController.m
+++ b/wikipedia/View Controllers/WebView/WebViewController.m
@@ -32,6 +32,7 @@
#import "Section+ImageRecords.h"
#import "NSString+Extras.h"
+#import "ZeroStatusLabel.h"
//#import "UIView+Debugging.h"
#define TOC_TOGGLE_ANIMATION_DURATION 0.3f
@@ -81,6 +82,8 @@
- (IBAction)backButtonPushed:(id)sender;
- (IBAction)forwardButtonPushed:(id)sender;
- (IBAction)languageButtonPushed:(id)sender;
+
+@property (strong, nonatomic) IBOutlet ZeroStatusLabel *zeroStatusLabel;
@end
@@ -802,6 +805,9 @@
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
+
+ // Do not remove the following commented toggle. It's for testing W0 stuff.
+ // [[SessionSingleton sharedInstance].zeroConfigState toggleFakeZeroOn];
}
-(NSString *)cleanTitle:(NSString *)title
@@ -1351,15 +1357,14 @@
NavBarTextField *textField = [NAV
getNavBarItem:NAVBAR_TEXT_FIELD];
textField.placeholder =
MWLocalizedString(@"search-field-placeholder-text-zero", nil);
-
- NAV.navBarStyle = NAVBAR_STYLE_NIGHT;
-
+
+ self.zeroStatusLabel.text = message;
+ self.zeroStatusLabel.paddingEdgeInsets =
UIEdgeInsetsMake(3, 10, 3, 10);
+ self.zeroStatusLabel.backgroundColor = [UIColor
colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.93];
+
[self showAlert:message];
- [self
promptFirstTimeZeroOnWithMessageIfAppropriate:message];
+ [NAV
promptFirstTimeZeroOnWithMessageIfAppropriate:message];
});
-
- // [self showHTMLAlert:message bannerImage:nil bannerColor:
- // [UIColor colorWithWhite:0.0 alpha:1.0]];
}
} cancelledBlock:^(NSError *errorCancel) {
NSLog(@"error w0 cancel");
@@ -1373,10 +1378,18 @@
NavBarTextField *textField = [NAV getNavBarItem:NAVBAR_TEXT_FIELD];
textField.placeholder =
MWLocalizedString(@"search-field-placeholder-text", nil);
+ NSString *warnVerbiage = MWLocalizedString(@"zero-charged-verbiage",
nil);
- NAV.navBarStyle = NAVBAR_STYLE_DAY;
- [self showAlert:MWLocalizedString(@"zero-charged-verbiage", nil)];
- [self promptFirstTimeZeroOffIfAppropriate];
+ self.zeroStatusLabel.text = warnVerbiage;
+ self.zeroStatusLabel.backgroundColor = [UIColor redColor];
+
+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 *
NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+ self.zeroStatusLabel.text = @"";
+ self.zeroStatusLabel.paddingEdgeInsets = UIEdgeInsetsZero;
+ });
+
+ [self showAlert:warnVerbiage];
+ [NAV promptFirstTimeZeroOffIfAppropriate];
}
}
@@ -1385,34 +1398,6 @@
if (1 == buttonIndex) {
NSURL *url = [NSURL URLWithString:self.externalUrl];
[[UIApplication sharedApplication] openURL:url];
- }
-}
-
-// Don't call this directly. Use promptFirstTimeZeroOnWithMessageIfAppropriate
or promptFirstTimeZeroOffIfAppropriate
--(void) promptFirstTimeZeroOnOrOff:(NSString *) message
-{
- self.externalUrl = MWLocalizedString(@"zero-webpage-url", nil);
- UIAlertView *dialog = [[UIAlertView alloc]
- initWithTitle: (message ? message :
MWLocalizedString(@"zero-charged-verbiage", nil))
- message:MWLocalizedString(@"zero-learn-more", nil)
- delegate:self
-
cancelButtonTitle:MWLocalizedString(@"zero-learn-more-no-thanks", nil)
-
otherButtonTitles:MWLocalizedString(@"zero-learn-more-learn-more", nil)
- , nil];
- [dialog show];
-}
-
--(void) promptFirstTimeZeroOnWithMessageIfAppropriate:(NSString *) message {
- if (![SessionSingleton
sharedInstance].zeroConfigState.zeroOnDialogShownOnce) {
- [[SessionSingleton sharedInstance].zeroConfigState
setZeroOnDialogShownOnce];
- [self promptFirstTimeZeroOnOrOff:message];
- }
-}
-
--(void) promptFirstTimeZeroOffIfAppropriate {
- if (![SessionSingleton
sharedInstance].zeroConfigState.zeroOffDialogShownOnce) {
- [[SessionSingleton sharedInstance].zeroConfigState
setZeroOffDialogShownOnce];
- [self promptFirstTimeZeroOnOrOff:nil];
}
}
diff --git a/wikipedia/View Controllers/WebView/ZeroStatusLabel.h
b/wikipedia/View Controllers/WebView/ZeroStatusLabel.h
new file mode 100644
index 0000000..8a34556
--- /dev/null
+++ b/wikipedia/View Controllers/WebView/ZeroStatusLabel.h
@@ -0,0 +1,10 @@
+// Created by Monte Hurd on 12/9/13.
+// Copyright (c) 2013 Wikimedia Foundation. Provided under MIT-style license;
please copy and modify!
+
+#import <UIKit/UIKit.h>
+
+@interface ZeroStatusLabel : UILabel
+
+@property (nonatomic) UIEdgeInsets paddingEdgeInsets;
+
+@end
diff --git a/wikipedia/View Controllers/WebView/ZeroStatusLabel.m
b/wikipedia/View Controllers/WebView/ZeroStatusLabel.m
new file mode 100644
index 0000000..4a4755c
--- /dev/null
+++ b/wikipedia/View Controllers/WebView/ZeroStatusLabel.m
@@ -0,0 +1,35 @@
+// Created by Monte Hurd on 4/14/14.
+// Copyright (c) 2014 Wikimedia Foundation. Provided under MIT-style license;
please copy and modify!
+
+#import "ZeroStatusLabel.h"
+
+@implementation ZeroStatusLabel
+
+- (id)init
+{
+ self = [super init];
+ if (self) {
+
+ self.paddingEdgeInsets = UIEdgeInsetsZero;
+ }
+ return self;
+}
+
+
+// Label padding edge insets! From: http://stackoverflow.com/a/21934948
+
+-(void)drawTextInRect:(CGRect)rect {
+ return [super drawTextInRect:UIEdgeInsetsInsetRect(rect,
self.paddingEdgeInsets)];
+}
+
+-(CGSize)intrinsicContentSize
+{
+ UIEdgeInsets insets = self.paddingEdgeInsets;
+ self.preferredMaxLayoutWidth = self.bounds.size.width - (insets.left +
insets.right);
+ CGSize contentSize = [super intrinsicContentSize];
+ contentSize.height += insets.top + insets.bottom;
+ contentSize.width += insets.left + insets.right;
+ return contentSize;
+}
+
+@end
diff --git a/wikipedia/Web Image Interception/URLCache.m b/wikipedia/Web Image
Interception/URLCache.m
index 5b3223d..9148ace 100644
--- a/wikipedia/Web Image Interception/URLCache.m
+++ b/wikipedia/Web Image Interception/URLCache.m
@@ -181,6 +181,16 @@
NSString *xcs = [SessionSingleton
sharedInstance].zeroConfigState.partnerXcs;
BOOL zeroProviderChanged = zeroRatedHeaderPresent && ![xZeroRatedHeader
isEqualToString:xcs];
BOOL zeroDisposition = [SessionSingleton
sharedInstance].zeroConfigState.disposition;
+
+ // For testing Wikipedia Zero visual flourishes.
+ // Go to WebViewController.m and uncomment the W0 part,
+ // then when running the app in the simulator fire the
+ // memory warning to toggle the fake state on or off.
+ if ([SessionSingleton sharedInstance].zeroConfigState.fakeZeroOn) {
+ zeroRatedHeaderPresent = YES;
+ xZeroRatedHeader = @"000-00";
+ }
+
if (zeroRatedHeaderPresent && (!zeroDisposition || zeroProviderChanged)) {
[SessionSingleton sharedInstance].zeroConfigState.disposition = YES;
[SessionSingleton sharedInstance].zeroConfigState.partnerXcs =
xZeroRatedHeader;
diff --git a/wikipedia/Zero/ZeroConfigState.h b/wikipedia/Zero/ZeroConfigState.h
index 237433e..3df69c4 100644
--- a/wikipedia/Zero/ZeroConfigState.h
+++ b/wikipedia/Zero/ZeroConfigState.h
@@ -10,9 +10,11 @@
@property (nonatomic, readonly) BOOL zeroOnDialogShownOnce;
@property (nonatomic, readonly) BOOL zeroOffDialogShownOnce;
@property (nonatomic, readonly) BOOL warnWhenLeaving;
+@property (nonatomic, readonly) BOOL fakeZeroOn;
-(void)setZeroOnDialogShownOnce;
-(void)setZeroOffDialogShownOnce;
-(void)toggleWarnWhenLeaving;
+-(void)toggleFakeZeroOn;
@end
diff --git a/wikipedia/Zero/ZeroConfigState.m b/wikipedia/Zero/ZeroConfigState.m
index 4eb70a3..db979d1 100644
--- a/wikipedia/Zero/ZeroConfigState.m
+++ b/wikipedia/Zero/ZeroConfigState.m
@@ -41,4 +41,16 @@
return [[NSUserDefaults standardUserDefaults]
boolForKey:@"ZeroWarnWhenLeaving"];
}
+-(void)toggleFakeZeroOn
+{
+ [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:
![self fakeZeroOn]]
+ forKey:@"FakeZeroOn"];
+ [[NSUserDefaults standardUserDefaults] synchronize];
+}
+
+-(BOOL)fakeZeroOn
+{
+ return [[NSUserDefaults standardUserDefaults] boolForKey:@"FakeZeroOn"];
+}
+
@end
--
To view, visit https://gerrit.wikimedia.org/r/126170
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I0a0924af08682fd82398a6d5a827a589811f0122
Gerrit-PatchSet: 2
Gerrit-Project: apps/ios/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dr0ptp4kt <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Mhurd <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits