Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add YiR dev settings #5016

Merged
merged 2 commits into from
Oct 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@ import WMFData
let enableAltTextExperimentForEN: String
let alwaysShowAltTextEntryPoint: String
let sendAnalyticsToWMFLabs: String
let enableYearinReview: String
let close: String

@objc public init(developerSettings: String, doNotPostImageRecommendations: String, enableAltTextExperimentForEN: String, alwaysShowAltTextEntryPoint: String, sendAnalyticsToWMFLabs: String, close: String) {
@objc public init(developerSettings: String, doNotPostImageRecommendations: String, enableAltTextExperimentForEN: String, alwaysShowAltTextEntryPoint: String, sendAnalyticsToWMFLabs: String, enableYearinReview: String, close: String) {
self.developerSettings = developerSettings
self.doNotPostImageRecommendations = doNotPostImageRecommendations
self.enableAltTextExperimentForEN = enableAltTextExperimentForEN
self.alwaysShowAltTextEntryPoint = alwaysShowAltTextEntryPoint
self.sendAnalyticsToWMFLabs = sendAnalyticsToWMFLabs
self.enableYearinReview = enableYearinReview
self.close = close
}
}
Expand All @@ -33,13 +35,12 @@ import WMFData
let enableAltTextExperimentItemForENItem = WMFFormItemSelectViewModel(title: localizedStrings.enableAltTextExperimentForEN, isSelected: WMFDeveloperSettingsDataController.shared.enableAltTextExperimentForEN)
let alwaysShowAltTextEntryPointItem = WMFFormItemSelectViewModel(title: localizedStrings.alwaysShowAltTextEntryPoint, isSelected: WMFDeveloperSettingsDataController.shared.alwaysShowAltTextEntryPoint)
let sendAnalyticsToWMFLabsItem = WMFFormItemSelectViewModel(title: localizedStrings.sendAnalyticsToWMFLabs, isSelected: WMFDeveloperSettingsDataController.shared.sendAnalyticsToWMFLabs)
let enableYearinReviewItem = WMFFormItemSelectViewModel(title: localizedStrings.enableYearinReview, isSelected: WMFDeveloperSettingsDataController.shared.enableYearInReview)

formViewModel = WMFFormViewModel(sections: [WMFFormSectionSelectViewModel(items: [doNotPostImageRecommendationsEditItem, enableAltTextExperimentItemForENItem, alwaysShowAltTextEntryPointItem, sendAnalyticsToWMFLabsItem], selectType: .multi)])
formViewModel = WMFFormViewModel(sections: [WMFFormSectionSelectViewModel(items: [doNotPostImageRecommendationsEditItem, enableAltTextExperimentItemForENItem, alwaysShowAltTextEntryPointItem, sendAnalyticsToWMFLabsItem, enableYearinReviewItem], selectType: .multi)])

doNotPostImageRecommendationsEditItem.$isSelected.sink { isSelected in

WMFDeveloperSettingsDataController.shared.doNotPostImageRecommendationsEdit = isSelected

}.store(in: &subscribers)

enableAltTextExperimentItemForENItem.$isSelected.sink { isSelected in
Expand All @@ -54,6 +55,10 @@ import WMFData
WMFDeveloperSettingsDataController.shared.sendAnalyticsToWMFLabs = isSelected
}.store(in: &subscribers)

enableYearinReviewItem.$isSelected.sink { isSelected in
WMFDeveloperSettingsDataController.shared.enableYearInReview = isSelected
}.store(in: &subscribers)

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,15 @@ import Foundation
try? userDefaultsStore?.save(key: WMFUserDefaultsKey.developerSettingsSendAnalyticsToWMFLabs.rawValue, value: newValue)
}
}


public var enableYearInReview: Bool {
get {
return ( try? userDefaultsStore?.load(key: WMFUserDefaultsKey.yearInReviewEnabled.rawValue)) ?? false
} set {
try? userDefaultsStore?.save(key: WMFUserDefaultsKey.yearInReviewEnabled.rawValue, value: newValue)
}
}

// MARK: - Remote Settings from donatewiki AppsFeatureConfig json

public func loadFeatureConfig() -> WMFFeatureConfigResponse? {
Expand Down Expand Up @@ -80,7 +88,7 @@ import Foundation
}

@objc public func fetchFeatureConfig(completion: @escaping (Error?) -> Void) {

guard let service else {
completion(WMFDataControllerError.basicServiceUnavailable)
return
Expand All @@ -90,34 +98,35 @@ import Foundation
completion(WMFDataControllerError.basicServiceUnavailable)
return
}

let featureConfigParameters: [String: Any] = [
"action": "raw"
]

let featureConfigRequest = WMFBasicServiceRequest(url: featureConfigURL, method: .GET, parameters: featureConfigParameters, acceptType: .json)
service.performDecodableGET(request: featureConfigRequest) { [weak self] (result: Result<WMFFeatureConfigResponse, Error>) in

guard let self else {
return
}

switch result {
case .success(let response):
self.featureConfig = response
self.featureConfig?.cachedDate = Date()

do {
try self.sharedCacheStore?.save(key: self.cacheDirectoryName, self.cacheFeatureConfigFileName, value: featureConfig)
} catch {
print(error)
}


completion(nil)
case .failure(let error):
completion(error)
}
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import Foundation

final public class WMFYearInReviewDataController {

}
1 change: 1 addition & 0 deletions WMFData/Sources/WMFData/Store/WMFUserDefaultsKey.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ enum WMFUserDefaultsKey: String {
case sawAltTextArticleEditorPrompt = "saw-alt-text-article-editor-prompt"
case altTextExperimentOnboarding = "alt-text-experiment-onboarding"
case hasLocallySavedDonations = "donate-history-has-locally-saved-donations"
case yearInReviewEnabled = "year-in-review-enabled"
}
6 changes: 4 additions & 2 deletions Wikipedia/Code/AboutViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -211,8 +211,10 @@ - (void)presentDeveloperSettings {
NSString *alwaysShowAltTextEntryPoint = WMFLocalizedStringWithDefaultValue(@"developer-settings-always-show-alt-text-entry-point", nil, nil, @"Always show alt text entry point.", @"Title for always showing the alt text experiment entry point. Displayed on the developer settings view.");

NSString *sendAnalyticsToWMFLabs = WMFLocalizedStringWithDefaultValue(@"developer-settings-send-analytics-to-wmflabs", nil, nil, @"Send analytics to wmflabs.", @"Title for setting to send analytics to a different backend. Displayed on the developer settings view.");

WMFDeveloperSettingsLocalizedStrings *localizedStrings = [[WMFDeveloperSettingsLocalizedStrings alloc] initWithDeveloperSettings:developerSettings doNotPostImageRecommendations:doNotPostImageRecommendations enableAltTextExperimentForEN:enableAltTextExperimentForEN alwaysShowAltTextEntryPoint:alwaysShowAltTextEntryPoint sendAnalyticsToWMFLabs:sendAnalyticsToWMFLabs close:[WMFCommonStrings closeButtonAccessibilityLabel]];

NSString *enableYearInReview = WMFLocalizedStringWithDefaultValue(@"developer-settings-enable-year-in-review", nil, nil, @"Enable Year in Review" , @"Title for enabling the Year in Review feature. Displayed on the developer settings view.");

WMFDeveloperSettingsLocalizedStrings *localizedStrings = [[WMFDeveloperSettingsLocalizedStrings alloc] initWithDeveloperSettings:developerSettings doNotPostImageRecommendations:doNotPostImageRecommendations enableAltTextExperimentForEN:enableAltTextExperimentForEN alwaysShowAltTextEntryPoint:alwaysShowAltTextEntryPoint sendAnalyticsToWMFLabs:sendAnalyticsToWMFLabs enableYearinReview:enableYearInReview close:WMFCommonStrings.closeButtonAccessibilityLabel];
WMFDeveloperSettingsViewModel *viewModel = [[WMFDeveloperSettingsViewModel alloc] initWithLocalizedStrings:localizedStrings];

WMFDeveloperSettingsViewController *viewController = [[WMFDeveloperSettingsViewController alloc] initWithViewModel:viewModel];
Expand Down
1 change: 1 addition & 0 deletions Wikipedia/Localizations/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,7 @@
"developer-settings" = "Developer Settings";
"developer-settings-always-show-alt-text-entry-point" = "Always show alt text entry point.";
"developer-settings-enable-alt-text-experiment-en" = "Enable Alt Text experiment for English Wikipedia.";
"developer-settings-enable-year-in-review" = "Enable Year in Review";
"developer-settings-send-analytics-to-wmflabs" = "Send analytics to wmflabs.";
"developer-settings-suppress-image-rec-post" = "Do not post image recommendations edit.";
"diff-article-revision-history" = "Article revision history";
Expand Down
1 change: 1 addition & 0 deletions Wikipedia/Localizations/qqq.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,7 @@
"developer-settings" = "Title for developer settings view.";
"developer-settings-always-show-alt-text-entry-point" = "Title for always showing the alt text experiment entry point. Displayed on the developer settings view.";
"developer-settings-enable-alt-text-experiment-en" = "Title for setting to enable alt text experiment for English Wikipedia. Displayed on the developer settings view.";
"developer-settings-enable-year-in-review" = "Title for enabling the Year in Review feature. Displayed on the developer settings view.";
"developer-settings-send-analytics-to-wmflabs" = "Title for setting to send analytics to a different backend. Displayed on the developer settings view.";
"developer-settings-suppress-image-rec-post" = "Title for setting to suppress image recommendations edit postsing. Displayed on the developer settings view.";
"diff-article-revision-history" = "Label for article edit history menu item in diff more menu.";
Expand Down
Binary file modified Wikipedia/iOS Native Localizations/en.lproj/Localizable.strings
Binary file not shown.