diff --git a/Kiwix-iOS/AppDelegate.swift b/Kiwix-iOS/AppDelegate.swift index ae86a014..72b1ee40 100644 --- a/Kiwix-iOS/AppDelegate.swift +++ b/Kiwix-iOS/AppDelegate.swift @@ -32,30 +32,35 @@ class AppDelegate: UIResponder, UIApplicationDelegate { func applicationDidBecomeActive(_ application: UIApplication) { ZimMultiReader.shared.startScan() + UserHabit.shared.appDidBecomeActive() } func applicationWillResignActive(_ application: UIApplication) { - let type = "org.kiwix.recent" - let previousIndex: Int? = { - guard let recent = UIApplication.shared.shortcutItems?.filter({$0.type == type}).first else {return nil} - return UIApplication.shared.shortcutItems?.index(of: recent) - }() - - if let index = previousIndex { UIApplication.shared.shortcutItems?.remove(at: index) } - - if let article = AppDelegate.mainController.article, - let title = article.title, let url = article.url?.absoluteString { - let item = UIMutableApplicationShortcutItem(type: type, - localizedTitle: title, - localizedSubtitle: nil, - icon: UIApplicationShortcutIcon(templateImageName: "Recent"), - userInfo: ["URL": url]) - if let index = previousIndex { - UIApplication.shared.shortcutItems?.insert(item, at: index) - } else { - UIApplication.shared.shortcutItems?.append(item) + func updateQuickActions() { + let type = "org.kiwix.recent" + let previousIndex: Int? = { + guard let recent = UIApplication.shared.shortcutItems?.filter({$0.type == type}).first else {return nil} + return UIApplication.shared.shortcutItems?.index(of: recent) + }() + + if let index = previousIndex { UIApplication.shared.shortcutItems?.remove(at: index) } + + if let article = AppDelegate.mainController.article, + let title = article.title, let url = article.url?.absoluteString { + let item = UIMutableApplicationShortcutItem(type: type, + localizedTitle: title, + localizedSubtitle: nil, + icon: UIApplicationShortcutIcon(templateImageName: "Recent"), + userInfo: ["URL": url]) + if let index = previousIndex { + UIApplication.shared.shortcutItems?.insert(item, at: index) + } else { + UIApplication.shared.shortcutItems?.append(item) + } } } + updateQuickActions() + UserHabit.shared.appDidBecomeActive() } func applicationWillTerminate(_ application: UIApplication) { diff --git a/Kiwix.xcodeproj/project.pbxproj b/Kiwix.xcodeproj/project.pbxproj index 01f15b98..af7c9eb6 100644 --- a/Kiwix.xcodeproj/project.pbxproj +++ b/Kiwix.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ 971A107F1D022F74007FC62C /* ImportBookLearnMore.html in Resources */ = {isa = PBXBuildFile; fileRef = 971A107B1D022F74007FC62C /* ImportBookLearnMore.html */; }; 971A10801D022F74007FC62C /* Pic_I.png in Resources */ = {isa = PBXBuildFile; fileRef = 971A107C1D022F74007FC62C /* Pic_I.png */; }; 971A10811D022F74007FC62C /* Pic_P.png in Resources */ = {isa = PBXBuildFile; fileRef = 971A107D1D022F74007FC62C /* Pic_P.png */; }; + 9725345F1E43E2250005D169 /* UserHabit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9725345E1E43E2250005D169 /* UserHabit.swift */; }; 9726591D1D90A64600D1DFFB /* Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9726591C1D90A64500D1DFFB /* Notification.swift */; }; 972F81571DDBFC79008D7289 /* Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972F81561DDBFC79008D7289 /* Search.swift */; }; 972F81591DDC1B71008D7289 /* Controllers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 972F81581DDC1B71008D7289 /* Controllers.swift */; }; @@ -168,6 +169,7 @@ 971A107D1D022F74007FC62C /* Pic_P.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Pic_P.png; path = Kiwix/HelpDocuments/Pic_P.png; sourceTree = SOURCE_ROOT; }; 971C4F0B1D3FFFA60027B7D2 /* Kiwix.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = Kiwix.entitlements; path = "Kiwix-iOS/Kiwix.entitlements"; sourceTree = SOURCE_ROOT; }; 97219DBC1D383A00009FDFF1 /* BookmarkHUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BookmarkHUD.swift; path = "Kiwix-iOS/Controller/Bookmark/BookmarkHUD.swift"; sourceTree = SOURCE_ROOT; }; + 9725345E1E43E2250005D169 /* UserHabit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserHabit.swift; sourceTree = ""; }; 9726591A1D8DB91200D1DFFB /* DownloadProgress.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DownloadProgress.swift; sourceTree = ""; }; 9726591C1D90A64500D1DFFB /* Notification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Notification.swift; sourceTree = ""; }; 972F81561DDBFC79008D7289 /* Search.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Search.swift; sourceTree = ""; }; @@ -604,6 +606,7 @@ 97A9F6F41E2E990500F423AA /* JSInject.js */, 97A1FD401D6F728200A80EE2 /* Preference.swift */, 97A1FD411D6F728200A80EE2 /* StringTools.swift */, + 9725345E1E43E2250005D169 /* UserHabit.swift */, ); path = Tools; sourceTree = ""; @@ -989,6 +992,7 @@ 977AE7F91DD8F22400F1E581 /* SearchBar.swift in Sources */, 97ED50111DD257D00089E9B6 /* Kiwix.xcdatamodeld in Sources */, 9705D5981E368933005292AC /* CoreDataCollectionBaseController.swift in Sources */, + 9725345F1E43E2250005D169 /* UserHabit.swift in Sources */, 97A127C91D777CF100FB204D /* RecentSearchController.swift in Sources */, 97599AE21E28193D00BA15EF /* BookmarkCollectionController.swift in Sources */, ); diff --git a/Kiwix/Tools/UserHabit.swift b/Kiwix/Tools/UserHabit.swift new file mode 100644 index 00000000..b8bb2b21 --- /dev/null +++ b/Kiwix/Tools/UserHabit.swift @@ -0,0 +1,27 @@ +// +// UserHabit.swift +// Kiwix +// +// Created by Chris Li on 2/2/17. +// Copyright © 2017 Chris Li. All rights reserved. +// + +import UIKit + +class UserHabit { + static let shared = UserHabit() + private init() {} + + // MARK: - App Become Active + + private var timeAppDidBecomeActive: Date? + + func appDidBecomeActive() { + timeAppDidBecomeActive = Date() + } + + func appWillResignActive() { + let interval = timeAppDidBecomeActive?.timeIntervalSinceNow + print(interval) + } +}