From 75686d05b3f37d0e0030530752624edb5501c59a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sun, 6 Mar 2022 08:31:23 +0900 Subject: [PATCH 01/22] refactor: Remove `OrderedCollections` --- EhPanda/App/Tools/Extensions/Extensions.swift | 13 ++++++------- EhPanda/App/Tools/Utilities/URLUtil.swift | 7 +++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/EhPanda/App/Tools/Extensions/Extensions.swift b/EhPanda/App/Tools/Extensions/Extensions.swift index fc726c82..3ae2afd4 100644 --- a/EhPanda/App/Tools/Extensions/Extensions.swift +++ b/EhPanda/App/Tools/Extensions/Extensions.swift @@ -7,7 +7,6 @@ import SwiftUI import Foundation -import OrderedCollections // MARK: Encodable extension Encodable { @@ -78,25 +77,25 @@ extension URL { components.queryItems?.append(contentsOf: queryItems) return components.url.forceUnwrapped } - func appending(queryItems: OrderedDictionary) -> URL { + func appending(queryItems: [String: String]) -> URL { appending(queryItems: queryItems.map(URLQueryItem.init)) } - func appending(queryItems: OrderedDictionary) -> URL { + func appending(queryItems: [Defaults.URL.Component.Key: Defaults.URL.Component.Value]) -> URL { appending(queryItems: queryItems.map({ URLQueryItem(name: $0.rawValue, value: $1.rawValue) })) } - func appending(queryItems: OrderedDictionary) -> URL { + func appending(queryItems: [Defaults.URL.Component.Key: String]) -> URL { appending(queryItems: queryItems.map({ URLQueryItem(name: $0.rawValue, value: $1) })) } mutating func append(queryItems: [URLQueryItem]) { self = appending(queryItems: queryItems) } - mutating func append(queryItems: OrderedDictionary) { + mutating func append(queryItems: [String: String]) { self = appending(queryItems: queryItems) } - mutating func append(queryItems: OrderedDictionary) { + mutating func append(queryItems: [Defaults.URL.Component.Key: Defaults.URL.Component.Value]) { self = appending(queryItems: queryItems) } - mutating func append(queryItems: OrderedDictionary) { + mutating func append(queryItems: [Defaults.URL.Component.Key: String]) { self = appending(queryItems: queryItems) } } diff --git a/EhPanda/App/Tools/Utilities/URLUtil.swift b/EhPanda/App/Tools/Utilities/URLUtil.swift index 8feb3d29..2a85c5be 100644 --- a/EhPanda/App/Tools/Utilities/URLUtil.swift +++ b/EhPanda/App/Tools/Utilities/URLUtil.swift @@ -6,12 +6,11 @@ // import Foundation -import OrderedCollections struct URLUtil { // Fetch static func searchList(keyword: String, filter: Filter, pageNum: Int? = nil) -> URL { - var queryItems: OrderedDictionary = [.fSearch: keyword] + var queryItems: [Defaults.URL.Component.Key: String] = [.fSearch: keyword] if let pageNum = pageNum { queryItems[.page] = String(pageNum) } @@ -138,8 +137,8 @@ struct URLUtil { // MARK: Combining (Filter) private extension URL { func applyingFilter(_ filter: Filter) -> URL { - var queryItems1 = OrderedDictionary() - var queryItems2 = OrderedDictionary() + var queryItems1 = [Defaults.URL.Component.Key: String]() + var queryItems2 = [Defaults.URL.Component.Key: Defaults.URL.Component.Value]() var categoryValue = 0 categoryValue += filter.doujinshi ? Category.doujinshi.filterValue : 0 From 83167b96b65632f6139a6501d4854625c7c3e974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sun, 6 Mar 2022 09:07:11 +0900 Subject: [PATCH 02/22] fix: Text in tags seem invisible when its background color is white --- EhPanda/App/Tools/Parser.swift | 18 ++++++++++++++++-- EhPanda/Models/Gallery/GalleryState.swift | 1 + .../Components/Cells/GalleryDetailCell.swift | 2 +- .../Cells/GalleryThumbnailCell.swift | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/EhPanda/App/Tools/Parser.swift b/EhPanda/App/Tools/Parser.swift index 2e58c14c..ddc6696d 100644 --- a/EhPanda/App/Tools/Parser.swift +++ b/EhPanda/App/Tools/Parser.swift @@ -100,20 +100,32 @@ struct Parser { guard let titleComponents = tagLink["title"]?.split(separator: ":"), titleComponents.count == 2 else { continue } + var contentTextColor: Color? var contentBackgroundColor: Color? let namespace = String(titleComponents[0]) let contentText = String(titleComponents[1]) if let style = tagLink["style"], let rangeB = style.range(of: ",#"), let rangeA = style.range(of: "background:radial-gradient(#") { - let hex = style[rangeA.upperBound.. 151 { + contentTextColor = .black + } else { + contentTextColor = .white + } + } } if let index = tags.firstIndex(where: { $0.rawNamespace == namespace }) { let contents = tags[index].contents let galleryTagContent = GalleryTag.Content( rawNamespace: namespace, text: contentText, isVotedUp: false, isVotedDown: false, + textColor: contentTextColor, backgroundColor: contentBackgroundColor ) let newContents = contents + [galleryTagContent] @@ -122,6 +134,7 @@ struct Parser { let galleryTagContent = GalleryTag.Content( rawNamespace: namespace, text: contentText, isVotedUp: false, isVotedDown: false, + textColor: contentTextColor, backgroundColor: contentBackgroundColor ) tags.append(.init(rawNamespace: namespace, contents: [galleryTagContent])) @@ -337,6 +350,7 @@ struct Parser { rawNamespace: namespace, text: text, isVotedUp: aClass == "tup", isVotedDown: aClass == "tdn", + textColor: nil, backgroundColor: nil ) ) diff --git a/EhPanda/Models/Gallery/GalleryState.swift b/EhPanda/Models/Gallery/GalleryState.swift index 9ffdbcb7..9ca74759 100644 --- a/EhPanda/Models/Gallery/GalleryState.swift +++ b/EhPanda/Models/Gallery/GalleryState.swift @@ -59,6 +59,7 @@ struct GalleryTag: Codable, Equatable, Hashable, Identifiable { let text: String let isVotedUp: Bool let isVotedDown: Bool + let textColor: Color? let backgroundColor: Color? } diff --git a/EhPanda/View/Support/Components/Cells/GalleryDetailCell.swift b/EhPanda/View/Support/Components/Cells/GalleryDetailCell.swift index 6bc57746..ecae286c 100644 --- a/EhPanda/View/Support/Components/Cells/GalleryDetailCell.swift +++ b/EhPanda/View/Support/Components/Cells/GalleryDetailCell.swift @@ -43,7 +43,7 @@ struct GalleryDetailCell: View { imageURL: translation?.valueImageURL, showsImages: setting.showsImagesInTags, font: .caption2, padding: .init(top: 2, leading: 4, bottom: 2, trailing: 4), - textColor: content.backgroundColor != nil ? .white : .secondary, + textColor: content.backgroundColor != nil ? content.textColor ?? .secondary : .secondary, backgroundColor: content.backgroundColor ?? tagColor ) } diff --git a/EhPanda/View/Support/Components/Cells/GalleryThumbnailCell.swift b/EhPanda/View/Support/Components/Cells/GalleryThumbnailCell.swift index f7a1a781..b91975b7 100644 --- a/EhPanda/View/Support/Components/Cells/GalleryThumbnailCell.swift +++ b/EhPanda/View/Support/Components/Cells/GalleryThumbnailCell.swift @@ -60,7 +60,7 @@ struct GalleryThumbnailCell: View { imageURL: translation?.valueImageURL, showsImages: setting.showsImagesInTags, font: .caption2, padding: .init(top: 2, leading: 4, bottom: 2, trailing: 4), - textColor: content.backgroundColor != nil ? .white : .secondary, + textColor: content.backgroundColor != nil ? content.textColor ?? .secondary : .secondary, backgroundColor: content.backgroundColor ?? tagColor ) } From 62e7b5053c55c76cf9113e74a2167c68e2a696e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sun, 6 Mar 2022 10:21:33 +0900 Subject: [PATCH 03/22] feat: Make horizontal stacks snappable --- .github/workflows/deploy.yml | 2 +- EhPanda.xcodeproj/project.pbxproj | 17 +++++++++++++++++ .../xcshareddata/swiftpm/Package.resolved | 9 +++++++++ EhPanda/App/Constant.strings | 2 ++ EhPanda/View/Detail/DetailView.swift | 4 +++- EhPanda/View/Home/HomeView.swift | 14 ++++++++++---- EhPanda/View/Search/SearchRootView.swift | 3 +++ EhPanda/View/Setting/EhPandaView.swift | 4 ++++ 8 files changed, 49 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4c694c82..5cad4ebc 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,7 +6,7 @@ on: types: [closed] env: DEVELOPER_DIR: /Applications/Xcode_13.2.1.app - APP_VERSION: '2.3.1' + APP_VERSION: '2.4.0' SCHEME_NAME: 'EhPanda' ALTSTORE_JSON_PATH: './AltStore.json' BUILDS_PATH: '/tmp/action-builds' diff --git a/EhPanda.xcodeproj/project.pbxproj b/EhPanda.xcodeproj/project.pbxproj index 158dc13c..1377f3c4 100644 --- a/EhPanda.xcodeproj/project.pbxproj +++ b/EhPanda.xcodeproj/project.pbxproj @@ -237,6 +237,7 @@ ABD9771027B65E3400983DE7 /* GalleryDetailParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABD9770F27B65E3400983DE7 /* GalleryDetailParserTests.swift */; }; ABD9771327B6612400983DE7 /* GreetingParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABD9771227B6612400983DE7 /* GreetingParserTests.swift */; }; ABE1867826A1733000689FDC /* LaboratorySettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABE1867726A1733000689FDC /* LaboratorySettingView.swift */; }; + ABE4CBE927D434CF006D351E /* Snappable in Frameworks */ = {isa = PBXBuildFile; productRef = ABE4CBE827D434CF006D351E /* Snappable */; }; ABE9401526FF158D0085E158 /* QuickSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABE9401426FF158D0085E158 /* QuickSearchView.swift */; }; ABE9402D26FF89220085E158 /* AlertKit in Frameworks */ = {isa = PBXBuildFile; productRef = ABE9402C26FF89220085E158 /* AlertKit */; }; ABEA1FE625A9B40B002966B9 /* Setting.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABEA1FE525A9B40B002966B9 /* Setting.swift */; }; @@ -582,6 +583,7 @@ AB21CCA0274B4F0C00C115B1 /* SwiftyBeaver in Frameworks */, ABD49D5D277C6C9D003D1A07 /* SFSafeSymbols in Frameworks */, ABAC82FE26BC4A96009F5026 /* OpenCC in Frameworks */, + ABE4CBE927D434CF006D351E /* Snappable in Frameworks */, AB86AC1027831AD100E61E6A /* ComposableArchitecture in Frameworks */, ABBB2636278FB888007B6149 /* SwiftUINavigation in Frameworks */, AB1FA94927C62BC80063EF55 /* CommonMark in Frameworks */, @@ -1359,6 +1361,7 @@ ABD970B627A2A6BD001693B0 /* Rswift */, AB26F59827ACDB4200AB3468 /* FilePicker */, AB1FA94827C62BC80063EF55 /* CommonMark */, + ABE4CBE827D434CF006D351E /* Snappable */, ); productName = EhPanda; productReference = ABC3C7542593696C00E0C11B /* EhPanda.app */; @@ -1435,6 +1438,7 @@ ABD970B527A2A6BD001693B0 /* XCRemoteSwiftPackageReference "R.swift.Library" */, AB26F59727ACDB4200AB3468 /* XCRemoteSwiftPackageReference "FilePicker" */, AB1FA94727C62BC80063EF55 /* XCRemoteSwiftPackageReference "SwiftCommonMark" */, + ABE4CBE727D434CF006D351E /* XCRemoteSwiftPackageReference "Snappable" */, ); productRefGroup = ABC3C7552593696C00E0C11B /* Products */; projectDirPath = ""; @@ -2270,6 +2274,14 @@ minimumVersion = 5.4.0; }; }; + ABE4CBE727D434CF006D351E /* XCRemoteSwiftPackageReference "Snappable" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/hugehoge/Snappable.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 0.3.0; + }; + }; ABE9402B26FF89220085E158 /* XCRemoteSwiftPackageReference "AlertKit" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/tatsuz0u/AlertKit.git"; @@ -2361,6 +2373,11 @@ package = ABD970B527A2A6BD001693B0 /* XCRemoteSwiftPackageReference "R.swift.Library" */; productName = Rswift; }; + ABE4CBE827D434CF006D351E /* Snappable */ = { + isa = XCSwiftPackageProductDependency; + package = ABE4CBE727D434CF006D351E /* XCRemoteSwiftPackageReference "Snappable" */; + productName = Snappable; + }; ABE9402C26FF89220085E158 /* AlertKit */ = { isa = XCSwiftPackageProductDependency; package = ABE9402B26FF89220085E158 /* XCRemoteSwiftPackageReference "AlertKit" */; diff --git a/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index bca8e127..5d8e518e 100644 --- a/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -82,6 +82,15 @@ "version": null } }, + { + "package": "Snappable", + "repositoryURL": "https://github.com/hugehoge/Snappable.git", + "state": { + "branch": null, + "revision": "806de8123c87fdd818f1b8998a56417a1a510007", + "version": "0.3.0" + } + }, { "package": "swift-case-paths", "repositoryURL": "https://github.com/pointfreeco/swift-case-paths", diff --git a/EhPanda/App/Constant.strings b/EhPanda/App/Constant.strings index 0c94bf88..31eb5d51 100644 --- a/EhPanda/App/Constant.strings +++ b/EhPanda/App/Constant.strings @@ -62,6 +62,7 @@ "ehpanda.acknowledgements.link.colorful" = "https://github.com/Co2333/Colorful"; "ehpanda.acknowledgements.link.filePicker" = "https://github.com/markrenaud/FilePicker"; "ehpanda.acknowledgements.link.kingfisher" = "https://github.com/onevcat/Kingfisher"; +"ehpanda.acknowledgements.link.snappable" = "https://github.com/hugehoge/Snappable"; "ehpanda.acknowledgements.link.swiftUIPager" = "https://github.com/fermoya/SwiftUIPager"; "ehpanda.acknowledgements.link.swiftyBeaver" = "https://github.com/SwiftyBeaver/SwiftyBeaver"; "ehpanda.acknowledgements.link.waterfallGrid" = "https://github.com/paololeonardi/WaterfallGrid"; @@ -81,6 +82,7 @@ "ehpanda.acknowledgements.text.colorful" = "Colorful"; "ehpanda.acknowledgements.text.filePicker" = "FilePicker"; "ehpanda.acknowledgements.text.kingfisher" = "Kingfisher"; +"ehpanda.acknowledgements.text.snappable" = "Snappable"; "ehpanda.acknowledgements.text.swiftUIPager" = "SwiftUIPager"; "ehpanda.acknowledgements.text.swiftyBeaver" = "SwiftyBeaver"; "ehpanda.acknowledgements.text.waterfallGrid" = "WaterfallGrid"; diff --git a/EhPanda/View/Detail/DetailView.swift b/EhPanda/View/Detail/DetailView.swift index 9fd41a82..67945912 100644 --- a/EhPanda/View/Detail/DetailView.swift +++ b/EhPanda/View/Detail/DetailView.swift @@ -7,8 +7,8 @@ import SwiftUI import Kingfisher -import ComposableArchitecture import CommonMark +import ComposableArchitecture struct DetailView: View { private let store: Store @@ -728,10 +728,12 @@ private struct PreviewsSection: View { .imageModifier(modifier).fade(duration: 0.25).resizable().scaledToFit() .frame(width: width, height: height) } + .snapID(index) } .withHorizontalSpacing(height: height) } } + .snappable(mode: .afterScrolling) } } } diff --git a/EhPanda/View/Home/HomeView.swift b/EhPanda/View/Home/HomeView.swift index b308e2da..7b38cb15 100644 --- a/EhPanda/View/Home/HomeView.swift +++ b/EhPanda/View/Home/HomeView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import Snappable import Kingfisher import SwiftUIPager import SFSafeSymbols @@ -59,6 +60,7 @@ struct HomeView: View { showAllAction: { viewStore.send(.setNavigation(.section(.frontpage))) }, reloadAction: { viewStore.send(.fetchFrontpageGalleries()) } ) + .id(viewStore.frontpageLoadingState) } ToplistsSection( galleries: viewStore.toplistsGalleries, @@ -68,7 +70,9 @@ struct HomeView: View { showAllAction: { viewStore.send(.setNavigation(.section(.toplists))) }, reloadAction: { viewStore.send(.fetchAllToplistsGalleries) } ) + .id(viewStore.toplistsLoadingState) MiscGridSection(navigateAction: navigateTo(type:)) + .id(viewStore.popularLoadingState) } .padding(.vertical) } @@ -280,12 +284,12 @@ private struct CoverWallSection: View { ScrollView(.horizontal, showsIndicators: false) { HStack(spacing: 20) { ForEach(dataSource, id: \.first) { - VerticalCoverStack(galleries: $0, navigateAction: navigateAction) + VerticalCoverStack(galleries: $0, navigateAction: navigateAction).snapID(UUID()) } .withHorizontalSpacing(width: 0) } } - .frame(height: Defaults.ImageSize.rowH * 2 + 30) + .snappable(mode: .afterScrolling).frame(height: Defaults.ImageSize.rowH * 2 + 30) } } } @@ -372,6 +376,7 @@ private struct ToplistsSection: View { ForEach(ToplistsType.allCases, content: verticalStacks) } } + .snappable(mode: .afterScrolling) } } private func verticalStacks(type: ToplistsType) -> some View { @@ -390,7 +395,7 @@ private struct ToplistsSection: View { } } } - .padding(.horizontal, 20).padding(.vertical, 5) + .snapID(UUID()).padding(.horizontal, 20).padding(.vertical, 5) } } @@ -442,11 +447,12 @@ private struct MiscGridSection: View { } label: { MiscGridItem(title: type.title, symbol: type.symbol).tint(.primary) } - .padding(.trailing, type == types.last ? 0 : 10) + .snapID(UUID()).padding(.trailing, type == types.last ? 0 : 10) } .withHorizontalSpacing() } } + .snappable(mode: .afterScrolling) } } } diff --git a/EhPanda/View/Search/SearchRootView.swift b/EhPanda/View/Search/SearchRootView.swift index 59fa14d8..3a0e21e8 100644 --- a/EhPanda/View/Search/SearchRootView.swift +++ b/EhPanda/View/Search/SearchRootView.swift @@ -188,6 +188,7 @@ private struct SuggestionsPanel: View { galleries: historyGalleries, navigationAction: navigateGalleryAction ) + .id(historyGalleries) } } } @@ -390,10 +391,12 @@ private struct HistoryGalleriesSection: View { GalleryHistoryCell(gallery: gallery) .tint(.primary).multilineTextAlignment(.leading) } + .snapID(UUID()) } .withHorizontalSpacing() } } + .snappable(mode: .afterScrolling) } } } diff --git a/EhPanda/View/Setting/EhPandaView.swift b/EhPanda/View/Setting/EhPandaView.swift index cd36710a..43731ed3 100644 --- a/EhPanda/View/Setting/EhPandaView.swift +++ b/EhPanda/View/Setting/EhPandaView.swift @@ -166,6 +166,10 @@ struct EhPandaView: View { urlString: R.string.constant.ehpandaAcknowledgementsLinkKingfisher(), text: R.string.constant.ehpandaAcknowledgementsTextKingfisher() ), + .init( + urlString: R.string.constant.ehpandaAcknowledgementsLinkSnappable(), + text: R.string.constant.ehpandaAcknowledgementsTextSnappable() + ), .init( urlString: R.string.constant.ehpandaAcknowledgementsLinkSwiftUIPager(), text: R.string.constant.ehpandaAcknowledgementsTextSwiftUIPager() From da96b82fa87c603f450a62e4bbd26d450abe555f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sun, 6 Mar 2022 10:35:55 +0900 Subject: [PATCH 04/22] refactor: Safely get prefix from array --- EhPanda/View/Home/DataFlow/HomeStore.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EhPanda/View/Home/DataFlow/HomeStore.swift b/EhPanda/View/Home/DataFlow/HomeStore.swift index 4dd2cbd5..f90c6cc9 100644 --- a/EhPanda/View/Home/DataFlow/HomeStore.swift +++ b/EhPanda/View/Home/DataFlow/HomeStore.swift @@ -48,7 +48,7 @@ struct HomeState: Equatable { let sortedGalleries = galleries.sorted { lhs, rhs in lhs.title.count > rhs.title.count } - var trimmedGalleries = Array(sortedGalleries.prefix(10)) + var trimmedGalleries = Array(sortedGalleries.prefix(min(sortedGalleries.count, 10))) .removeDuplicates(by: \.trimmedTitle) if trimmedGalleries.count >= 6 { trimmedGalleries = Array(trimmedGalleries.prefix(6)) @@ -58,7 +58,7 @@ struct HomeState: Equatable { currentCardID = trimmedGalleries[cardPageIndex].gid } mutating func setFrontpageGalleries(_ galleries: [Gallery]) { - frontpageGalleries = Array(galleries.prefix(25)) + frontpageGalleries = Array(galleries.prefix(min(galleries.count, 25))) .removeDuplicates(by: \.trimmedTitle) } } From d71d46e16c1ed05da4093b2db3545640cd7cd409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sun, 6 Mar 2022 10:36:13 +0900 Subject: [PATCH 05/22] Revert "feat: Make horizontal stacks snappable" This reverts commit 62e7b5053c55c76cf9113e74a2167c68e2a696e8. --- .github/workflows/deploy.yml | 2 +- EhPanda.xcodeproj/project.pbxproj | 17 ----------------- .../xcshareddata/swiftpm/Package.resolved | 9 --------- EhPanda/App/Constant.strings | 2 -- EhPanda/View/Detail/DetailView.swift | 4 +--- EhPanda/View/Home/HomeView.swift | 14 ++++---------- EhPanda/View/Search/SearchRootView.swift | 3 --- EhPanda/View/Setting/EhPandaView.swift | 4 ---- 8 files changed, 6 insertions(+), 49 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 5cad4ebc..4c694c82 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,7 +6,7 @@ on: types: [closed] env: DEVELOPER_DIR: /Applications/Xcode_13.2.1.app - APP_VERSION: '2.4.0' + APP_VERSION: '2.3.1' SCHEME_NAME: 'EhPanda' ALTSTORE_JSON_PATH: './AltStore.json' BUILDS_PATH: '/tmp/action-builds' diff --git a/EhPanda.xcodeproj/project.pbxproj b/EhPanda.xcodeproj/project.pbxproj index 1377f3c4..158dc13c 100644 --- a/EhPanda.xcodeproj/project.pbxproj +++ b/EhPanda.xcodeproj/project.pbxproj @@ -237,7 +237,6 @@ ABD9771027B65E3400983DE7 /* GalleryDetailParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABD9770F27B65E3400983DE7 /* GalleryDetailParserTests.swift */; }; ABD9771327B6612400983DE7 /* GreetingParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABD9771227B6612400983DE7 /* GreetingParserTests.swift */; }; ABE1867826A1733000689FDC /* LaboratorySettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABE1867726A1733000689FDC /* LaboratorySettingView.swift */; }; - ABE4CBE927D434CF006D351E /* Snappable in Frameworks */ = {isa = PBXBuildFile; productRef = ABE4CBE827D434CF006D351E /* Snappable */; }; ABE9401526FF158D0085E158 /* QuickSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABE9401426FF158D0085E158 /* QuickSearchView.swift */; }; ABE9402D26FF89220085E158 /* AlertKit in Frameworks */ = {isa = PBXBuildFile; productRef = ABE9402C26FF89220085E158 /* AlertKit */; }; ABEA1FE625A9B40B002966B9 /* Setting.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABEA1FE525A9B40B002966B9 /* Setting.swift */; }; @@ -583,7 +582,6 @@ AB21CCA0274B4F0C00C115B1 /* SwiftyBeaver in Frameworks */, ABD49D5D277C6C9D003D1A07 /* SFSafeSymbols in Frameworks */, ABAC82FE26BC4A96009F5026 /* OpenCC in Frameworks */, - ABE4CBE927D434CF006D351E /* Snappable in Frameworks */, AB86AC1027831AD100E61E6A /* ComposableArchitecture in Frameworks */, ABBB2636278FB888007B6149 /* SwiftUINavigation in Frameworks */, AB1FA94927C62BC80063EF55 /* CommonMark in Frameworks */, @@ -1361,7 +1359,6 @@ ABD970B627A2A6BD001693B0 /* Rswift */, AB26F59827ACDB4200AB3468 /* FilePicker */, AB1FA94827C62BC80063EF55 /* CommonMark */, - ABE4CBE827D434CF006D351E /* Snappable */, ); productName = EhPanda; productReference = ABC3C7542593696C00E0C11B /* EhPanda.app */; @@ -1438,7 +1435,6 @@ ABD970B527A2A6BD001693B0 /* XCRemoteSwiftPackageReference "R.swift.Library" */, AB26F59727ACDB4200AB3468 /* XCRemoteSwiftPackageReference "FilePicker" */, AB1FA94727C62BC80063EF55 /* XCRemoteSwiftPackageReference "SwiftCommonMark" */, - ABE4CBE727D434CF006D351E /* XCRemoteSwiftPackageReference "Snappable" */, ); productRefGroup = ABC3C7552593696C00E0C11B /* Products */; projectDirPath = ""; @@ -2274,14 +2270,6 @@ minimumVersion = 5.4.0; }; }; - ABE4CBE727D434CF006D351E /* XCRemoteSwiftPackageReference "Snappable" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/hugehoge/Snappable.git"; - requirement = { - kind = upToNextMajorVersion; - minimumVersion = 0.3.0; - }; - }; ABE9402B26FF89220085E158 /* XCRemoteSwiftPackageReference "AlertKit" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/tatsuz0u/AlertKit.git"; @@ -2373,11 +2361,6 @@ package = ABD970B527A2A6BD001693B0 /* XCRemoteSwiftPackageReference "R.swift.Library" */; productName = Rswift; }; - ABE4CBE827D434CF006D351E /* Snappable */ = { - isa = XCSwiftPackageProductDependency; - package = ABE4CBE727D434CF006D351E /* XCRemoteSwiftPackageReference "Snappable" */; - productName = Snappable; - }; ABE9402C26FF89220085E158 /* AlertKit */ = { isa = XCSwiftPackageProductDependency; package = ABE9402B26FF89220085E158 /* XCRemoteSwiftPackageReference "AlertKit" */; diff --git a/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 5d8e518e..bca8e127 100644 --- a/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -82,15 +82,6 @@ "version": null } }, - { - "package": "Snappable", - "repositoryURL": "https://github.com/hugehoge/Snappable.git", - "state": { - "branch": null, - "revision": "806de8123c87fdd818f1b8998a56417a1a510007", - "version": "0.3.0" - } - }, { "package": "swift-case-paths", "repositoryURL": "https://github.com/pointfreeco/swift-case-paths", diff --git a/EhPanda/App/Constant.strings b/EhPanda/App/Constant.strings index 31eb5d51..0c94bf88 100644 --- a/EhPanda/App/Constant.strings +++ b/EhPanda/App/Constant.strings @@ -62,7 +62,6 @@ "ehpanda.acknowledgements.link.colorful" = "https://github.com/Co2333/Colorful"; "ehpanda.acknowledgements.link.filePicker" = "https://github.com/markrenaud/FilePicker"; "ehpanda.acknowledgements.link.kingfisher" = "https://github.com/onevcat/Kingfisher"; -"ehpanda.acknowledgements.link.snappable" = "https://github.com/hugehoge/Snappable"; "ehpanda.acknowledgements.link.swiftUIPager" = "https://github.com/fermoya/SwiftUIPager"; "ehpanda.acknowledgements.link.swiftyBeaver" = "https://github.com/SwiftyBeaver/SwiftyBeaver"; "ehpanda.acknowledgements.link.waterfallGrid" = "https://github.com/paololeonardi/WaterfallGrid"; @@ -82,7 +81,6 @@ "ehpanda.acknowledgements.text.colorful" = "Colorful"; "ehpanda.acknowledgements.text.filePicker" = "FilePicker"; "ehpanda.acknowledgements.text.kingfisher" = "Kingfisher"; -"ehpanda.acknowledgements.text.snappable" = "Snappable"; "ehpanda.acknowledgements.text.swiftUIPager" = "SwiftUIPager"; "ehpanda.acknowledgements.text.swiftyBeaver" = "SwiftyBeaver"; "ehpanda.acknowledgements.text.waterfallGrid" = "WaterfallGrid"; diff --git a/EhPanda/View/Detail/DetailView.swift b/EhPanda/View/Detail/DetailView.swift index 67945912..9fd41a82 100644 --- a/EhPanda/View/Detail/DetailView.swift +++ b/EhPanda/View/Detail/DetailView.swift @@ -7,8 +7,8 @@ import SwiftUI import Kingfisher -import CommonMark import ComposableArchitecture +import CommonMark struct DetailView: View { private let store: Store @@ -728,12 +728,10 @@ private struct PreviewsSection: View { .imageModifier(modifier).fade(duration: 0.25).resizable().scaledToFit() .frame(width: width, height: height) } - .snapID(index) } .withHorizontalSpacing(height: height) } } - .snappable(mode: .afterScrolling) } } } diff --git a/EhPanda/View/Home/HomeView.swift b/EhPanda/View/Home/HomeView.swift index 7b38cb15..b308e2da 100644 --- a/EhPanda/View/Home/HomeView.swift +++ b/EhPanda/View/Home/HomeView.swift @@ -6,7 +6,6 @@ // import SwiftUI -import Snappable import Kingfisher import SwiftUIPager import SFSafeSymbols @@ -60,7 +59,6 @@ struct HomeView: View { showAllAction: { viewStore.send(.setNavigation(.section(.frontpage))) }, reloadAction: { viewStore.send(.fetchFrontpageGalleries()) } ) - .id(viewStore.frontpageLoadingState) } ToplistsSection( galleries: viewStore.toplistsGalleries, @@ -70,9 +68,7 @@ struct HomeView: View { showAllAction: { viewStore.send(.setNavigation(.section(.toplists))) }, reloadAction: { viewStore.send(.fetchAllToplistsGalleries) } ) - .id(viewStore.toplistsLoadingState) MiscGridSection(navigateAction: navigateTo(type:)) - .id(viewStore.popularLoadingState) } .padding(.vertical) } @@ -284,12 +280,12 @@ private struct CoverWallSection: View { ScrollView(.horizontal, showsIndicators: false) { HStack(spacing: 20) { ForEach(dataSource, id: \.first) { - VerticalCoverStack(galleries: $0, navigateAction: navigateAction).snapID(UUID()) + VerticalCoverStack(galleries: $0, navigateAction: navigateAction) } .withHorizontalSpacing(width: 0) } } - .snappable(mode: .afterScrolling).frame(height: Defaults.ImageSize.rowH * 2 + 30) + .frame(height: Defaults.ImageSize.rowH * 2 + 30) } } } @@ -376,7 +372,6 @@ private struct ToplistsSection: View { ForEach(ToplistsType.allCases, content: verticalStacks) } } - .snappable(mode: .afterScrolling) } } private func verticalStacks(type: ToplistsType) -> some View { @@ -395,7 +390,7 @@ private struct ToplistsSection: View { } } } - .snapID(UUID()).padding(.horizontal, 20).padding(.vertical, 5) + .padding(.horizontal, 20).padding(.vertical, 5) } } @@ -447,12 +442,11 @@ private struct MiscGridSection: View { } label: { MiscGridItem(title: type.title, symbol: type.symbol).tint(.primary) } - .snapID(UUID()).padding(.trailing, type == types.last ? 0 : 10) + .padding(.trailing, type == types.last ? 0 : 10) } .withHorizontalSpacing() } } - .snappable(mode: .afterScrolling) } } } diff --git a/EhPanda/View/Search/SearchRootView.swift b/EhPanda/View/Search/SearchRootView.swift index 3a0e21e8..59fa14d8 100644 --- a/EhPanda/View/Search/SearchRootView.swift +++ b/EhPanda/View/Search/SearchRootView.swift @@ -188,7 +188,6 @@ private struct SuggestionsPanel: View { galleries: historyGalleries, navigationAction: navigateGalleryAction ) - .id(historyGalleries) } } } @@ -391,12 +390,10 @@ private struct HistoryGalleriesSection: View { GalleryHistoryCell(gallery: gallery) .tint(.primary).multilineTextAlignment(.leading) } - .snapID(UUID()) } .withHorizontalSpacing() } } - .snappable(mode: .afterScrolling) } } } diff --git a/EhPanda/View/Setting/EhPandaView.swift b/EhPanda/View/Setting/EhPandaView.swift index 43731ed3..cd36710a 100644 --- a/EhPanda/View/Setting/EhPandaView.swift +++ b/EhPanda/View/Setting/EhPandaView.swift @@ -166,10 +166,6 @@ struct EhPandaView: View { urlString: R.string.constant.ehpandaAcknowledgementsLinkKingfisher(), text: R.string.constant.ehpandaAcknowledgementsTextKingfisher() ), - .init( - urlString: R.string.constant.ehpandaAcknowledgementsLinkSnappable(), - text: R.string.constant.ehpandaAcknowledgementsTextSnappable() - ), .init( urlString: R.string.constant.ehpandaAcknowledgementsLinkSwiftUIPager(), text: R.string.constant.ehpandaAcknowledgementsTextSwiftUIPager() From 8f5ac112ac5125544c6a4aa684ca573f6494bc49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sun, 6 Mar 2022 10:47:41 +0900 Subject: [PATCH 06/22] refactor: Text color in tags --- EhPanda/App/Tools/Parser.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EhPanda/App/Tools/Parser.swift b/EhPanda/App/Tools/Parser.swift index ddc6696d..ab063342 100644 --- a/EhPanda/App/Tools/Parser.swift +++ b/EhPanda/App/Tools/Parser.swift @@ -114,7 +114,7 @@ struct Parser { { contentBackgroundColor = .init(hex: .init(hex)) if (.init(red) * 0.299 + .init(green) * 0.587 + .init(blue) * 0.114) > 151 { - contentTextColor = .black + contentTextColor = .secondary } else { contentTextColor = .white } From f893551fe7ead8fae41034772aff6c59c6f70dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sun, 6 Mar 2022 19:34:59 +0900 Subject: [PATCH 07/22] test: Add `AccountSettingStoreTests` --- EhPanda.xcodeproj/project.pbxproj | 30 +++- .../App/Tools/Clients/ClipboardClient.swift | 28 ++++ EhPanda/App/Tools/Clients/CookiesClient.swift | 35 +++++ EhPanda/App/Tools/Clients/HapticClient.swift | 15 ++ .../Tools/Clients/UIApplicationClient.swift | 29 ++++ EhPanda/Models/Persistent/Setting.swift | 2 +- .../DataFlow/AccountSettingStore.swift | 6 +- .../Setting/DataFlow/EhSettingStore.swift | 2 +- .../View/Setting/DataFlow/LoginStore.swift | 2 +- .../Gallery/GalleryDetailParserTests.swift | 0 .../Gallery/GalleryImageURLParserTests.swift | 0 .../Gallery/GalleryMPVKeysParserTests.swift | 0 .../Parser/List/ListParserTests.swift | 0 .../Parser/Other/BanIntervalParserTests.swift | 0 .../Parser/Other/EhSettingParserTests.swift | 0 .../Parser/Other/GreetingParserTests.swift | 0 .../Setting/AccountSettingStoreTests.swift | 148 ++++++++++++++++++ 17 files changed, 292 insertions(+), 5 deletions(-) rename EhPandaTests/{ => Tests}/Parser/Gallery/GalleryDetailParserTests.swift (100%) rename EhPandaTests/{ => Tests}/Parser/Gallery/GalleryImageURLParserTests.swift (100%) rename EhPandaTests/{ => Tests}/Parser/Gallery/GalleryMPVKeysParserTests.swift (100%) rename EhPandaTests/{ => Tests}/Parser/List/ListParserTests.swift (100%) rename EhPandaTests/{ => Tests}/Parser/Other/BanIntervalParserTests.swift (100%) rename EhPandaTests/{ => Tests}/Parser/Other/EhSettingParserTests.swift (100%) rename EhPandaTests/{ => Tests}/Parser/Other/GreetingParserTests.swift (100%) create mode 100644 EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift diff --git a/EhPanda.xcodeproj/project.pbxproj b/EhPanda.xcodeproj/project.pbxproj index 158dc13c..fbce5619 100644 --- a/EhPanda.xcodeproj/project.pbxproj +++ b/EhPanda.xcodeproj/project.pbxproj @@ -175,6 +175,7 @@ AB86AC1327856F2700E61E6A /* AppLockStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB86AC1227856F2700E61E6A /* AppLockStore.swift */; }; AB86AC1A2785C2B300E61E6A /* HomeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB86AC192785C2B300E61E6A /* HomeStore.swift */; }; AB8C821926BF801700E8C5E6 /* EhSetting.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB8C821826BF801700E8C5E6 /* EhSetting.swift */; }; + ABA12F3227D49CEB0021922D /* AccountSettingStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA12F3127D49CEB0021922D /* AccountSettingStoreTests.swift */; }; ABA732D925A8018A00B3D9AB /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA732D825A8018A00B3D9AB /* Extensions.swift */; }; ABA732DF25A852D800B3D9AB /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA732DE25A852D800B3D9AB /* Filter.swift */; }; ABAC82FE26BC4A96009F5026 /* OpenCC in Frameworks */ = {isa = PBXBuildFile; productRef = ABAC82FD26BC4A96009F5026 /* OpenCC */; }; @@ -464,6 +465,7 @@ AB86AC192785C2B300E61E6A /* HomeStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeStore.swift; sourceTree = ""; }; AB8C821826BF801700E8C5E6 /* EhSetting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EhSetting.swift; sourceTree = ""; }; AB994DBB25986F7A00E9A367 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + ABA12F3127D49CEB0021922D /* AccountSettingStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSettingStoreTests.swift; sourceTree = ""; }; ABA732D825A8018A00B3D9AB /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; ABA732DE25A852D800B3D9AB /* Filter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; ABB5013026A41EBA00B542D9 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; @@ -767,9 +769,9 @@ AB3E9E6126D210B1008FE518 /* EhPandaTests */ = { isa = PBXGroup; children = ( + ABA12F2E27D49AD10021922D /* Tests */, AB31CD2E27B666D500F40E0A /* Models */, AB3E9E6226D210B1008FE518 /* Resources */, - ABD9770C27B65A5300983DE7 /* Parser */, ); path = EhPandaTests; sourceTree = ""; @@ -1067,6 +1069,31 @@ path = Search; sourceTree = ""; }; + ABA12F2E27D49AD10021922D /* Tests */ = { + isa = PBXGroup; + children = ( + ABA12F2F27D49B610021922D /* Store */, + ABD9770C27B65A5300983DE7 /* Parser */, + ); + path = Tests; + sourceTree = ""; + }; + ABA12F2F27D49B610021922D /* Store */ = { + isa = PBXGroup; + children = ( + ABA12F3027D49CDA0021922D /* Setting */, + ); + path = Store; + sourceTree = ""; + }; + ABA12F3027D49CDA0021922D /* Setting */ = { + isa = PBXGroup; + children = ( + ABA12F3127D49CEB0021922D /* AccountSettingStoreTests.swift */, + ); + path = Setting; + sourceTree = ""; + }; ABBB263C2793C580007B6149 /* DataFlow */ = { isa = PBXGroup; children = ( @@ -1765,6 +1792,7 @@ AB31CD3227B6671400F40E0A /* BanIntervalParserTests.swift in Sources */, ABD9771327B6612400983DE7 /* GreetingParserTests.swift in Sources */, AB31CD3727B6695800F40E0A /* HTMLFilename.swift in Sources */, + ABA12F3227D49CEB0021922D /* AccountSettingStoreTests.swift in Sources */, AB3E9E7426D210B1008FE518 /* TestHelper.swift in Sources */, AB31CD3B27B66E0300F40E0A /* ListParserTestType.swift in Sources */, ABD9770E27B65A7300983DE7 /* ListParserTests.swift in Sources */, diff --git a/EhPanda/App/Tools/Clients/ClipboardClient.swift b/EhPanda/App/Tools/Clients/ClipboardClient.swift index e3ce5bbb..f71768dd 100644 --- a/EhPanda/App/Tools/Clients/ClipboardClient.swift +++ b/EhPanda/App/Tools/Clients/ClipboardClient.swift @@ -48,3 +48,31 @@ extension ClipboardClient { } ) } + +// MARK: Test +#if DEBUG +import XCTestDynamicOverlay + +extension ClipboardClient { + static let failing: Self = .init( + url: { + XCTFail("\(Self.self).url is unimplemented") + return nil + }, + changeCount: { + XCTFail("\(Self.self).changeCount is unimplemented") + return 0 + }, + saveText: { .failing("\(Self.self).saveText(\($0)) is unimplemented") }, + saveImage: { .failing("\(Self.self).saveImage(\($0), \($1)) is unimplemented") } + ) +} +#endif +extension ClipboardClient { + static let noop: Self = .init( + url: { nil }, + changeCount: { 0 }, + saveText: { _ in .none }, + saveImage: { _, _ in .none } + ) +} diff --git a/EhPanda/App/Tools/Clients/CookiesClient.swift b/EhPanda/App/Tools/Clients/CookiesClient.swift index cdddf4c3..3f61e6ac 100644 --- a/EhPanda/App/Tools/Clients/CookiesClient.swift +++ b/EhPanda/App/Tools/Clients/CookiesClient.swift @@ -243,3 +243,38 @@ extension CookiesClient { } } } + +// MARK: Test +#if DEBUG +import XCTestDynamicOverlay + +extension CookiesClient { + static let failing: Self = .init( + clearAll: { .failing("\(Self.self).clearAll is unimplemented") }, + getCookie: { + XCTFail("\(Self.self).getCookie(\($0), \($1)) is unimplemented") + return .empty + }, + removeCookie: { + XCTFail("\(Self.self).removeCookie(\($0), \($1)) is unimplemented") + }, + checkExistence: { + XCTFail("\(Self.self).checkExistence(\($0), \($1)) is unimplemented") + return false + }, + initializeCookie: { + XCTFail("\(Self.self).initializeCookie(\($0), \($1)) is unimplemented") + return .init() + } + ) +} +#endif +extension CookiesClient { + static let noop: Self = .init( + clearAll: { .none }, + getCookie: { _, _ in .empty }, + removeCookie: { _, _ in }, + checkExistence: { _, _ in false }, + initializeCookie: { _, _ in .init() } + ) +} diff --git a/EhPanda/App/Tools/Clients/HapticClient.swift b/EhPanda/App/Tools/Clients/HapticClient.swift index 7287c7a9..f779eba8 100644 --- a/EhPanda/App/Tools/Clients/HapticClient.swift +++ b/EhPanda/App/Tools/Clients/HapticClient.swift @@ -27,3 +27,18 @@ extension HapticClient { } ) } +// MARK: Test +#if DEBUG +extension HapticClient { + static let failing: Self = .init( + generateFeedback: { .failing("\(Self.self).generateFeedback(\($0)) is unimplemented") }, + generateNotificationFeedback: { .failing("\(Self.self).generateNotificationFeedback(\($0)) is unimplemented") } + ) +} +#endif +extension HapticClient { + static let noop: Self = .init( + generateFeedback: { _ in .none }, + generateNotificationFeedback: { _ in .none } + ) +} diff --git a/EhPanda/App/Tools/Clients/UIApplicationClient.swift b/EhPanda/App/Tools/Clients/UIApplicationClient.swift index 9d3f02f6..df705f47 100644 --- a/EhPanda/App/Tools/Clients/UIApplicationClient.swift +++ b/EhPanda/App/Tools/Clients/UIApplicationClient.swift @@ -66,3 +66,32 @@ extension UIApplicationClient { return .none } } + +// MARK: Test +// swiftlint:disable line_length +#if DEBUG +import XCTestDynamicOverlay + +extension UIApplicationClient { + static let failing: Self = .init( + openURL: { .failing("\(Self.self).openURL(\($0)) is unimplemented") }, + hideKeyboard: { .failing("\(Self.self).hideKeyboard is unimplemented") }, + alternateIconName: { + XCTFail("\(Self.self).alternateIconName is unimplemented") + return nil + }, + setAlternateIconName: { .failing("\(Self.self).setAlternateIconName(\(String(describing: $0))) is unimplemented") }, + setUserInterfaceStyle: { .failing("\(Self.self).setUserInterfaceStyle(\($0)) is unimplemented") } + ) +} +#endif +// swiftlint:enable line_length +extension UIApplicationClient { + static let noop: Self = .init( + openURL: { _ in .none}, + hideKeyboard: { .none }, + alternateIconName: { nil }, + setAlternateIconName: { _ in .none }, + setUserInterfaceStyle: { _ in .none } + ) +} diff --git a/EhPanda/Models/Persistent/Setting.swift b/EhPanda/Models/Persistent/Setting.swift index d17f60af..d787f69b 100644 --- a/EhPanda/Models/Persistent/Setting.swift +++ b/EhPanda/Models/Persistent/Setting.swift @@ -55,7 +55,7 @@ struct Setting: Codable, Equatable { var bypassesSNIFiltering = false } -enum GalleryHost: String, Codable, CaseIterable, Identifiable { +enum GalleryHost: String, Codable, Equatable, CaseIterable, Identifiable { case ehentai = "E-Hentai" case exhentai = "ExHentai" diff --git a/EhPanda/View/Setting/DataFlow/AccountSettingStore.swift b/EhPanda/View/Setting/DataFlow/AccountSettingStore.swift index 74f8911d..90af4ac2 100644 --- a/EhPanda/View/Setting/DataFlow/AccountSettingStore.swift +++ b/EhPanda/View/Setting/DataFlow/AccountSettingStore.swift @@ -9,6 +9,10 @@ import TTProgressHUD import ComposableArchitecture struct CookieValue: Equatable { + static let empty: Self = .init( + rawValue: .init(), localizedString: .init() + ) + let rawValue: String let localizedString: String @@ -69,7 +73,7 @@ struct AccountSettingState: Equatable { var ehSettingState = EhSettingState() } -enum AccountSettingAction: BindableAction { +enum AccountSettingAction: BindableAction, Equatable { case binding(BindingAction) case setNavigation(AccountSettingState.Route?) case onLogoutConfirmButtonTapped diff --git a/EhPanda/View/Setting/DataFlow/EhSettingStore.swift b/EhPanda/View/Setting/DataFlow/EhSettingStore.swift index f118250f..0847a0cb 100644 --- a/EhPanda/View/Setting/DataFlow/EhSettingStore.swift +++ b/EhPanda/View/Setting/DataFlow/EhSettingStore.swift @@ -32,7 +32,7 @@ struct EhSettingState: Equatable { } } -enum EhSettingAction: BindableAction { +enum EhSettingAction: BindableAction, Equatable { case binding(BindingAction) case setNavigation(EhSettingState.Route?) case setKeyboardHidden diff --git a/EhPanda/View/Setting/DataFlow/LoginStore.swift b/EhPanda/View/Setting/DataFlow/LoginStore.swift index 1c6407d8..57ea2585 100644 --- a/EhPanda/View/Setting/DataFlow/LoginStore.swift +++ b/EhPanda/View/Setting/DataFlow/LoginStore.swift @@ -35,7 +35,7 @@ struct LoginState: Equatable { } } -enum LoginAction: BindableAction { +enum LoginAction: BindableAction, Equatable { case binding(BindingAction) case setNavigation(LoginState.Route?) case onTextFieldSubmitted diff --git a/EhPandaTests/Parser/Gallery/GalleryDetailParserTests.swift b/EhPandaTests/Tests/Parser/Gallery/GalleryDetailParserTests.swift similarity index 100% rename from EhPandaTests/Parser/Gallery/GalleryDetailParserTests.swift rename to EhPandaTests/Tests/Parser/Gallery/GalleryDetailParserTests.swift diff --git a/EhPandaTests/Parser/Gallery/GalleryImageURLParserTests.swift b/EhPandaTests/Tests/Parser/Gallery/GalleryImageURLParserTests.swift similarity index 100% rename from EhPandaTests/Parser/Gallery/GalleryImageURLParserTests.swift rename to EhPandaTests/Tests/Parser/Gallery/GalleryImageURLParserTests.swift diff --git a/EhPandaTests/Parser/Gallery/GalleryMPVKeysParserTests.swift b/EhPandaTests/Tests/Parser/Gallery/GalleryMPVKeysParserTests.swift similarity index 100% rename from EhPandaTests/Parser/Gallery/GalleryMPVKeysParserTests.swift rename to EhPandaTests/Tests/Parser/Gallery/GalleryMPVKeysParserTests.swift diff --git a/EhPandaTests/Parser/List/ListParserTests.swift b/EhPandaTests/Tests/Parser/List/ListParserTests.swift similarity index 100% rename from EhPandaTests/Parser/List/ListParserTests.swift rename to EhPandaTests/Tests/Parser/List/ListParserTests.swift diff --git a/EhPandaTests/Parser/Other/BanIntervalParserTests.swift b/EhPandaTests/Tests/Parser/Other/BanIntervalParserTests.swift similarity index 100% rename from EhPandaTests/Parser/Other/BanIntervalParserTests.swift rename to EhPandaTests/Tests/Parser/Other/BanIntervalParserTests.swift diff --git a/EhPandaTests/Parser/Other/EhSettingParserTests.swift b/EhPandaTests/Tests/Parser/Other/EhSettingParserTests.swift similarity index 100% rename from EhPandaTests/Parser/Other/EhSettingParserTests.swift rename to EhPandaTests/Tests/Parser/Other/EhSettingParserTests.swift diff --git a/EhPandaTests/Parser/Other/GreetingParserTests.swift b/EhPandaTests/Tests/Parser/Other/GreetingParserTests.swift similarity index 100% rename from EhPandaTests/Parser/Other/GreetingParserTests.swift rename to EhPandaTests/Tests/Parser/Other/GreetingParserTests.swift diff --git a/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift b/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift new file mode 100644 index 00000000..459221c7 --- /dev/null +++ b/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift @@ -0,0 +1,148 @@ +// +// AccountSettingStoreTests.swift +// EhPandaTests +// +// Created by 荒木辰造 on R 4/03/06. +// + +import XCTest +@testable import EhPanda +import ComposableArchitecture + +class AccountSettingStoreTests: XCTestCase { + private var environment: AccountSettingEnvironment { + .init( + hapticClient: .noop, + cookiesClient: .noop, + clipboardClient: .noop, + uiApplicationClient: .noop + ) + } + private var store: TestStore< + AccountSettingState, AccountSettingState, + AccountSettingAction, AccountSettingAction, + AccountSettingEnvironment + > { + .init( + initialState: .init(), + reducer: accountSettingReducer, + environment: environment + ) + } + + func testBinding() throws { + let store = store + + store.send(.set(\.$route, nil)) { + $0.route = nil + } + store.receive(.clearSubStates) { + $0.loginState = .init() + $0.ehSettingState = .init() + } + store.receive(.login(.teardown)) + store.receive(.ehSetting(.teardown)) + store.send(.set(\.$route, .login)) { + $0.route = .login + } + store.send(.set(\.$ehCookiesState, .empty(.ehentai))) { + $0.ehCookiesState = .empty(.ehentai) + } + store.send(.set(\.$exCookiesState, .empty(.exhentai))) { + $0.exCookiesState = .empty(.exhentai) + } + } + + func testSetNavigation() throws { + let store = store + + store.send(.setNavigation(nil)) { + $0.route = nil + } + store.receive(.clearSubStates) { + $0.loginState = .init() + $0.ehSettingState = .init() + } + store.receive(.login(.teardown)) + store.receive(.ehSetting(.teardown)) + store.send(.setNavigation(.webView(.mock))) { + $0.route = .webView(.mock) + } + } + + func testOnLogoutConfirmButtonTapped() throws { + let store = store + + store.send(.onLogoutConfirmButtonTapped) + store.receive(.loadCookies) { + $0.ehCookiesState = .init( + host: .ehentai, + igneous: .init(key: Defaults.Cookie.igneous, value: .empty), + memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty), + passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty) + ) + $0.exCookiesState = .init( + host: .exhentai, + igneous: .init(key: Defaults.Cookie.igneous, value: .empty), + memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty), + passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty) + ) + } + } + + func testClearSubStates() throws { + let store = store + + store.send(.clearSubStates) { + $0.loginState = .init() + $0.ehSettingState = .init() + } + store.receive(.login(.teardown)) + store.receive(.ehSetting(.teardown)) + } + + func testLoadCookies() throws { + let store = store + + store.send(.loadCookies) { + $0.ehCookiesState = .init( + host: .ehentai, + igneous: .init(key: Defaults.Cookie.igneous, value: .empty), + memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty), + passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty) + ) + $0.exCookiesState = .init( + host: .exhentai, + igneous: .init(key: Defaults.Cookie.igneous, value: .empty), + memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty), + passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty) + ) + } + } + + func testCopyCookies() throws { + let store = store + + store.send(.copyCookies(.ehentai)) + store.receive(.setNavigation(.hud)) { + $0.route = .hud + } + } + + func testLoginLoginDone() throws { + let store = store + + store.send(.login(.loginDone(.failure(.unknown)))) + if environment.cookiesClient.didLogin { + store.receive(.setNavigation(nil)) { + $0.route = nil + } + store.receive(.clearSubStates) { + $0.loginState = .init() + $0.ehSettingState = .init() + } + store.receive(.login(.teardown)) + store.receive(.ehSetting(.teardown)) + } + } +} From a6d1c93cf7583ed9ad7251a95ae377424b10c295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sun, 6 Mar 2022 22:08:14 +0900 Subject: [PATCH 08/22] refactor: `AccountSettingStoreTests` --- .../Setting/AccountSettingStoreTests.swift | 117 ++++++++++++++---- 1 file changed, 92 insertions(+), 25 deletions(-) diff --git a/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift b/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift index 459221c7..8e6c71ac 100644 --- a/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift +++ b/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift @@ -10,7 +10,7 @@ import XCTest import ComposableArchitecture class AccountSettingStoreTests: XCTestCase { - private var environment: AccountSettingEnvironment { + private var noopEnvironment: AccountSettingEnvironment { .init( hapticClient: .noop, cookiesClient: .noop, @@ -18,20 +18,24 @@ class AccountSettingStoreTests: XCTestCase { uiApplicationClient: .noop ) } - private var store: TestStore< - AccountSettingState, AccountSettingState, - AccountSettingAction, AccountSettingAction, - AccountSettingEnvironment - > { - .init( - initialState: .init(), - reducer: accountSettingReducer, - environment: environment - ) - } func testBinding() throws { - let store = store + let store = TestStore( + initialState: AccountSettingState( + route: .ehSetting, + ehCookiesState: .empty(.exhentai), + exCookiesState: .empty(.ehentai), + loginState: .init(route: .webView(.mock)), + ehSettingState: .init(route: .deleteProfile) + ), + reducer: accountSettingReducer, + environment: AccountSettingEnvironment( + hapticClient: .noop, + cookiesClient: .live, + clipboardClient: .noop, + uiApplicationClient: .noop + ) + ) store.send(.set(\.$route, nil)) { $0.route = nil @@ -45,16 +49,42 @@ class AccountSettingStoreTests: XCTestCase { store.send(.set(\.$route, .login)) { $0.route = .login } - store.send(.set(\.$ehCookiesState, .empty(.ehentai))) { - $0.ehCookiesState = .empty(.ehentai) + let value = "test" + let ehCookiesState = CookiesState( + host: .ehentai, + igneous: .init(key: Defaults.Cookie.igneous, value: .empty, editingText: value), + memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty, editingText: value), + passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty, editingText: value) + ) + let exCookiesState = CookiesState( + host: .exhentai, + igneous: .init(key: Defaults.Cookie.igneous, value: .empty, editingText: value), + memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty, editingText: value), + passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty, editingText: value) + ) + store.send(.set(\.$ehCookiesState, ehCookiesState)) { + $0.ehCookiesState = ehCookiesState } - store.send(.set(\.$exCookiesState, .empty(.exhentai))) { - $0.exCookiesState = .empty(.exhentai) + store.send(.set(\.$exCookiesState, exCookiesState)) { + $0.exCookiesState = exCookiesState } + + [Defaults.Cookie.igneous, Defaults.Cookie.ipbMemberId, Defaults.Cookie.ipbPassHash] + .flatMap({ key in [Defaults.URL.ehentai, Defaults.URL.exhentai].map({ ($0, key) }) }) + .map(CookiesClient.live.getCookie) + .forEach({ XCTAssertEqual($0, .init(rawValue: value, localizedString: .init())) }) } func testSetNavigation() throws { - let store = store + let store = TestStore( + initialState: AccountSettingState( + route: .ehSetting, + loginState: .init(route: .webView(.mock)), + ehSettingState: .init(route: .deleteProfile) + ), + reducer: accountSettingReducer, + environment: noopEnvironment + ) store.send(.setNavigation(nil)) { $0.route = nil @@ -71,7 +101,14 @@ class AccountSettingStoreTests: XCTestCase { } func testOnLogoutConfirmButtonTapped() throws { - let store = store + let store = TestStore( + initialState: AccountSettingState( + ehCookiesState: .empty(.exhentai), + exCookiesState: .empty(.ehentai) + ), + reducer: accountSettingReducer, + environment: noopEnvironment + ) store.send(.onLogoutConfirmButtonTapped) store.receive(.loadCookies) { @@ -91,7 +128,14 @@ class AccountSettingStoreTests: XCTestCase { } func testClearSubStates() throws { - let store = store + let store = TestStore( + initialState: AccountSettingState( + loginState: .init(route: .webView(.mock)), + ehSettingState: .init(route: .deleteProfile) + ), + reducer: accountSettingReducer, + environment: noopEnvironment + ) store.send(.clearSubStates) { $0.loginState = .init() @@ -102,7 +146,14 @@ class AccountSettingStoreTests: XCTestCase { } func testLoadCookies() throws { - let store = store + let store = TestStore( + initialState: AccountSettingState( + ehCookiesState: .empty(.exhentai), + exCookiesState: .empty(.ehentai) + ), + reducer: accountSettingReducer, + environment: noopEnvironment + ) store.send(.loadCookies) { $0.ehCookiesState = .init( @@ -121,7 +172,13 @@ class AccountSettingStoreTests: XCTestCase { } func testCopyCookies() throws { - let store = store + let store = TestStore( + initialState: AccountSettingState( + route: .ehSetting + ), + reducer: accountSettingReducer, + environment: noopEnvironment + ) store.send(.copyCookies(.ehentai)) store.receive(.setNavigation(.hud)) { @@ -130,10 +187,20 @@ class AccountSettingStoreTests: XCTestCase { } func testLoginLoginDone() throws { - let store = store + let store = TestStore( + initialState: AccountSettingState( + route: .ehSetting, + loginState: .init(route: .webView(.mock), loginState: .loading), + ehSettingState: .init(route: .deleteProfile) + ), + reducer: accountSettingReducer, + environment: noopEnvironment + ) - store.send(.login(.loginDone(.failure(.unknown)))) - if environment.cookiesClient.didLogin { + store.send(.login(.loginDone(.success(nil)))) { + $0.loginState = .init(route: nil, loginState: .idle) + } + if noopEnvironment.cookiesClient.didLogin { store.receive(.setNavigation(nil)) { $0.route = nil } From f6277dcdb57038ea818ff64fae90b24fad739bbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Thu, 24 Mar 2022 09:52:54 +0900 Subject: [PATCH 09/22] test: Refactor `AccountSettingStoreTests` --- .../Setting/AccountSettingStoreTests.swift | 86 ++++++++++++------- 1 file changed, 55 insertions(+), 31 deletions(-) diff --git a/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift b/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift index 8e6c71ac..6e9fb34c 100644 --- a/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift +++ b/EhPandaTests/Tests/Store/Setting/AccountSettingStoreTests.swift @@ -18,6 +18,44 @@ class AccountSettingStoreTests: XCTestCase { uiApplicationClient: .noop ) } + private static func getCookiesState(with value: String) -> (CookiesState, CookiesState) { + let ehCookiesState = CookiesState( + host: .ehentai, + igneous: .init(key: Defaults.Cookie.igneous, value: .init(rawValue: value, localizedString: .init()), editingText: value), + memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .init(rawValue: value, localizedString: .init()), editingText: value), + passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .init(rawValue: value, localizedString: .init()), editingText: value) + ) + let exCookiesState = CookiesState( + host: .exhentai, + igneous: .init(key: Defaults.Cookie.igneous, value: .init(rawValue: value, localizedString: .init()), editingText: value), + memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .init(rawValue: value, localizedString: .init()), editingText: value), + passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .init(rawValue: value, localizedString: .init()), editingText: value) + ) + return (ehCookiesState, exCookiesState) + } + private static func setCookies(with state: CookiesState) { + _ = CookiesClient.live.setCookies(state: state).sink(receiveValue: { _ in }) + } + @discardableResult private static func teardownCookies(value: String? = nil) -> String { + let initialValue = UUID().uuidString + let (initialEhCookiesState, initialExCookiesState) = getCookiesState(with: value ?? initialValue) + setCookies(with: initialEhCookiesState) + setCookies(with: initialExCookiesState) + return value ?? initialValue + } + + override class func tearDown() { + super.tearDown() + + teardownCookies(value: .init()) + } + + func testCookies(with value: String) throws { + [Defaults.Cookie.igneous, Defaults.Cookie.ipbMemberId, Defaults.Cookie.ipbPassHash] + .flatMap({ key in [Defaults.URL.ehentai, Defaults.URL.exhentai].map({ ($0, key) }) }) + .map(CookiesClient.live.getCookie) + .forEach({ XCTAssertEqual($0, .init(rawValue: value, localizedString: .init())) }) + } func testBinding() throws { let store = TestStore( @@ -49,30 +87,18 @@ class AccountSettingStoreTests: XCTestCase { store.send(.set(\.$route, .login)) { $0.route = .login } - let value = "test" - let ehCookiesState = CookiesState( - host: .ehentai, - igneous: .init(key: Defaults.Cookie.igneous, value: .empty, editingText: value), - memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty, editingText: value), - passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty, editingText: value) - ) - let exCookiesState = CookiesState( - host: .exhentai, - igneous: .init(key: Defaults.Cookie.igneous, value: .empty, editingText: value), - memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty, editingText: value), - passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty, editingText: value) - ) + + AccountSettingStoreTests.teardownCookies() + + let testValue = UUID().uuidString + let (ehCookiesState, exCookiesState) = AccountSettingStoreTests.getCookiesState(with: testValue) store.send(.set(\.$ehCookiesState, ehCookiesState)) { $0.ehCookiesState = ehCookiesState } store.send(.set(\.$exCookiesState, exCookiesState)) { $0.exCookiesState = exCookiesState } - - [Defaults.Cookie.igneous, Defaults.Cookie.ipbMemberId, Defaults.Cookie.ipbPassHash] - .flatMap({ key in [Defaults.URL.ehentai, Defaults.URL.exhentai].map({ ($0, key) }) }) - .map(CookiesClient.live.getCookie) - .forEach({ XCTAssertEqual($0, .init(rawValue: value, localizedString: .init())) }) + try testCookies(with: testValue) } func testSetNavigation() throws { @@ -107,24 +133,22 @@ class AccountSettingStoreTests: XCTestCase { exCookiesState: .empty(.ehentai) ), reducer: accountSettingReducer, - environment: noopEnvironment + environment: AccountSettingEnvironment( + hapticClient: .noop, + cookiesClient: .live, + clipboardClient: .noop, + uiApplicationClient: .noop + ) ) + let initialValue = AccountSettingStoreTests.teardownCookies() + let (ehCookiesState, exCookiesState) = AccountSettingStoreTests.getCookiesState(with: initialValue) store.send(.onLogoutConfirmButtonTapped) store.receive(.loadCookies) { - $0.ehCookiesState = .init( - host: .ehentai, - igneous: .init(key: Defaults.Cookie.igneous, value: .empty), - memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty), - passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty) - ) - $0.exCookiesState = .init( - host: .exhentai, - igneous: .init(key: Defaults.Cookie.igneous, value: .empty), - memberID: .init(key: Defaults.Cookie.ipbMemberId, value: .empty), - passHash: .init(key: Defaults.Cookie.ipbPassHash, value: .empty) - ) + $0.ehCookiesState = ehCookiesState + $0.exCookiesState = exCookiesState } + try testCookies(with: initialValue) } func testClearSubStates() throws { From e1df18611a87ee701b5231bc1d2a6a2bddd9c0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Thu, 24 Mar 2022 11:33:41 +0900 Subject: [PATCH 10/22] fix: Unexpected haptic feedbacks on favorites tap when nothing happens --- EhPanda/DataFlow/AppStore.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/EhPanda/DataFlow/AppStore.swift b/EhPanda/DataFlow/AppStore.swift index 44463190..5034b0c4 100644 --- a/EhPanda/DataFlow/AppStore.swift +++ b/EhPanda/DataFlow/AppStore.swift @@ -126,8 +126,10 @@ let appReducerCore = Reducer { state, actio case .favorites: if state.favoritesState.route != nil { effects.append(.init(value: .favorites(.setNavigation(nil)))) - } else { + effects.append(hapticEffect) + } else if environment.cookiesClient.didLogin { effects.append(.init(value: .favorites(.fetchGalleries()))) + effects.append(hapticEffect) } case .search: if state.searchRootState.route != nil { @@ -141,7 +143,7 @@ let appReducerCore = Reducer { state, actio effects.append(hapticEffect) } } - if [.home, .favorites, .search].contains(type) { + if [.home, .search].contains(type) { effects.append(hapticEffect) } } From d40ee4b557cc570e90ef8748248dfcda6d0c7688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Thu, 24 Mar 2022 11:34:44 +0900 Subject: [PATCH 11/22] test: Add `GeneralSettingStoreTests` --- EhPanda.xcodeproj/project.pbxproj | 4 + .../Tools/Clients/AuthorizationClient.swift | 21 +++++ .../App/Tools/Clients/DatabaseClient.swift | 25 ++++++ EhPanda/App/Tools/Clients/FileClient.swift | 25 ++++++ EhPanda/App/Tools/Clients/LibraryClient.swift | 38 ++++++++-- EhPanda/App/Tools/Clients/LoggerClient.swift | 18 +++++ .../DataFlow/GeneralSettingStore.swift | 17 ++--- EhPanda/View/Setting/DataFlow/LogsStore.swift | 2 +- .../Setting/GeneralSettingStoreTests.swift | 76 +++++++++++++++++++ 9 files changed, 209 insertions(+), 17 deletions(-) create mode 100644 EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift diff --git a/EhPanda.xcodeproj/project.pbxproj b/EhPanda.xcodeproj/project.pbxproj index fbce5619..51b41c72 100644 --- a/EhPanda.xcodeproj/project.pbxproj +++ b/EhPanda.xcodeproj/project.pbxproj @@ -114,6 +114,7 @@ AB6505A026B0027800F91E9D /* SwiftUIPager in Frameworks */ = {isa = PBXBuildFile; productRef = AB65059F26B0027800F91E9D /* SwiftUIPager */; }; AB69CB8026B3DABC00699359 /* AdvancedList.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB69CB7F26B3DABC00699359 /* AdvancedList.swift */; }; AB69CB8226B3DAF400699359 /* ControlPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB69CB8126B3DAF400699359 /* ControlPanel.swift */; }; + AB6D106A27EBF890003A2245 /* GeneralSettingStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6D106927EBF890003A2245 /* GeneralSettingStoreTests.swift */; }; AB6DE897268822390087C579 /* LogsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6DE896268822390087C579 /* LogsView.swift */; }; AB706F7927890A6C0025A48A /* AppRouteStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB706F7827890A6C0025A48A /* AppRouteStore.swift */; }; AB706F7B278937500025A48A /* FrontpageStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB706F7A278937500025A48A /* FrontpageStore.swift */; }; @@ -401,6 +402,7 @@ AB63EADC2699AC9100090535 /* AppEnvMO+CoreDataClass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppEnvMO+CoreDataClass.swift"; sourceTree = ""; }; AB69CB7F26B3DABC00699359 /* AdvancedList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedList.swift; sourceTree = ""; }; AB69CB8126B3DAF400699359 /* ControlPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ControlPanel.swift; sourceTree = ""; }; + AB6D106927EBF890003A2245 /* GeneralSettingStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingStoreTests.swift; sourceTree = ""; }; AB6DE896268822390087C579 /* LogsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogsView.swift; sourceTree = ""; }; AB706F7827890A6C0025A48A /* AppRouteStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppRouteStore.swift; sourceTree = ""; }; AB706F7A278937500025A48A /* FrontpageStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrontpageStore.swift; sourceTree = ""; }; @@ -1090,6 +1092,7 @@ isa = PBXGroup; children = ( ABA12F3127D49CEB0021922D /* AccountSettingStoreTests.swift */, + AB6D106927EBF890003A2245 /* GeneralSettingStoreTests.swift */, ); path = Setting; sourceTree = ""; @@ -1794,6 +1797,7 @@ AB31CD3727B6695800F40E0A /* HTMLFilename.swift in Sources */, ABA12F3227D49CEB0021922D /* AccountSettingStoreTests.swift in Sources */, AB3E9E7426D210B1008FE518 /* TestHelper.swift in Sources */, + AB6D106A27EBF890003A2245 /* GeneralSettingStoreTests.swift in Sources */, AB31CD3B27B66E0300F40E0A /* ListParserTestType.swift in Sources */, ABD9770E27B65A7300983DE7 /* ListParserTests.swift in Sources */, ); diff --git a/EhPanda/App/Tools/Clients/AuthorizationClient.swift b/EhPanda/App/Tools/Clients/AuthorizationClient.swift index 43cb5042..3d8cfa1f 100644 --- a/EhPanda/App/Tools/Clients/AuthorizationClient.swift +++ b/EhPanda/App/Tools/Clients/AuthorizationClient.swift @@ -39,3 +39,24 @@ extension AuthorizationClient { } ) } + +// MARK: Test +#if DEBUG +import XCTestDynamicOverlay + +extension AuthorizationClient { + static let failing: Self = .init( + passcodeNotSet: { + XCTFail("\(Self.self).passcodeNotSet is unimplemented") + return false + }, + localAuthroize: { .failing("\(Self.self).localAuthroize(\($0)) is unimplemented")} + ) +} +#endif +extension AuthorizationClient { + static let noop: Self = .init( + passcodeNotSet: { false }, + localAuthroize: { _ in .none } + ) +} diff --git a/EhPanda/App/Tools/Clients/DatabaseClient.swift b/EhPanda/App/Tools/Clients/DatabaseClient.swift index a59abba7..077fa973 100644 --- a/EhPanda/App/Tools/Clients/DatabaseClient.swift +++ b/EhPanda/App/Tools/Clients/DatabaseClient.swift @@ -534,3 +534,28 @@ extension DatabaseClient { } } } + +// MARK: Test +#if DEBUG +import XCTestDynamicOverlay + +extension DatabaseClient { + static let failing: Self = .init( + prepareDatabase: { .failing("\(Self.self).prepareDatabase is unimplemented") }, + dropDatabase: { .failing("\(Self.self).dropDatabase is unimplemented") }, + saveContext: { XCTFail("\(Self.self).saveContext is unimplemented") }, + materializedObjects: { + XCTFail("\(Self.self).materializedObjects(\($0), \($1)) is unimplemented") + return .init() + } + ) +} +#endif +extension DatabaseClient { + static let noop: Self = .init( + prepareDatabase: { .none }, + dropDatabase: { .none }, + saveContext: {}, + materializedObjects: { _, _ in .init() } + ) +} diff --git a/EhPanda/App/Tools/Clients/FileClient.swift b/EhPanda/App/Tools/Clients/FileClient.swift index bbb2eceb..a0b85f7d 100644 --- a/EhPanda/App/Tools/Clients/FileClient.swift +++ b/EhPanda/App/Tools/Clients/FileClient.swift @@ -103,3 +103,28 @@ extension FileClient { } } } + +// MARK: Test +#if DEBUG +import XCTestDynamicOverlay + +extension FileClient { + static let failing: Self = .init( + createFile: { + XCTFail("\(Self.self).createFile(\($0), \(String(describing: $1))) is unimplemented") + return false + }, + fetchLogs: { .failing("\(Self.self).fetchLogs is unimplemented") }, + deleteLog: { .failing("\(Self.self).deleteLog(\($0)) is unimplemented") }, + importTagTranslator: { .failing("\(Self.self).importTagTranslator(\($0)) is unimplemented") } + ) +} +#endif +extension FileClient { + static let noop: Self = .init( + createFile: { _, _ in false }, + fetchLogs: { .none }, + deleteLog: { _ in .none }, + importTagTranslator: { _ in .none } + ) +} diff --git a/EhPanda/App/Tools/Clients/LibraryClient.swift b/EhPanda/App/Tools/Clients/LibraryClient.swift index 7bb33727..0c123c44 100644 --- a/EhPanda/App/Tools/Clients/LibraryClient.swift +++ b/EhPanda/App/Tools/Clients/LibraryClient.swift @@ -18,7 +18,7 @@ struct LibraryClient { let initializeWebImage: () -> Effect let clearWebImageDiskCache: () -> Effect let analyzeImageColors: (UIImage) -> Effect - let calculateWebImageDiskCacheSize: () -> Effect, Never> + let calculateWebImageDiskCacheSize: () -> Effect } extension LibraryClient { @@ -76,10 +76,38 @@ extension LibraryClient { .eraseToEffect() }, calculateWebImageDiskCacheSize: { - Future(KingfisherManager.shared.cache.calculateDiskStorageSize) - .eraseToAnyPublisher() - .receive(on: DispatchQueue.main) - .catchToEffect() + Future { promise in + KingfisherManager.shared.cache.calculateDiskStorageSize { + promise(.success((try? $0.get()) ?? 0)) + } + } + .eraseToAnyPublisher() + .receive(on: DispatchQueue.main) + .eraseToEffect() } ) } + +// MARK: Test +#if DEBUG +import XCTestDynamicOverlay + +extension LibraryClient { + static let failing: Self = .init( + initializeLogger: { .failing("\(Self.self).initializeLogger is unimplemented") }, + initializeWebImage: { .failing("\(Self.self).initializeWebImage is unimplemented") }, + clearWebImageDiskCache: { .failing("\(Self.self).clearWebImageDiskCache is unimplemented") }, + analyzeImageColors: { _ in .failing("\(Self.self).analyzeImageColors is unimplemented") }, + calculateWebImageDiskCacheSize: { .failing("\(Self.self).calculateWebImageDiskCacheSize is unimplemented") } + ) +} +#endif +extension LibraryClient { + static let noop: Self = .init( + initializeLogger: { .none }, + initializeWebImage: { .none }, + clearWebImageDiskCache: { .none }, + analyzeImageColors: { _ in .none }, + calculateWebImageDiskCacheSize: { .none } + ) +} diff --git a/EhPanda/App/Tools/Clients/LoggerClient.swift b/EhPanda/App/Tools/Clients/LoggerClient.swift index cf9023ad..6f22c8ee 100644 --- a/EhPanda/App/Tools/Clients/LoggerClient.swift +++ b/EhPanda/App/Tools/Clients/LoggerClient.swift @@ -26,3 +26,21 @@ extension LoggerClient { } ) } + +// MARK: Test +#if DEBUG +import XCTestDynamicOverlay + +extension LoggerClient { + static let failing: Self = .init( + info: { .failing("\(Self.self).info(\($0), \(String(describing: $1))) is unimplemented") }, + error: { .failing("\(Self.self).error(\($0), \(String(describing: $1))) is unimplemented") } + ) +} +#endif +extension LoggerClient { + static let noop: Self = .init( + info: { _, _ in .none }, + error: { _, _ in .none } + ) +} diff --git a/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift b/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift index 9cf94380..3b52de9c 100644 --- a/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift +++ b/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift @@ -25,7 +25,7 @@ struct GeneralSettingState: Equatable { var logsState = LogsState() } -enum GeneralSettingAction: BindableAction { +enum GeneralSettingAction: BindableAction, Equatable { case binding(BindingAction) case setNavigation(GeneralSettingState.Route?) case clearSubStates @@ -36,7 +36,7 @@ enum GeneralSettingAction: BindableAction { case checkPasscodeSetting case navigateToSystemSetting case calculateWebImageDiskCache - case calculateWebImageDiskCacheDone(Result) + case calculateWebImageDiskCacheDone(UInt) case logs(LogsAction) } @@ -91,15 +91,10 @@ let generalSettingReducer = Reducer) case setNavigation(LogsState.Route?) case navigateToFileApp diff --git a/EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift b/EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift new file mode 100644 index 00000000..a0bec637 --- /dev/null +++ b/EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift @@ -0,0 +1,76 @@ +// +// GeneralSettingStoreTests.swift +// EhPandaTests +// +// Created by 荒木辰造 on R 4/03/24. +// + +import XCTest +@testable import EhPanda +import ComposableArchitecture + +class GeneralSettingStoreTests: XCTestCase { + private var noopEnvironment: GeneralSettingEnvironment { + .init( + fileClient: .noop, + loggerClient: .noop, + libraryClient: .noop, + databaseClient: .noop, + uiApplicationClient: .noop, + authorizationClient: .noop + ) + } + func testBinding() throws { + let store = TestStore( + initialState: GeneralSettingState( + route: .clearCache, + loadingState: .idle, + diskImageCacheSize: .init(), + passcodeNotSet: false, + logsState: .init(route: .log( + .init(fileName: .init(), contents: .init()) + )) + ), + reducer: generalSettingReducer, + environment: noopEnvironment + ) + + store.send(.set(\.$route, nil)) { + $0.route = nil + } + store.receive(.clearSubStates) { + $0.logsState = .init() + } + store.receive(.logs(.teardown)) + store.send(.set(\.$route, .logs)) { + $0.route = .logs + } + } + + func testSetNavigation() throws { + let store = TestStore( + initialState: GeneralSettingState( + route: .clearCache, + loadingState: .idle, + diskImageCacheSize: .init(), + passcodeNotSet: false, + logsState: .init(route: .log( + .init(fileName: .init(), contents: .init()) + )) + ), + reducer: generalSettingReducer, + environment: noopEnvironment + ) + + store.send(.setNavigation(nil)) { + $0.route = nil + } + store.receive(.clearSubStates) { + $0.logsState = .init() + } + store.receive(.logs(.teardown)) + store.send(.set(\.$route, .logs)) { + $0.route = .logs + } + } +} From 32c42783ea9306ee815302fa4919f7cc7c58b92d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Thu, 24 Mar 2022 11:57:26 +0900 Subject: [PATCH 12/22] refactor: Clean codes --- .../xcshareddata/swiftpm/Package.resolved | 422 +++++++++--------- EhPanda/View/Detail/PreviewsView.swift | 2 +- .../View/Setting/Support/EhSettingView.swift | 4 +- 3 files changed, 213 insertions(+), 215 deletions(-) diff --git a/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index bca8e127..16a0612a 100644 --- a/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,214 +1,212 @@ { - "object": { - "pins": [ - { - "package": "AlertKit", - "repositoryURL": "https://github.com/tatsuz0u/AlertKit.git", - "state": { - "branch": "custom", - "revision": "39b01c53ffadf3dab9871dd4c960cd81af5246b6", - "version": null - } - }, - { - "package": "Colorful", - "repositoryURL": "https://github.com/Co2333/Colorful.git", - "state": { - "branch": null, - "revision": "eb5a350aec759bd413615273cb6d64553aead4d5", - "version": "1.0.1" - } - }, - { - "package": "combine-schedulers", - "repositoryURL": "https://github.com/pointfreeco/combine-schedulers", - "state": { - "branch": null, - "revision": "4cf088c29a20f52be0f2ca54992b492c54e0076b", - "version": "0.5.3" - } - }, - { - "package": "DeprecatedAPI", - "repositoryURL": "https://github.com/tatsuz0u/DeprecatedAPI.git", - "state": { - "branch": "main", - "revision": "021e29675457a9b4b7859a46afbb5d0e37574e84", - "version": null - } - }, - { - "package": "FilePicker", - "repositoryURL": "https://github.com/markrenaud/FilePicker.git", - "state": { - "branch": null, - "revision": "720f8cb5ca0c0efc982ed381afc84ba3e8b3214e", - "version": "1.0.1" - } - }, - { - "package": "Kanna", - "repositoryURL": "https://github.com/tid-kijyun/Kanna.git", - "state": { - "branch": null, - "revision": "f9e4922223dd0d3dfbf02ca70812cf5531fc0593", - "version": "5.2.7" - } - }, - { - "package": "Kingfisher", - "repositoryURL": "https://github.com/onevcat/Kingfisher.git", - "state": { - "branch": null, - "revision": "0c02c46cfdc0656ce74fd0963a75e5000a0b7f23", - "version": "7.1.2" - } - }, - { - "package": "R.swift.Library", - "repositoryURL": "https://github.com/mac-cain13/R.swift.Library.git", - "state": { - "branch": null, - "revision": "8998cfe77f4fce79ee6dfab0c88a7d551659d8fb", - "version": "5.4.0" - } - }, - { - "package": "SFSafeSymbols", - "repositoryURL": "https://github.com/SFSafeSymbols/SFSafeSymbols.git", - "state": { - "branch": "stable", - "revision": "846e558cda47e1a2d2cea988a9c18378f830bddf", - "version": null - } - }, - { - "package": "swift-case-paths", - "repositoryURL": "https://github.com/pointfreeco/swift-case-paths", - "state": { - "branch": null, - "revision": "241301b67d8551c26d8f09bd2c0e52cc49f18007", - "version": "0.8.0" - } - }, - { - "package": "swift-collections", - "repositoryURL": "https://github.com/apple/swift-collections", - "state": { - "branch": null, - "revision": "48254824bb4248676bf7ce56014ff57b142b77eb", - "version": "1.0.2" - } - }, - { - "package": "swift-composable-architecture", - "repositoryURL": "https://github.com/pointfreeco/swift-composable-architecture.git", - "state": { - "branch": null, - "revision": "ba9c626ab1b2b6af8cf684eebb2ab472fa5b6753", - "version": "0.33.1" - } - }, - { - "package": "swift-custom-dump", - "repositoryURL": "https://github.com/pointfreeco/swift-custom-dump", - "state": { - "branch": null, - "revision": "51698ece74ecf31959d3fa81733f0a5363ef1b4e", - "version": "0.3.0" - } - }, - { - "package": "swift-identified-collections", - "repositoryURL": "https://github.com/pointfreeco/swift-identified-collections", - "state": { - "branch": null, - "revision": "680bf440178a78a627b1c2c64c0855f6523ad5b9", - "version": "0.3.2" - } - }, - { - "package": "SwiftCommonMark", - "repositoryURL": "https://github.com/gonzalezreal/SwiftCommonMark.git", - "state": { - "branch": null, - "revision": "ed252beaddecce28ea6363f800c773d6169011b8", - "version": "1.0.0" - } - }, - { - "package": "swiftui-navigation", - "repositoryURL": "https://github.com/pointfreeco/swiftui-navigation.git", - "state": { - "branch": null, - "revision": "2694c03284a368168b3e0b8d7ab52626802d2246", - "version": "0.1.0" - } - }, - { - "package": "SwiftUIPager", - "repositoryURL": "https://github.com/fermoya/SwiftUIPager.git", - "state": { - "branch": null, - "revision": "3c0485ffc369f2138477ec508cafc5fffd39f2bf", - "version": "2.3.2" - } - }, - { - "package": "SwiftyBeaver", - "repositoryURL": "https://github.com/tatsuz0u/SwiftyBeaver.git", - "state": { - "branch": "custom", - "revision": "2e8a65567ca877a7fdf6a63ab53b2c49a927af87", - "version": null - } - }, - { - "package": "SwiftyOpenCC", - "repositoryURL": "https://github.com/ddddxxx/SwiftyOpenCC.git", - "state": { - "branch": null, - "revision": "1d8105a0f7199c90af722bff62728050c858e777", - "version": "2.0.0-beta" - } - }, - { - "package": "TTProgressHUD", - "repositoryURL": "https://github.com/tatsuz0u/TTProgressHUD.git", - "state": { - "branch": "custom", - "revision": "349b595c4f0ff86e8d3c8d65be206a02642fd525", - "version": null - } - }, - { - "package": "UIImageColors", - "repositoryURL": "https://github.com/jathu/UIImageColors.git", - "state": { - "branch": null, - "revision": "e49e6c32ea556e9fa0109dc79686bea4a10d41a2", - "version": "2.2.0" - } - }, - { - "package": "WaterfallGrid", - "repositoryURL": "https://github.com/paololeonardi/WaterfallGrid.git", - "state": { - "branch": null, - "revision": "944aa82832ed5a9eaaf50862cdd53e3c10ab55eb", - "version": "1.0.1" - } - }, - { - "package": "xctest-dynamic-overlay", - "repositoryURL": "https://github.com/pointfreeco/xctest-dynamic-overlay", - "state": { - "branch": null, - "revision": "50a70a9d3583fe228ce672e8923010c8df2deddd", - "version": "0.2.1" - } - } - ] - }, - "version": 1 + "pins" : [ + { + "identity" : "alertkit", + "kind" : "remoteSourceControl", + "location" : "https://github.com/tatsuz0u/AlertKit.git", + "state" : { + "branch" : "custom", + "revision" : "39b01c53ffadf3dab9871dd4c960cd81af5246b6" + } + }, + { + "identity" : "colorful", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Co2333/Colorful.git", + "state" : { + "revision" : "eb5a350aec759bd413615273cb6d64553aead4d5", + "version" : "1.0.1" + } + }, + { + "identity" : "combine-schedulers", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/combine-schedulers", + "state" : { + "revision" : "4cf088c29a20f52be0f2ca54992b492c54e0076b", + "version" : "0.5.3" + } + }, + { + "identity" : "deprecatedapi", + "kind" : "remoteSourceControl", + "location" : "https://github.com/tatsuz0u/DeprecatedAPI.git", + "state" : { + "branch" : "main", + "revision" : "021e29675457a9b4b7859a46afbb5d0e37574e84" + } + }, + { + "identity" : "filepicker", + "kind" : "remoteSourceControl", + "location" : "https://github.com/markrenaud/FilePicker.git", + "state" : { + "revision" : "720f8cb5ca0c0efc982ed381afc84ba3e8b3214e", + "version" : "1.0.1" + } + }, + { + "identity" : "kanna", + "kind" : "remoteSourceControl", + "location" : "https://github.com/tid-kijyun/Kanna.git", + "state" : { + "revision" : "f9e4922223dd0d3dfbf02ca70812cf5531fc0593", + "version" : "5.2.7" + } + }, + { + "identity" : "kingfisher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/onevcat/Kingfisher.git", + "state" : { + "revision" : "0c02c46cfdc0656ce74fd0963a75e5000a0b7f23", + "version" : "7.1.2" + } + }, + { + "identity" : "r.swift.library", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mac-cain13/R.swift.Library.git", + "state" : { + "revision" : "8998cfe77f4fce79ee6dfab0c88a7d551659d8fb", + "version" : "5.4.0" + } + }, + { + "identity" : "sfsafesymbols", + "kind" : "remoteSourceControl", + "location" : "https://github.com/SFSafeSymbols/SFSafeSymbols.git", + "state" : { + "branch" : "stable", + "revision" : "846e558cda47e1a2d2cea988a9c18378f830bddf" + } + }, + { + "identity" : "swift-case-paths", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-case-paths", + "state" : { + "revision" : "241301b67d8551c26d8f09bd2c0e52cc49f18007", + "version" : "0.8.0" + } + }, + { + "identity" : "swift-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-collections", + "state" : { + "revision" : "48254824bb4248676bf7ce56014ff57b142b77eb", + "version" : "1.0.2" + } + }, + { + "identity" : "swift-composable-architecture", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-composable-architecture.git", + "state" : { + "revision" : "ba9c626ab1b2b6af8cf684eebb2ab472fa5b6753", + "version" : "0.33.1" + } + }, + { + "identity" : "swift-custom-dump", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-custom-dump", + "state" : { + "revision" : "51698ece74ecf31959d3fa81733f0a5363ef1b4e", + "version" : "0.3.0" + } + }, + { + "identity" : "swift-identified-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-identified-collections", + "state" : { + "revision" : "680bf440178a78a627b1c2c64c0855f6523ad5b9", + "version" : "0.3.2" + } + }, + { + "identity" : "swiftcommonmark", + "kind" : "remoteSourceControl", + "location" : "https://github.com/gonzalezreal/SwiftCommonMark.git", + "state" : { + "revision" : "ed252beaddecce28ea6363f800c773d6169011b8", + "version" : "1.0.0" + } + }, + { + "identity" : "swiftui-navigation", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swiftui-navigation.git", + "state" : { + "revision" : "2694c03284a368168b3e0b8d7ab52626802d2246", + "version" : "0.1.0" + } + }, + { + "identity" : "swiftuipager", + "kind" : "remoteSourceControl", + "location" : "https://github.com/fermoya/SwiftUIPager.git", + "state" : { + "revision" : "3c0485ffc369f2138477ec508cafc5fffd39f2bf", + "version" : "2.3.2" + } + }, + { + "identity" : "swiftybeaver", + "kind" : "remoteSourceControl", + "location" : "https://github.com/tatsuz0u/SwiftyBeaver.git", + "state" : { + "branch" : "custom", + "revision" : "2e8a65567ca877a7fdf6a63ab53b2c49a927af87" + } + }, + { + "identity" : "swiftyopencc", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ddddxxx/SwiftyOpenCC.git", + "state" : { + "revision" : "1d8105a0f7199c90af722bff62728050c858e777", + "version" : "2.0.0-beta" + } + }, + { + "identity" : "ttprogresshud", + "kind" : "remoteSourceControl", + "location" : "https://github.com/tatsuz0u/TTProgressHUD.git", + "state" : { + "branch" : "custom", + "revision" : "349b595c4f0ff86e8d3c8d65be206a02642fd525" + } + }, + { + "identity" : "uiimagecolors", + "kind" : "remoteSourceControl", + "location" : "https://github.com/jathu/UIImageColors.git", + "state" : { + "revision" : "e49e6c32ea556e9fa0109dc79686bea4a10d41a2", + "version" : "2.2.0" + } + }, + { + "identity" : "waterfallgrid", + "kind" : "remoteSourceControl", + "location" : "https://github.com/paololeonardi/WaterfallGrid.git", + "state" : { + "revision" : "944aa82832ed5a9eaaf50862cdd53e3c10ab55eb", + "version" : "1.0.1" + } + }, + { + "identity" : "xctest-dynamic-overlay", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay", + "state" : { + "revision" : "50a70a9d3583fe228ce672e8923010c8df2deddd", + "version" : "0.2.1" + } + } + ], + "version" : 2 } diff --git a/EhPanda/View/Detail/PreviewsView.swift b/EhPanda/View/Detail/PreviewsView.swift index 481e0807..59afaebb 100644 --- a/EhPanda/View/Detail/PreviewsView.swift +++ b/EhPanda/View/Detail/PreviewsView.swift @@ -40,7 +40,7 @@ struct PreviewsView: View { var body: some View { ScrollView { LazyVGrid(columns: gridItems) { - ForEach(1.. Date: Fri, 25 Mar 2022 09:30:34 +0900 Subject: [PATCH 13/22] Update GitHub actions environments --- .github/workflows/deploy.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4c694c82..e90c2a80 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -5,7 +5,7 @@ on: - main types: [closed] env: - DEVELOPER_DIR: /Applications/Xcode_13.2.1.app + DEVELOPER_DIR: /Applications/Xcode_13.3.app APP_VERSION: '2.3.1' SCHEME_NAME: 'EhPanda' ALTSTORE_JSON_PATH: './AltStore.json' @@ -23,7 +23,7 @@ env: SHARE_EXTENSION_DIS_PROVISION_PATH: '/tmp/action-builds/share_extension_dis.mobileprovision' jobs: Deploy: - runs-on: macos-11 + runs-on: macos-12 if: github.event.pull_request.merged == true && github.event.pull_request.user.login == 'tatsuz0u' steps: - name: Checkout diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f0eced1..51e96916 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,10 +2,10 @@ name: Test on: [push] env: SCHEME_NAME: 'EhPanda' - DEVELOPER_DIR: /Applications/Xcode_13.2.1.app + DEVELOPER_DIR: /Applications/Xcode_13.3.app jobs: Test: - runs-on: macos-11 + runs-on: macos-12 steps: - name: Checkout uses: actions/checkout@v2 From c11fae4338870fb55a7d3a320b21818957b01ca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sat, 26 Mar 2022 17:17:37 +0900 Subject: [PATCH 14/22] test: Update `GeneralSettingStoreTests` --- EhPanda.xcodeproj/project.pbxproj | 4 ++ EhPanda/App/Tools/Clients/LibraryClient.swift | 4 +- .../DataFlow/GeneralSettingStore.swift | 3 +- .../Resources/Utility/Extensions.swift | 14 ++++++ .../Setting/GeneralSettingStoreTests.swift | 43 ++++++++++++++++--- 5 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 EhPandaTests/Resources/Utility/Extensions.swift diff --git a/EhPanda.xcodeproj/project.pbxproj b/EhPanda.xcodeproj/project.pbxproj index 51b41c72..f048fdc8 100644 --- a/EhPanda.xcodeproj/project.pbxproj +++ b/EhPanda.xcodeproj/project.pbxproj @@ -179,6 +179,7 @@ ABA12F3227D49CEB0021922D /* AccountSettingStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA12F3127D49CEB0021922D /* AccountSettingStoreTests.swift */; }; ABA732D925A8018A00B3D9AB /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA732D825A8018A00B3D9AB /* Extensions.swift */; }; ABA732DF25A852D800B3D9AB /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA732DE25A852D800B3D9AB /* Filter.swift */; }; + ABAB5B9527EF023300198597 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABAB5B9427EF023300198597 /* Extensions.swift */; }; ABAC82FE26BC4A96009F5026 /* OpenCC in Frameworks */ = {isa = PBXBuildFile; productRef = ABAC82FD26BC4A96009F5026 /* OpenCC */; }; ABBB2631278E6EF3007B6149 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABBB2630278E6EF3007B6149 /* SearchView.swift */; }; ABBB2633278E6F3B007B6149 /* SearchStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABBB2632278E6F3B007B6149 /* SearchStore.swift */; }; @@ -470,6 +471,7 @@ ABA12F3127D49CEB0021922D /* AccountSettingStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSettingStoreTests.swift; sourceTree = ""; }; ABA732D825A8018A00B3D9AB /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; ABA732DE25A852D800B3D9AB /* Filter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; + ABAB5B9427EF023300198597 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; ABB5013026A41EBA00B542D9 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; ABB5013126A41EBA00B542D9 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; ABBB2630278E6EF3007B6149 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; @@ -839,6 +841,7 @@ isa = PBXGroup; children = ( AB3E9E6D26D210B1008FE518 /* TestHelper.swift */, + ABAB5B9427EF023300198597 /* Extensions.swift */, ); path = Utility; sourceTree = ""; @@ -1800,6 +1803,7 @@ AB6D106A27EBF890003A2245 /* GeneralSettingStoreTests.swift in Sources */, AB31CD3B27B66E0300F40E0A /* ListParserTestType.swift in Sources */, ABD9770E27B65A7300983DE7 /* ListParserTests.swift in Sources */, + ABAB5B9527EF023300198597 /* Extensions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/EhPanda/App/Tools/Clients/LibraryClient.swift b/EhPanda/App/Tools/Clients/LibraryClient.swift index 0c123c44..a476725b 100644 --- a/EhPanda/App/Tools/Clients/LibraryClient.swift +++ b/EhPanda/App/Tools/Clients/LibraryClient.swift @@ -18,7 +18,7 @@ struct LibraryClient { let initializeWebImage: () -> Effect let clearWebImageDiskCache: () -> Effect let analyzeImageColors: (UIImage) -> Effect - let calculateWebImageDiskCacheSize: () -> Effect + let calculateWebImageDiskCacheSize: () -> Effect } extension LibraryClient { @@ -78,7 +78,7 @@ extension LibraryClient { calculateWebImageDiskCacheSize: { Future { promise in KingfisherManager.shared.cache.calculateDiskStorageSize { - promise(.success((try? $0.get()) ?? 0)) + promise(.success(try? $0.get())) } } .eraseToAnyPublisher() diff --git a/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift b/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift index 3b52de9c..fa136172 100644 --- a/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift +++ b/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift @@ -36,7 +36,7 @@ enum GeneralSettingAction: BindableAction, Equatable { case checkPasscodeSetting case navigateToSystemSetting case calculateWebImageDiskCache - case calculateWebImageDiskCacheDone(UInt) + case calculateWebImageDiskCacheDone(UInt?) case logs(LogsAction) } @@ -92,6 +92,7 @@ let generalSettingReducer = Reducer Date: Sat, 26 Mar 2022 17:33:35 +0900 Subject: [PATCH 15/22] test: Add `AppearanceSettingStoreTests` --- EhPanda.xcodeproj/project.pbxproj | 4 ++ .../Setting/AppearanceSettingStoreTests.swift | 42 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 EhPandaTests/Tests/Store/Setting/AppearanceSettingStoreTests.swift diff --git a/EhPanda.xcodeproj/project.pbxproj b/EhPanda.xcodeproj/project.pbxproj index f048fdc8..38441e04 100644 --- a/EhPanda.xcodeproj/project.pbxproj +++ b/EhPanda.xcodeproj/project.pbxproj @@ -180,6 +180,7 @@ ABA732D925A8018A00B3D9AB /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA732D825A8018A00B3D9AB /* Extensions.swift */; }; ABA732DF25A852D800B3D9AB /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA732DE25A852D800B3D9AB /* Filter.swift */; }; ABAB5B9527EF023300198597 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABAB5B9427EF023300198597 /* Extensions.swift */; }; + ABAB5B9727EF03F600198597 /* AppearanceSettingStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABAB5B9627EF03F600198597 /* AppearanceSettingStoreTests.swift */; }; ABAC82FE26BC4A96009F5026 /* OpenCC in Frameworks */ = {isa = PBXBuildFile; productRef = ABAC82FD26BC4A96009F5026 /* OpenCC */; }; ABBB2631278E6EF3007B6149 /* SearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABBB2630278E6EF3007B6149 /* SearchView.swift */; }; ABBB2633278E6F3B007B6149 /* SearchStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABBB2632278E6F3B007B6149 /* SearchStore.swift */; }; @@ -472,6 +473,7 @@ ABA732D825A8018A00B3D9AB /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; ABA732DE25A852D800B3D9AB /* Filter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Filter.swift; sourceTree = ""; }; ABAB5B9427EF023300198597 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; + ABAB5B9627EF03F600198597 /* AppearanceSettingStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppearanceSettingStoreTests.swift; sourceTree = ""; }; ABB5013026A41EBA00B542D9 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; ABB5013126A41EBA00B542D9 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; ABBB2630278E6EF3007B6149 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; @@ -1096,6 +1098,7 @@ children = ( ABA12F3127D49CEB0021922D /* AccountSettingStoreTests.swift */, AB6D106927EBF890003A2245 /* GeneralSettingStoreTests.swift */, + ABAB5B9627EF03F600198597 /* AppearanceSettingStoreTests.swift */, ); path = Setting; sourceTree = ""; @@ -1794,6 +1797,7 @@ AB0CFB8227BBBFCE004BD372 /* EhSettingParserTests.swift in Sources */, AB31CD4327B676C300F40E0A /* GalleryMPVKeysParserTests.swift in Sources */, AB31CD3027B666E200F40E0A /* TestError.swift in Sources */, + ABAB5B9727EF03F600198597 /* AppearanceSettingStoreTests.swift in Sources */, ABD9771027B65E3400983DE7 /* GalleryDetailParserTests.swift in Sources */, AB31CD3227B6671400F40E0A /* BanIntervalParserTests.swift in Sources */, ABD9771327B6612400983DE7 /* GreetingParserTests.swift in Sources */, diff --git a/EhPandaTests/Tests/Store/Setting/AppearanceSettingStoreTests.swift b/EhPandaTests/Tests/Store/Setting/AppearanceSettingStoreTests.swift new file mode 100644 index 00000000..1c072520 --- /dev/null +++ b/EhPandaTests/Tests/Store/Setting/AppearanceSettingStoreTests.swift @@ -0,0 +1,42 @@ +// +// AppearanceSettingStoreTests.swift +// EhPandaTests +// +// Created by 荒木辰造 on R 4/03/26. +// + +import XCTest +@testable import EhPanda +import ComposableArchitecture + +class AppearanceSettingStoreTests: XCTestCase { + private var noopEnvironment: AppearanceSettingEnvironment { + .init() + } + + func testBinding() throws { + let store = TestStore( + initialState: AppearanceSettingState( + route: .appIcon + ), + reducer: appearanceSettingReducer, + environment: noopEnvironment + ) + store.send(.set(\.$route, nil)) { + $0.route = nil + } + } + + func testSetNavigation() throws { + let store = TestStore( + initialState: AppearanceSettingState( + route: .appIcon + ), + reducer: appearanceSettingReducer, + environment: noopEnvironment + ) + store.send(.setNavigation(nil)) { + $0.route = nil + } + } +} From c63dc4684426eb652ebd6816f6c87caa1d7c1205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Wed, 30 Mar 2022 00:24:48 +0900 Subject: [PATCH 16/22] Revert "Update GitHub actions environments" This reverts commit 04423ea03a32cb7a08ee0b1eefa1246522e3ecb4. --- .github/workflows/deploy.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e90c2a80..4c694c82 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -5,7 +5,7 @@ on: - main types: [closed] env: - DEVELOPER_DIR: /Applications/Xcode_13.3.app + DEVELOPER_DIR: /Applications/Xcode_13.2.1.app APP_VERSION: '2.3.1' SCHEME_NAME: 'EhPanda' ALTSTORE_JSON_PATH: './AltStore.json' @@ -23,7 +23,7 @@ env: SHARE_EXTENSION_DIS_PROVISION_PATH: '/tmp/action-builds/share_extension_dis.mobileprovision' jobs: Deploy: - runs-on: macos-12 + runs-on: macos-11 if: github.event.pull_request.merged == true && github.event.pull_request.user.login == 'tatsuz0u' steps: - name: Checkout diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 51e96916..4f0eced1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,10 +2,10 @@ name: Test on: [push] env: SCHEME_NAME: 'EhPanda' - DEVELOPER_DIR: /Applications/Xcode_13.3.app + DEVELOPER_DIR: /Applications/Xcode_13.2.1.app jobs: Test: - runs-on: macos-12 + runs-on: macos-11 steps: - name: Checkout uses: actions/checkout@v2 From 38547e9597f82a7db9616f2bb39e740dd5b22a85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Wed, 30 Mar 2022 00:27:37 +0900 Subject: [PATCH 17/22] Downgrade to Xcode 13.2.1 --- .../xcshareddata/swiftpm/Package.resolved | 422 +++++++++--------- 1 file changed, 212 insertions(+), 210 deletions(-) diff --git a/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 16a0612a..fd864cda 100644 --- a/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/EhPanda.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,212 +1,214 @@ { - "pins" : [ - { - "identity" : "alertkit", - "kind" : "remoteSourceControl", - "location" : "https://github.com/tatsuz0u/AlertKit.git", - "state" : { - "branch" : "custom", - "revision" : "39b01c53ffadf3dab9871dd4c960cd81af5246b6" - } - }, - { - "identity" : "colorful", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Co2333/Colorful.git", - "state" : { - "revision" : "eb5a350aec759bd413615273cb6d64553aead4d5", - "version" : "1.0.1" - } - }, - { - "identity" : "combine-schedulers", - "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/combine-schedulers", - "state" : { - "revision" : "4cf088c29a20f52be0f2ca54992b492c54e0076b", - "version" : "0.5.3" - } - }, - { - "identity" : "deprecatedapi", - "kind" : "remoteSourceControl", - "location" : "https://github.com/tatsuz0u/DeprecatedAPI.git", - "state" : { - "branch" : "main", - "revision" : "021e29675457a9b4b7859a46afbb5d0e37574e84" - } - }, - { - "identity" : "filepicker", - "kind" : "remoteSourceControl", - "location" : "https://github.com/markrenaud/FilePicker.git", - "state" : { - "revision" : "720f8cb5ca0c0efc982ed381afc84ba3e8b3214e", - "version" : "1.0.1" - } - }, - { - "identity" : "kanna", - "kind" : "remoteSourceControl", - "location" : "https://github.com/tid-kijyun/Kanna.git", - "state" : { - "revision" : "f9e4922223dd0d3dfbf02ca70812cf5531fc0593", - "version" : "5.2.7" - } - }, - { - "identity" : "kingfisher", - "kind" : "remoteSourceControl", - "location" : "https://github.com/onevcat/Kingfisher.git", - "state" : { - "revision" : "0c02c46cfdc0656ce74fd0963a75e5000a0b7f23", - "version" : "7.1.2" - } - }, - { - "identity" : "r.swift.library", - "kind" : "remoteSourceControl", - "location" : "https://github.com/mac-cain13/R.swift.Library.git", - "state" : { - "revision" : "8998cfe77f4fce79ee6dfab0c88a7d551659d8fb", - "version" : "5.4.0" - } - }, - { - "identity" : "sfsafesymbols", - "kind" : "remoteSourceControl", - "location" : "https://github.com/SFSafeSymbols/SFSafeSymbols.git", - "state" : { - "branch" : "stable", - "revision" : "846e558cda47e1a2d2cea988a9c18378f830bddf" - } - }, - { - "identity" : "swift-case-paths", - "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/swift-case-paths", - "state" : { - "revision" : "241301b67d8551c26d8f09bd2c0e52cc49f18007", - "version" : "0.8.0" - } - }, - { - "identity" : "swift-collections", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-collections", - "state" : { - "revision" : "48254824bb4248676bf7ce56014ff57b142b77eb", - "version" : "1.0.2" - } - }, - { - "identity" : "swift-composable-architecture", - "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/swift-composable-architecture.git", - "state" : { - "revision" : "ba9c626ab1b2b6af8cf684eebb2ab472fa5b6753", - "version" : "0.33.1" - } - }, - { - "identity" : "swift-custom-dump", - "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/swift-custom-dump", - "state" : { - "revision" : "51698ece74ecf31959d3fa81733f0a5363ef1b4e", - "version" : "0.3.0" - } - }, - { - "identity" : "swift-identified-collections", - "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/swift-identified-collections", - "state" : { - "revision" : "680bf440178a78a627b1c2c64c0855f6523ad5b9", - "version" : "0.3.2" - } - }, - { - "identity" : "swiftcommonmark", - "kind" : "remoteSourceControl", - "location" : "https://github.com/gonzalezreal/SwiftCommonMark.git", - "state" : { - "revision" : "ed252beaddecce28ea6363f800c773d6169011b8", - "version" : "1.0.0" - } - }, - { - "identity" : "swiftui-navigation", - "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/swiftui-navigation.git", - "state" : { - "revision" : "2694c03284a368168b3e0b8d7ab52626802d2246", - "version" : "0.1.0" - } - }, - { - "identity" : "swiftuipager", - "kind" : "remoteSourceControl", - "location" : "https://github.com/fermoya/SwiftUIPager.git", - "state" : { - "revision" : "3c0485ffc369f2138477ec508cafc5fffd39f2bf", - "version" : "2.3.2" - } - }, - { - "identity" : "swiftybeaver", - "kind" : "remoteSourceControl", - "location" : "https://github.com/tatsuz0u/SwiftyBeaver.git", - "state" : { - "branch" : "custom", - "revision" : "2e8a65567ca877a7fdf6a63ab53b2c49a927af87" - } - }, - { - "identity" : "swiftyopencc", - "kind" : "remoteSourceControl", - "location" : "https://github.com/ddddxxx/SwiftyOpenCC.git", - "state" : { - "revision" : "1d8105a0f7199c90af722bff62728050c858e777", - "version" : "2.0.0-beta" - } - }, - { - "identity" : "ttprogresshud", - "kind" : "remoteSourceControl", - "location" : "https://github.com/tatsuz0u/TTProgressHUD.git", - "state" : { - "branch" : "custom", - "revision" : "349b595c4f0ff86e8d3c8d65be206a02642fd525" - } - }, - { - "identity" : "uiimagecolors", - "kind" : "remoteSourceControl", - "location" : "https://github.com/jathu/UIImageColors.git", - "state" : { - "revision" : "e49e6c32ea556e9fa0109dc79686bea4a10d41a2", - "version" : "2.2.0" - } - }, - { - "identity" : "waterfallgrid", - "kind" : "remoteSourceControl", - "location" : "https://github.com/paololeonardi/WaterfallGrid.git", - "state" : { - "revision" : "944aa82832ed5a9eaaf50862cdd53e3c10ab55eb", - "version" : "1.0.1" - } - }, - { - "identity" : "xctest-dynamic-overlay", - "kind" : "remoteSourceControl", - "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay", - "state" : { - "revision" : "50a70a9d3583fe228ce672e8923010c8df2deddd", - "version" : "0.2.1" - } - } - ], - "version" : 2 + "object": { + "pins": [ + { + "package": "AlertKit", + "repositoryURL": "https://github.com/tatsuz0u/AlertKit.git", + "state": { + "branch": "custom", + "revision": "39b01c53ffadf3dab9871dd4c960cd81af5246b6", + "version": null + } + }, + { + "package": "Colorful", + "repositoryURL": "https://github.com/Co2333/Colorful.git", + "state": { + "branch": null, + "revision": "0bcf960c856d9f7cde10a0b464208585736c5e47", + "version": "1.1.0" + } + }, + { + "package": "combine-schedulers", + "repositoryURL": "https://github.com/pointfreeco/combine-schedulers", + "state": { + "branch": null, + "revision": "4cf088c29a20f52be0f2ca54992b492c54e0076b", + "version": "0.5.3" + } + }, + { + "package": "DeprecatedAPI", + "repositoryURL": "https://github.com/tatsuz0u/DeprecatedAPI.git", + "state": { + "branch": "main", + "revision": "021e29675457a9b4b7859a46afbb5d0e37574e84", + "version": null + } + }, + { + "package": "FilePicker", + "repositoryURL": "https://github.com/markrenaud/FilePicker.git", + "state": { + "branch": null, + "revision": "720f8cb5ca0c0efc982ed381afc84ba3e8b3214e", + "version": "1.0.1" + } + }, + { + "package": "Kanna", + "repositoryURL": "https://github.com/tid-kijyun/Kanna.git", + "state": { + "branch": null, + "revision": "f9e4922223dd0d3dfbf02ca70812cf5531fc0593", + "version": "5.2.7" + } + }, + { + "package": "Kingfisher", + "repositoryURL": "https://github.com/onevcat/Kingfisher.git", + "state": { + "branch": null, + "revision": "32e4acdf6971f58f5ad552389cf2d7d016334eaf", + "version": "7.2.0" + } + }, + { + "package": "R.swift.Library", + "repositoryURL": "https://github.com/mac-cain13/R.swift.Library.git", + "state": { + "branch": null, + "revision": "8998cfe77f4fce79ee6dfab0c88a7d551659d8fb", + "version": "5.4.0" + } + }, + { + "package": "SFSafeSymbols", + "repositoryURL": "https://github.com/SFSafeSymbols/SFSafeSymbols.git", + "state": { + "branch": "stable", + "revision": "7bb874408110c6aa80056f81177ee732071195f8", + "version": null + } + }, + { + "package": "swift-case-paths", + "repositoryURL": "https://github.com/pointfreeco/swift-case-paths", + "state": { + "branch": null, + "revision": "241301b67d8551c26d8f09bd2c0e52cc49f18007", + "version": "0.8.0" + } + }, + { + "package": "swift-collections", + "repositoryURL": "https://github.com/apple/swift-collections", + "state": { + "branch": null, + "revision": "48254824bb4248676bf7ce56014ff57b142b77eb", + "version": "1.0.2" + } + }, + { + "package": "swift-composable-architecture", + "repositoryURL": "https://github.com/pointfreeco/swift-composable-architecture.git", + "state": { + "branch": null, + "revision": "2828dc44f6e3f81d84bcaba72c1ab1c0121d66f6", + "version": "0.34.0" + } + }, + { + "package": "swift-custom-dump", + "repositoryURL": "https://github.com/pointfreeco/swift-custom-dump", + "state": { + "branch": null, + "revision": "51698ece74ecf31959d3fa81733f0a5363ef1b4e", + "version": "0.3.0" + } + }, + { + "package": "swift-identified-collections", + "repositoryURL": "https://github.com/pointfreeco/swift-identified-collections", + "state": { + "branch": null, + "revision": "680bf440178a78a627b1c2c64c0855f6523ad5b9", + "version": "0.3.2" + } + }, + { + "package": "SwiftCommonMark", + "repositoryURL": "https://github.com/gonzalezreal/SwiftCommonMark.git", + "state": { + "branch": null, + "revision": "ed252beaddecce28ea6363f800c773d6169011b8", + "version": "1.0.0" + } + }, + { + "package": "swiftui-navigation", + "repositoryURL": "https://github.com/pointfreeco/swiftui-navigation.git", + "state": { + "branch": null, + "revision": "2694c03284a368168b3e0b8d7ab52626802d2246", + "version": "0.1.0" + } + }, + { + "package": "SwiftUIPager", + "repositoryURL": "https://github.com/fermoya/SwiftUIPager.git", + "state": { + "branch": null, + "revision": "3c0485ffc369f2138477ec508cafc5fffd39f2bf", + "version": "2.3.2" + } + }, + { + "package": "SwiftyBeaver", + "repositoryURL": "https://github.com/tatsuz0u/SwiftyBeaver.git", + "state": { + "branch": "custom", + "revision": "2e8a65567ca877a7fdf6a63ab53b2c49a927af87", + "version": null + } + }, + { + "package": "SwiftyOpenCC", + "repositoryURL": "https://github.com/ddddxxx/SwiftyOpenCC.git", + "state": { + "branch": null, + "revision": "1d8105a0f7199c90af722bff62728050c858e777", + "version": "2.0.0-beta" + } + }, + { + "package": "TTProgressHUD", + "repositoryURL": "https://github.com/tatsuz0u/TTProgressHUD.git", + "state": { + "branch": "custom", + "revision": "349b595c4f0ff86e8d3c8d65be206a02642fd525", + "version": null + } + }, + { + "package": "UIImageColors", + "repositoryURL": "https://github.com/jathu/UIImageColors.git", + "state": { + "branch": null, + "revision": "e49e6c32ea556e9fa0109dc79686bea4a10d41a2", + "version": "2.2.0" + } + }, + { + "package": "WaterfallGrid", + "repositoryURL": "https://github.com/paololeonardi/WaterfallGrid.git", + "state": { + "branch": null, + "revision": "944aa82832ed5a9eaaf50862cdd53e3c10ab55eb", + "version": "1.0.1" + } + }, + { + "package": "xctest-dynamic-overlay", + "repositoryURL": "https://github.com/pointfreeco/xctest-dynamic-overlay", + "state": { + "branch": null, + "revision": "50a70a9d3583fe228ce672e8923010c8df2deddd", + "version": "0.2.1" + } + } + ] + }, + "version": 1 } From a9dd431f70a2bfbeed3e26c5fe3b522d0066b9c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Wed, 30 Mar 2022 09:05:49 +0900 Subject: [PATCH 18/22] fix: `testClearWebImageCache` --- EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift | 4 ++-- .../Tests/Store/Setting/GeneralSettingStoreTests.swift | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift b/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift index fa136172..25855c5a 100644 --- a/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift +++ b/EhPanda/View/Setting/DataFlow/GeneralSettingStore.swift @@ -94,8 +94,8 @@ let generalSettingReducer = Reducer Date: Wed, 30 Mar 2022 09:19:24 +0900 Subject: [PATCH 19/22] fix: Wait a bit longer in `testClearWebImageCache` --- EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift b/EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift index c33f3563..08d5281a 100644 --- a/EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift +++ b/EhPandaTests/Tests/Store/Setting/GeneralSettingStoreTests.swift @@ -100,7 +100,7 @@ class GeneralSettingStoreTests: XCTestCase { ) ) store.send(.clearWebImageCache) - XCTWaiter.wait(timeout: 1) + XCTWaiter.wait(timeout: 5) store.receive(.calculateWebImageDiskCache) store.receive(.calculateWebImageDiskCacheDone(0)) { let formatter = ByteCountFormatter() From 3ff533a99e0ba9da510d8c0c430c6830abf6abba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Sat, 2 Apr 2022 16:20:17 +0900 Subject: [PATCH 20/22] fix: Wrong number format in `NewDawnView` --- EhPanda/Models/Persistent/Greeting.swift | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/EhPanda/Models/Persistent/Greeting.swift b/EhPanda/Models/Persistent/Greeting.swift index d73bd644..cdc5439d 100644 --- a/EhPanda/Models/Persistent/Greeting.swift +++ b/EhPanda/Models/Persistent/Greeting.swift @@ -24,17 +24,24 @@ struct Greeting: Codable, Equatable, Hashable { var updateTime: Date? var rewards: [String] { + func formatNumber(_ number: Int?) -> String? { + guard let number = number else { return nil } + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + return formatter.string(from: .init(value: number)) + } + var rewards = [String]() - if let exp = gainedEXP { + if let exp = formatNumber(gainedEXP) { rewards.append("\(exp) EXP") } - if let credits = gainedCredits { + if let credits = formatNumber(gainedCredits) { rewards.append("\(credits) Credits") } - if let galleryPoint = gainedGP { + if let galleryPoint = formatNumber(gainedGP) { rewards.append("\(galleryPoint) GP") } - if let hath = gainedHath { + if let hath = formatNumber(gainedHath) { rewards.append("\(hath) Hath") } return rewards From 99dec1aa55a3caccdf4b1e11b6bb3f9bfb556456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=9F=E3=81=A4=E3=81=9D=E3=82=99=E3=81=86?= Date: Thu, 7 Apr 2022 20:24:16 +0900 Subject: [PATCH 21/22] fix: Reading page resources not released --- EhPanda/View/Detail/DataFlow/PreviewsStore.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/EhPanda/View/Detail/DataFlow/PreviewsStore.swift b/EhPanda/View/Detail/DataFlow/PreviewsStore.swift index c08f4b4d..41f41ade 100644 --- a/EhPanda/View/Detail/DataFlow/PreviewsStore.swift +++ b/EhPanda/View/Detail/DataFlow/PreviewsStore.swift @@ -75,6 +75,7 @@ let previewsReducer = Reducer Date: Sat, 9 Apr 2022 21:14:49 +0900 Subject: [PATCH 22/22] feat: New app icon `Stand With Ukraine (2022)` --- .github/workflows/deploy.yml | 2 +- EhPanda.xcodeproj/project.pbxproj | 20 ++++++++++++++++++ EhPanda/App/Icons/AppIcon_Developer@2x.png | Bin 16992 -> 16260 bytes EhPanda/App/Icons/AppIcon_Developer@3x.png | Bin 27007 -> 25951 bytes EhPanda/App/Icons/AppIcon_Developer_iPad.png | Bin 9746 -> 9469 bytes .../App/Icons/AppIcon_Developer_iPad@2x.png | Bin 22492 -> 21659 bytes .../Icons/AppIcon_Developer_iPad_Pro@2x.png | Bin 24970 -> 23770 bytes .../Icons/AppIcon_StandWithUkraine2022@2x.png | Bin 0 -> 13115 bytes .../Icons/AppIcon_StandWithUkraine2022@3x.png | Bin 0 -> 23022 bytes .../AppIcon_StandWithUkraine2022_iPad.png | Bin 0 -> 7485 bytes .../AppIcon_StandWithUkraine2022_iPad@2x.png | Bin 0 -> 18152 bytes ...pIcon_StandWithUkraine2022_iPad_Pro@2x.png | Bin 0 -> 20715 bytes EhPanda/App/Info.plist | 15 +++++++++++++ EhPanda/App/de.lproj/Localizable.strings | 1 + EhPanda/App/en.lproj/Localizable.strings | 1 + EhPanda/App/ja.lproj/Localizable.strings | 1 + EhPanda/App/ko.lproj/Localizable.strings | 1 + EhPanda/App/zh-Hans.lproj/Localizable.strings | 1 + EhPanda/App/zh-Hant.lproj/Localizable.strings | 1 + .../View/Setting/AppearanceSettingView.swift | 5 +++++ 20 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 EhPanda/App/Icons/AppIcon_StandWithUkraine2022@2x.png create mode 100644 EhPanda/App/Icons/AppIcon_StandWithUkraine2022@3x.png create mode 100644 EhPanda/App/Icons/AppIcon_StandWithUkraine2022_iPad.png create mode 100644 EhPanda/App/Icons/AppIcon_StandWithUkraine2022_iPad@2x.png create mode 100644 EhPanda/App/Icons/AppIcon_StandWithUkraine2022_iPad_Pro@2x.png diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 4c694c82..5cad4ebc 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,7 +6,7 @@ on: types: [closed] env: DEVELOPER_DIR: /Applications/Xcode_13.2.1.app - APP_VERSION: '2.3.1' + APP_VERSION: '2.4.0' SCHEME_NAME: 'EhPanda' ALTSTORE_JSON_PATH: './AltStore.json' BUILDS_PATH: '/tmp/action-builds' diff --git a/EhPanda.xcodeproj/project.pbxproj b/EhPanda.xcodeproj/project.pbxproj index 38441e04..e509d3ce 100644 --- a/EhPanda.xcodeproj/project.pbxproj +++ b/EhPanda.xcodeproj/project.pbxproj @@ -241,6 +241,11 @@ ABD9771027B65E3400983DE7 /* GalleryDetailParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABD9770F27B65E3400983DE7 /* GalleryDetailParserTests.swift */; }; ABD9771327B6612400983DE7 /* GreetingParserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABD9771227B6612400983DE7 /* GreetingParserTests.swift */; }; ABE1867826A1733000689FDC /* LaboratorySettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABE1867726A1733000689FDC /* LaboratorySettingView.swift */; }; + ABE9012227F722D100F3651D /* AppIcon_StandWithUkraine2022@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABE9011D27F722D000F3651D /* AppIcon_StandWithUkraine2022@2x.png */; }; + ABE9012327F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad.png in Resources */ = {isa = PBXBuildFile; fileRef = ABE9011E27F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad.png */; }; + ABE9012427F722D100F3651D /* AppIcon_StandWithUkraine2022@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABE9011F27F722D100F3651D /* AppIcon_StandWithUkraine2022@3x.png */; }; + ABE9012527F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad_Pro@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABE9012027F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad_Pro@2x.png */; }; + ABE9012627F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = ABE9012127F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad@2x.png */; }; ABE9401526FF158D0085E158 /* QuickSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABE9401426FF158D0085E158 /* QuickSearchView.swift */; }; ABE9402D26FF89220085E158 /* AlertKit in Frameworks */ = {isa = PBXBuildFile; productRef = ABE9402C26FF89220085E158 /* AlertKit */; }; ABEA1FE625A9B40B002966B9 /* Setting.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABEA1FE525A9B40B002966B9 /* Setting.swift */; }; @@ -533,6 +538,11 @@ ABD9770F27B65E3400983DE7 /* GalleryDetailParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalleryDetailParserTests.swift; sourceTree = ""; }; ABD9771227B6612400983DE7 /* GreetingParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GreetingParserTests.swift; sourceTree = ""; }; ABE1867726A1733000689FDC /* LaboratorySettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaboratorySettingView.swift; sourceTree = ""; }; + ABE9011D27F722D000F3651D /* AppIcon_StandWithUkraine2022@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIcon_StandWithUkraine2022@2x.png"; sourceTree = ""; }; + ABE9011E27F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = AppIcon_StandWithUkraine2022_iPad.png; sourceTree = ""; }; + ABE9011F27F722D100F3651D /* AppIcon_StandWithUkraine2022@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIcon_StandWithUkraine2022@3x.png"; sourceTree = ""; }; + ABE9012027F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad_Pro@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIcon_StandWithUkraine2022_iPad_Pro@2x.png"; sourceTree = ""; }; + ABE9012127F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIcon_StandWithUkraine2022_iPad@2x.png"; sourceTree = ""; }; ABE9376C265DCD9400EA8B30 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; ABE9376D265DCD9400EA8B30 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = ""; }; ABE9401426FF158D0085E158 /* QuickSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickSearchView.swift; sourceTree = ""; }; @@ -874,6 +884,11 @@ AB0CFB8527BBD2D7004BD372 /* AppIcon_Developer_iPad.png */, AB0CFB8327BBD2D7004BD372 /* AppIcon_Developer_iPad@2x.png */, AB0CFB8427BBD2D7004BD372 /* AppIcon_Developer@2x.png */, + ABE9012027F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad_Pro@2x.png */, + ABE9011E27F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad.png */, + ABE9012127F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad@2x.png */, + ABE9011D27F722D000F3651D /* AppIcon_StandWithUkraine2022@2x.png */, + ABE9011F27F722D100F3651D /* AppIcon_StandWithUkraine2022@3x.png */, AB0CFB8727BBD2D7004BD372 /* AppIcon_Developer@3x.png */, AB0CFB8F27BBD323004BD372 /* AppIcon_Ukiyoe_iPad_Pro@2x.png */, AB0CFB9027BBD323004BD372 /* AppIcon_Ukiyoe_iPad.png */, @@ -1503,7 +1518,9 @@ ABC3C7852593699B00E0C11B /* Assets.xcassets in Resources */, AB0CFB7B27BAB9D0004BD372 /* AppIcon_Default_iPad.png in Resources */, AB0CFB9527BBD323004BD372 /* AppIcon_Ukiyoe_iPad.png in Resources */, + ABE9012427F722D100F3651D /* AppIcon_StandWithUkraine2022@3x.png in Resources */, AB0CFB8827BBD2D7004BD372 /* AppIcon_Developer_iPad@2x.png in Resources */, + ABE9012227F722D100F3651D /* AppIcon_StandWithUkraine2022@2x.png in Resources */, AB0CFB7427BAB9D0004BD372 /* AppIcon_Default@3x.png in Resources */, AB7E6B3025D24FE00035CC68 /* InfoPlist.strings in Resources */, AB0CFB9327BBD323004BD372 /* AppIcon_Ukiyoe@3x.png in Resources */, @@ -1511,9 +1528,12 @@ ABEE0AFA2595C6F800C997AE /* Localizable.strings in Resources */, ABD5FDD4263D05110021A4C6 /* .swiftlint.yml in Resources */, AB26F59B27AD125A00AB3468 /* Constant.strings in Resources */, + ABE9012527F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad_Pro@2x.png in Resources */, + ABE9012327F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad.png in Resources */, AB0CFB7827BAB9D0004BD372 /* AppIcon_Default_iPad_Pro@2x.png in Resources */, AB0CFB8B27BBD2D7004BD372 /* AppIcon_Developer_iPad_Pro@2x.png in Resources */, AB0CFB8A27BBD2D7004BD372 /* AppIcon_Developer_iPad.png in Resources */, + ABE9012627F722D100F3651D /* AppIcon_StandWithUkraine2022_iPad@2x.png in Resources */, AB0CFB9427BBD323004BD372 /* AppIcon_Ukiyoe_iPad_Pro@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/EhPanda/App/Icons/AppIcon_Developer@2x.png b/EhPanda/App/Icons/AppIcon_Developer@2x.png index 1b6b5bae5f1039768ce14dae00f52fbe95bb8a78..9b1abb79a2d5b18a38acae0c13d07ef6b534e799 100644 GIT binary patch delta 15234 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 IM6N<$f~O2dF8}}l delta 15972 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

MRZhJ^lZ1f)uZc7{87 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 V=JX_SPY3`2002ovPDHLkV1h*R{lowO diff --git a/EhPanda/App/Icons/AppIcon_Developer_iPad.png b/EhPanda/App/Icons/AppIcon_Developer_iPad.png index 1daf0c5fcbd0352408e012cb201d7c47af23bdc4..75a11e4f711c1ef504fddeca6d33ef330aa7a12b 100644 GIT binary patch delta 8389 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

9cSxe_q&=N97#)JO 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 delta 24003 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%0At= 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

#R2)DpR!vZs+7mah!wLdk9A#&=q?eNydx9m_; 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 Hu0mjffAed< literal 0 HcmV?d00001 diff --git a/EhPanda/App/Icons/AppIcon_StandWithUkraine2022_iPad@2x.png b/EhPanda/App/Icons/AppIcon_StandWithUkraine2022_iPad@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..737f1a5cbaa62aa25449624fc63f322b68378c3e GIT binary patch literal 18152 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 literal 0 HcmV?d00001 diff --git a/EhPanda/App/Info.plist b/EhPanda/App/Info.plist index 29f7c211..1da40519 100644 --- a/EhPanda/App/Info.plist +++ b/EhPanda/App/Info.plist @@ -33,6 +33,13 @@ AppIcon_Developer + AppIcon_StandWithUkraine2022 + + CFBundleIconFiles + + AppIcon_StandWithUkraine2022 + + CFBundlePrimaryIcon @@ -70,6 +77,14 @@ AppIcon_Developer_iPad_Pro + AppIcon_StandWithUkraine2022 + + CFBundleIconFiles + + AppIcon_StandWithUkraine2022_iPad + AppIcon_StandWithUkraine2022_iPad_Pro + + CFBundlePrimaryIcon diff --git a/EhPanda/App/de.lproj/Localizable.strings b/EhPanda/App/de.lproj/Localizable.strings index 7ae07f49..4a054f0d 100644 --- a/EhPanda/App/de.lproj/Localizable.strings +++ b/EhPanda/App/de.lproj/Localizable.strings @@ -227,6 +227,7 @@ "enum.app.icon.type.value.default" = "Standard"; "enum.app.icon.type.value.ukiyoe" = "Ukiyo-e"; "enum.app.icon.type.value.developer" = "Developer"; +"enum.app.icon.type.value.standWithUkraine2022" = "Stand With Ukraine (2022)"; // ListDisplayMode "enum.display.mode.value.detail" = "Detail"; "enum.display.mode.value.thumbnail" = "Thumbnail"; diff --git a/EhPanda/App/en.lproj/Localizable.strings b/EhPanda/App/en.lproj/Localizable.strings index 6c6f3fe1..c014b8d8 100644 --- a/EhPanda/App/en.lproj/Localizable.strings +++ b/EhPanda/App/en.lproj/Localizable.strings @@ -227,6 +227,7 @@ "enum.app.icon.type.value.default" = "Default"; "enum.app.icon.type.value.ukiyoe" = "Ukiyo-e"; "enum.app.icon.type.value.developer" = "Developer"; +"enum.app.icon.type.value.standWithUkraine2022" = "Stand With Ukraine (2022)"; // ListDisplayMode "enum.display.mode.value.detail" = "Detail"; "enum.display.mode.value.thumbnail" = "Thumbnail"; diff --git a/EhPanda/App/ja.lproj/Localizable.strings b/EhPanda/App/ja.lproj/Localizable.strings index a1cd8244..340f662c 100644 --- a/EhPanda/App/ja.lproj/Localizable.strings +++ b/EhPanda/App/ja.lproj/Localizable.strings @@ -227,6 +227,7 @@ "enum.app.icon.type.value.default" = "デフォルト"; "enum.app.icon.type.value.ukiyoe" = "浮世絵"; "enum.app.icon.type.value.developer" = "デベロッパー"; +"enum.app.icon.type.value.standWithUkraine2022" = "ウクライナと共に (2022)"; // ListDisplayMode "enum.display.mode.value.detail" = "デフォルト"; "enum.display.mode.value.thumbnail" = "サムネイル"; diff --git a/EhPanda/App/ko.lproj/Localizable.strings b/EhPanda/App/ko.lproj/Localizable.strings index b75d432c..f2f528bb 100644 --- a/EhPanda/App/ko.lproj/Localizable.strings +++ b/EhPanda/App/ko.lproj/Localizable.strings @@ -227,6 +227,7 @@ "enum.app.icon.type.value.default" = "기본"; "enum.app.icon.type.value.ukiyoe" = "Ukiyo-e"; "enum.app.icon.type.value.developer" = "Developer"; +"enum.app.icon.type.value.standWithUkraine2022" = "Stand With Ukraine (2022)"; // ListDisplayMode "enum.display.mode.value.detail" = "자세히"; "enum.display.mode.value.thumbnail" = "썸네일"; diff --git a/EhPanda/App/zh-Hans.lproj/Localizable.strings b/EhPanda/App/zh-Hans.lproj/Localizable.strings index 8c47f9fa..832eba35 100644 --- a/EhPanda/App/zh-Hans.lproj/Localizable.strings +++ b/EhPanda/App/zh-Hans.lproj/Localizable.strings @@ -227,6 +227,7 @@ "enum.app.icon.type.value.default" = "默认"; "enum.app.icon.type.value.ukiyoe" = "浮世绘"; "enum.app.icon.type.value.developer" = "开发者"; +"enum.app.icon.type.value.standWithUkraine2022" = "与乌克兰同在 (2022)"; // ListDisplayMode "enum.display.mode.value.detail" = "详情"; "enum.display.mode.value.thumbnail" = "缩略图"; diff --git a/EhPanda/App/zh-Hant.lproj/Localizable.strings b/EhPanda/App/zh-Hant.lproj/Localizable.strings index b8952efb..27c711c3 100644 --- a/EhPanda/App/zh-Hant.lproj/Localizable.strings +++ b/EhPanda/App/zh-Hant.lproj/Localizable.strings @@ -227,6 +227,7 @@ "enum.app.icon.type.value.default" = "預設"; "enum.app.icon.type.value.ukiyoe" = "Ukiyo-e"; "enum.app.icon.type.value.developer" = "Developer"; +"enum.app.icon.type.value.standWithUkraine2022" = "Stand With Ukraine (2022)"; // ListDisplayMode "enum.display.mode.value.detail" = "詳情"; "enum.display.mode.value.thumbnail" = "縮略圖"; diff --git a/EhPanda/View/Setting/AppearanceSettingView.swift b/EhPanda/View/Setting/AppearanceSettingView.swift index dacc20c0..e2aeddac 100644 --- a/EhPanda/View/Setting/AppearanceSettingView.swift +++ b/EhPanda/View/Setting/AppearanceSettingView.swift @@ -169,6 +169,7 @@ enum AppIconType: Int, Codable, Identifiable, CaseIterable { case `default` case ukiyoe case developer + case standWithUkraine2022 } extension AppIconType { @@ -180,6 +181,8 @@ extension AppIconType { return R.string.localizable.enumAppIconTypeValueUkiyoe() case .developer: return R.string.localizable.enumAppIconTypeValueDeveloper() + case .standWithUkraine2022: + return R.string.localizable.enumAppIconTypeValueStandWithUkraine2022() } } var filename: String { @@ -190,6 +193,8 @@ extension AppIconType { return "AppIcon_Ukiyoe" case .developer: return "AppIcon_Developer" + case .standWithUkraine2022: + return "AppIcon_StandWithUkraine2022" } } }