diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index dde4fc5f6..33a43d15f 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -22,7 +22,7 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - DA6BE5E826B3BC8600656280 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + DA6BE5E826B3BC8600656280 /* (null) in Resources */ = {isa = PBXBuildFile; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -305,7 +305,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - DA6BE5E826B3BC8600656280 /* BuildFile in Resources */, + DA6BE5E826B3BC8600656280 /* (null) in Resources */, 277218A0270F596900FFE3CC /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -636,7 +636,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MACH_O_TYPE = mh_execute; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; @@ -669,6 +669,7 @@ ); INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Ente Photos"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -864,7 +865,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MACH_O_TYPE = mh_execute; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; @@ -922,7 +923,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MACH_O_TYPE = mh_execute; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; @@ -956,6 +957,7 @@ ); INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Ente Photos"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -995,6 +997,7 @@ ); INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Ente Photos"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 4a8308c5c..8408d8d91 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -9,15 +9,16 @@ import workmanager didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { var flutter_native_splash = 1 - UIApplication.shared.isStatusBarHidden = false - UIApplication.shared.setMinimumBackgroundFetchInterval(TimeInterval(60 * 15)) if #available(iOS 10.0, *) { UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate } GeneratedPluginRegistrant.register(with: self) - WorkmanagerPlugin.registerTask(withIdentifier: "slideshow-widget") + + WorkmanagerPlugin.registerPeriodicTask( + withIdentifier: "slideshow-widget", + frequency: NSNumber(value: 15 * 60)) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } diff --git a/lib/main.dart b/lib/main.dart index 9162e495a..55fdd9386 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -141,7 +141,7 @@ void initSlideshowWidget() { ">>> SlideshowWidget rendered with size ${width}x$height", ); return true; - } catch (e) { + } catch (_) { return false; } }, @@ -156,12 +156,18 @@ void main() async { try { await Workmanager() .initialize(initSlideshowWidget, isInDebugMode: kDebugMode); + await Workmanager().registerPeriodicTask( "slideshow-widget", "updateSlideshowWidget", - frequency: const Duration(minutes: 15), + initialDelay: const Duration(seconds: 10), + frequency: const Duration( + minutes: 15, + ), // Ignored on iOS, rather set in AppDelegate.swift ); - } catch (_) {} + } catch (_) { + debugPrint("error in Workmanager: $_"); + } final savedThemeMode = await AdaptiveTheme.getThemeMode(); await _runInForeground(savedThemeMode); diff --git a/pubspec.lock b/pubspec.lock index 89c1f491a..d52f3bace 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -2435,10 +2435,11 @@ packages: workmanager: dependency: "direct main" description: - name: workmanager - sha256: ed13530cccd28c5c9959ad42d657cd0666274ca74c56dea0ca183ddd527d3a00 - url: "https://pub.dev" - source: hosted + path: "." + ref: ios-bg-tasks-enh-final + resolved-ref: f3e717b0d875296e8bec619965dd73283a54c6e5 + url: "https://github.com/absar/flutter_workmanager" + source: git version: "0.5.2" xdg_directories: dependency: transitive diff --git a/pubspec.yaml b/pubspec.yaml index 669195313..18b3e2e2a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -170,7 +170,10 @@ dependencies: wallpaper_manager_flutter: ^0.0.2 wechat_assets_picker: ^8.6.3 widgets_to_image: ^0.0.2 - workmanager: ^0.5.2 + workmanager: + git: + url: https://github.com/absar/flutter_workmanager + ref: ios-bg-tasks-enh-final dependency_overrides: # current fork of tfite_flutter_helper depends on ffi: ^1.x.x