From 68e87a978f4aae2a20c47220b86e276c65662f7a Mon Sep 17 00:00:00 2001 From: HeonJin Ha Date: Mon, 23 Oct 2023 23:08:47 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B0=81=EC=A2=85=20=EB=B2=84=EA=B7=B8?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- koget.xcodeproj/project.pbxproj | 8 ++++-- koget/Guide/GuideView.swift | 41 +++--------------------------- koget/Guide/GuideViewModel.swift | 43 ++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 40 deletions(-) create mode 100644 koget/Guide/GuideViewModel.swift diff --git a/koget.xcodeproj/project.pbxproj b/koget.xcodeproj/project.pbxproj index d6a12ee..6a7c8c3 100644 --- a/koget.xcodeproj/project.pbxproj +++ b/koget.xcodeproj/project.pbxproj @@ -46,6 +46,7 @@ 3927B5022AE68E9200F03F5D /* guide1.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 3927B5012AE68E9200F03F5D /* guide1.mp4 */; }; 3927B5092AE697B900F03F5D /* guide2.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 3927B5082AE697B900F03F5D /* guide2.mp4 */; }; 3927B50B2AE6981400F03F5D /* guide3.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 3927B50A2AE6981000F03F5D /* guide3.mp4 */; }; + 3927B50D2AE6B5AB00F03F5D /* GuideViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3927B50C2AE6B5AB00F03F5D /* GuideViewModel.swift */; }; 392C7FC62A2AB71000C516DD /* PatchNote.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392C7FC52A2AB71000C516DD /* PatchNote.swift */; }; 392C7FC92A2ABE5A00C516DD /* IconGridView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392C7FC82A2ABE5A00C516DD /* IconGridView.swift */; }; 392C81CF2A2AFCEB00C516DD /* IconGridViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392C81CE2A2AFCEB00C516DD /* IconGridViewModel.swift */; }; @@ -292,6 +293,7 @@ 3927B5012AE68E9200F03F5D /* guide1.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = guide1.mp4; sourceTree = ""; }; 3927B5082AE697B900F03F5D /* guide2.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = guide2.mp4; sourceTree = ""; }; 3927B50A2AE6981000F03F5D /* guide3.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = guide3.mp4; sourceTree = ""; }; + 3927B50C2AE6B5AB00F03F5D /* GuideViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GuideViewModel.swift; sourceTree = ""; }; 392C7FC52A2AB71000C516DD /* PatchNote.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PatchNote.swift; sourceTree = ""; }; 392C7FC82A2ABE5A00C516DD /* IconGridView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconGridView.swift; sourceTree = ""; }; 392C81CE2A2AFCEB00C516DD /* IconGridViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconGridViewModel.swift; sourceTree = ""; }; @@ -543,6 +545,7 @@ children = ( 3927B4FE2AE68CBF00F03F5D /* GuideView.swift */, 3927B5032AE68F0200F03F5D /* GuideAssets */, + 3927B50C2AE6B5AB00F03F5D /* GuideViewModel.swift */, ); path = Guide; sourceTree = ""; @@ -1424,6 +1427,7 @@ 39ADB27B2A4AA49500AED318 /* SlideableCellType.swift in Sources */, 3A00CA692931F3F1004FBF80 /* StorageProvider.swift in Sources */, 39691F4829ACE9D8002BD874 /* OpacityPickerContainer.swift in Sources */, + 3927B50D2AE6B5AB00F03F5D /* GuideViewModel.swift in Sources */, 3984A8402A66B75900A75910 /* DebugSheetPresenter.swift in Sources */, 39D8B28F2A35BED10034514B /* Array+Extension.swift in Sources */, 39D441B42A5C3D3F00C9D11D /* CreateWidgetAssetCell.swift in Sources */, @@ -1775,7 +1779,7 @@ CODE_SIGN_ENTITLEMENTS = koget/koget.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 129.1; + CURRENT_PROJECT_VERSION = 129.2; DEVELOPMENT_TEAM = ZH5GA3W8UP; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = koget/Info.plist; @@ -1816,7 +1820,7 @@ CODE_SIGN_ENTITLEMENTS = koget/koget.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 129.1; + CURRENT_PROJECT_VERSION = 129.2; DEVELOPMENT_TEAM = ZH5GA3W8UP; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = koget/Info.plist; diff --git a/koget/Guide/GuideView.swift b/koget/Guide/GuideView.swift index f130c7f..b0722a6 100644 --- a/koget/Guide/GuideView.swift +++ b/koget/Guide/GuideView.swift @@ -6,47 +6,11 @@ // import SwiftUI -import AVKit import Combine - -final class GuideViewModel: ObservableObject { - - - let video: (player: AVPlayer, looper: AVPlayerLooper) = { - let videoURL = Bundle.main.url(forResource: "guide1", withExtension: "mp4")! - let asset = AVAsset(url: videoURL) - let item = AVPlayerItem(asset: asset) - let queuePlayer = AVQueuePlayer(playerItem: item) - let playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: item) - - return (queuePlayer, playerLooper) - }() - - let video2: (player: AVPlayer, looper: AVPlayerLooper) = { - let videoURL = Bundle.main.url(forResource: "guide2", withExtension: "mp4")! - let asset = AVAsset(url: videoURL) - let item = AVPlayerItem(asset: asset) - let queuePlayer = AVQueuePlayer(playerItem: item) - let playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: item) - - return (queuePlayer, playerLooper) - }() - - let video3: (player: AVPlayer, looper: AVPlayerLooper) = { - let videoURL = Bundle.main.url(forResource: "guide3", withExtension: "mp4")! - let asset = AVAsset(url: videoURL) - let item = AVPlayerItem(asset: asset) - let queuePlayer = AVQueuePlayer(playerItem: item) - let playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: item) - - return (queuePlayer, playerLooper) - }() - -} +import AVKit struct GuideView: View { - @ObservedObject var viewModel: GuideViewModel @Environment(\.dismiss) var dismiss @@ -68,7 +32,7 @@ struct GuideView: View { .padding(.top, 12) Text("잠금화면 위젯 추가 가이드") - .foregroundStyle(Color.init(uiColor: .darkGray)) + .foregroundStyle(Color.init(uiColor: .label)) .font(.custom(.robotoBold, size: 20)) .padding(.top, 12) @@ -97,6 +61,7 @@ struct GuideView: View { ZStack { RoundedRectangle(cornerRadius: 40) + .fill(Color.init(uiColor: .black)) VideoPlayer(player: video.player) .disabled(true) diff --git a/koget/Guide/GuideViewModel.swift b/koget/Guide/GuideViewModel.swift new file mode 100644 index 0000000..3e24b86 --- /dev/null +++ b/koget/Guide/GuideViewModel.swift @@ -0,0 +1,43 @@ +// +// GuideViewModel.swift +// koget +// +// Created by HeonJin Ha on 10/23/23. +// + +import Foundation +import AVKit + +final class GuideViewModel: ObservableObject { + + let video: (player: AVPlayer, looper: AVPlayerLooper) = { + let videoURL = Bundle.main.url(forResource: "guide1", withExtension: "mp4")! + let asset = AVAsset(url: videoURL) + let item = AVPlayerItem(asset: asset) + let queuePlayer = AVQueuePlayer(playerItem: item) + let playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: item) + + return (queuePlayer, playerLooper) + }() + + let video2: (player: AVPlayer, looper: AVPlayerLooper) = { + let videoURL = Bundle.main.url(forResource: "guide2", withExtension: "mp4")! + let asset = AVAsset(url: videoURL) + let item = AVPlayerItem(asset: asset) + let queuePlayer = AVQueuePlayer(playerItem: item) + let playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: item) + + return (queuePlayer, playerLooper) + }() + + let video3: (player: AVPlayer, looper: AVPlayerLooper) = { + let videoURL = Bundle.main.url(forResource: "guide3", withExtension: "mp4")! + let asset = AVAsset(url: videoURL) + let item = AVPlayerItem(asset: asset) + let queuePlayer = AVQueuePlayer(playerItem: item) + let playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: item) + + return (queuePlayer, playerLooper) + }() + +}