From 3c908bcb357d0b7926f54552726684d549a2ade1 Mon Sep 17 00:00:00 2001 From: Azuma Kasumi Date: Thu, 2 Feb 2023 11:15:24 +0900 Subject: [PATCH] =?UTF-8?q?=E8=A4=87=E6=95=B0=E3=82=A6=E3=82=A3=E3=82=B8?= =?UTF-8?q?=E3=82=A7=E3=83=83=E3=83=88=E3=81=AE=E3=83=88=E3=83=BC=E3=82=AF?= =?UTF-8?q?=E3=83=B3=E6=9B=B4=E6=96=B0=E9=87=8D=E8=A4=87=E9=98=B2=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Main/View/MainTabBarViewController.swift | 2 ++ .../Common/DataStore/UserDefaultsDataStore.swift | 14 ++++++++++++++ AgileWorks/WidgetExtension/WidgetExtension.swift | 7 ++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift b/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift index e4df9c0..a9a9227 100644 --- a/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift +++ b/AgileWorks/AgileWorks/Main/View/MainTabBarViewController.swift @@ -53,6 +53,8 @@ class MainTabBarViewController: UITabBarController { @objc func movedToBackground() { + //ウィジェット更新フラグのクリア + UserDefaultsDataStore().writeUpdateWidgetFlg(update: false) // 承認待ち件数の取得 getApprovals { result in var reqApprovalCount = 0 diff --git a/AgileWorks/Common/DataStore/UserDefaultsDataStore.swift b/AgileWorks/Common/DataStore/UserDefaultsDataStore.swift index bc9c72b..1e39b58 100644 --- a/AgileWorks/Common/DataStore/UserDefaultsDataStore.swift +++ b/AgileWorks/Common/DataStore/UserDefaultsDataStore.swift @@ -16,6 +16,7 @@ final class UserDefaultsDataStore: DataStoreProtocol { private let sharedDefaults: UserDefaults private let kFirebaseRemovalKey: String = "FirebaseRemoval" private let kLastAcceptedLicenseVersionKey: String = "LastAppceptedLicenseVersion" + private let kUpdateWidgetFlgKey : String = "UpdateWidgetFlg" init() { sharedDefaults = UserDefaults() @@ -40,4 +41,17 @@ final class UserDefaultsDataStore: DataStoreProtocol { func readLastAcceptedLicenseVersion() -> Int? { return sharedDefaults.integer(forKey: kLastAcceptedLicenseVersionKey) } + + //ウィジェット更新フラグ + func writeUpdateWidgetFlg(update: Bool) { + sharedDefaults.set(update, forKey: kUpdateWidgetFlgKey) + } + + func readUpdateWidgetFlg() -> Bool? { + return sharedDefaults.bool(forKey: kUpdateWidgetFlgKey) + } + + func removeUpdateWidgetFlg(update: Bool) { + sharedDefaults.removeObject(forKey: kUpdateWidgetFlgKey) + } } diff --git a/AgileWorks/WidgetExtension/WidgetExtension.swift b/AgileWorks/WidgetExtension/WidgetExtension.swift index 0afb2a4..cf99640 100644 --- a/AgileWorks/WidgetExtension/WidgetExtension.swift +++ b/AgileWorks/WidgetExtension/WidgetExtension.swift @@ -107,8 +107,13 @@ func fetch(completion: @escaping (widgetAPIResult } let approvalsEndpoint = GetApprovalsEndpoint() - + + while UserDefaultsDataStore().readUpdateWidgetFlg() ?? false { + //別のウィジェットが更新中の場合は待つ + } + UserDefaultsDataStore().writeUpdateWidgetFlg(update: true) Session.send(approvalsEndpoint) { result in + UserDefaultsDataStore().writeUpdateWidgetFlg(update: false) switch result { case .success(let response): if !response.items.isEmpty { -- GitLab