Skip to content

Commit

Permalink
Add Swift UI feature toggle
Browse files Browse the repository at this point in the history
  • Loading branch information
JakeLin committed May 24, 2021
1 parent 40a6e60 commit b7c951f
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 3 deletions.
Expand Up @@ -32,7 +32,8 @@ struct InternalMenuViewModel: InternalMenuViewModelType {
let featureTogglesSection = InternalMenuSection(
title: L10n.InternalMenu.featureToggles,
items: [
InternalMenuFeatureToggleItemViewModel(title: L10n.InternalMenu.likeButtonForMomentEnabled, toggle: InternalToggle.isLikeButtonForMomentEnabled)
InternalMenuLikeButtonToggleItemViewModel(togglesDataStore: InternalTogglesDataStore.shared),
InternalMenuSwiftUIToggleItemViewModel(togglesDataStore: InternalTogglesDataStore.shared)
])

let toolsSection = InternalMenuSection(
Expand Down
Expand Up @@ -9,6 +9,7 @@ import Foundation

enum InternalToggle: String, ToggleType {
case isLikeButtonForMomentEnabled
case isSwiftUIEnabled
}

struct InternalTogglesDataStore: TogglesDataStoreType {
Expand All @@ -17,7 +18,8 @@ struct InternalTogglesDataStore: TogglesDataStoreType {
private init(userDefaults: UserDefaults) {
self.userDefaults = userDefaults
self.userDefaults.register(defaults: [
InternalToggle.isLikeButtonForMomentEnabled.rawValue: false
InternalToggle.isLikeButtonForMomentEnabled.rawValue: false,
InternalToggle.isSwiftUIEnabled.rawValue: false
])
}

Expand Down
2 changes: 2 additions & 0 deletions Moments/Moments/Generated/Strings.swift
Expand Up @@ -56,6 +56,8 @@ internal enum L10n {
internal static let likeButtonForMomentEnabled = L10n.tr("Localizable", "internalMenu.likeButtonForMomentEnabled")
/// Star favorite button
internal static let starFavoriteButton = L10n.tr("Localizable", "internalMenu.starFavoriteButton")
/// Swift UI Enable
internal static let swiftUIEnabled = L10n.tr("Localizable", "internalMenu.swiftUIEnabled")
/// Tools
internal static let tools = L10n.tr("Localizable", "internalMenu.tools")
/// Typography
Expand Down
1 change: 1 addition & 0 deletions Moments/Moments/Resources/en.lproj/Localizable.strings
Expand Up @@ -25,6 +25,7 @@
"internalMenu.heartFavoriteButton" = "Heart favorite button";

"internalMenu.likeButtonForMomentEnabled" = "Like Button Enable";
"internalMenu.swiftUIEnabled" = "Swift UI Enable";

// Moments List
"momentsList.errorMessage" = "Something went wrong, please try again later";
Expand Down
Expand Up @@ -25,6 +25,7 @@
"internalMenu.heartFavoriteButton" = "心形点赞按钮";

"internalMenu.likeButtonForMomentEnabled" = "开启点赞按钮";
"internalMenu.swiftUIEnabled" = "开启 Swift UI";

// Moments List
"momentsList.errorMessage" = "出错啦,请稍后再试";
Expand Down
6 changes: 5 additions & 1 deletion Moments/Moments/SceneDelegate.swift
Expand Up @@ -28,7 +28,11 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
if UIApplication.shared.isRunningUnitTests {
window?.rootViewController = UnitTestViewController()
} else {
window?.rootViewController = MomentsTimelineViewController()
if InternalTogglesDataStore.shared.isToggleOn(InternalToggle.isSwiftUIEnabled) {

} else {
window?.rootViewController = MomentsTimelineViewController()
}
}
window?.makeKeyAndVisible()

Expand Down

0 comments on commit b7c951f

Please sign in to comment.