diff --git a/android/build.gradle b/android/build.gradle index 7f9f3bbb..46b15ae4 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -26,7 +26,7 @@ allprojects { maven { // [required] background_fetch - url "${project(':background_fetch').projectDir}/libs" + // url "${project(':background_fetch').projectDir}/libs" } } } diff --git a/lib/experiments/main_background.dart b/lib/experiments/main_background.dart index a5042448..68d858ff 100644 --- a/lib/experiments/main_background.dart +++ b/lib/experiments/main_background.dart @@ -4,160 +4,160 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ -import 'dart:async'; +// import 'dart:async'; -import 'package:flutter/material.dart'; +// import 'package:flutter/material.dart'; -import 'package:background_fetch/background_fetch.dart'; +// import 'package:background_fetch/background_fetch.dart'; // [Android-only] This "Headless Task" is run when the Android app // is terminated with enableHeadless: true -void backgroundFetchHeadlessTask(HeadlessTask task) async { - String taskId = task.taskId; - bool isTimeout = task.timeout; - if (isTimeout) { - // This task has exceeded its allowed running-time. - // You must stop what you're doing and immediately .finish(taskId) - print("[BackgroundFetch] Headless task timed-out: $taskId"); - BackgroundFetch.finish(taskId); - return; - } - print('[BackgroundFetch] Headless event received.'); - // Do your work here... - BackgroundFetch.finish(taskId); -} +// void backgroundFetchHeadlessTask(HeadlessTask task) async { +// String taskId = task.taskId; +// bool isTimeout = task.timeout; +// if (isTimeout) { +// // This task has exceeded its allowed running-time. +// // You must stop what you're doing and immediately .finish(taskId) +// print("[BackgroundFetch] Headless task timed-out: $taskId"); +// BackgroundFetch.finish(taskId); +// return; +// } +// print('[BackgroundFetch] Headless event received.'); +// // Do your work here... +// BackgroundFetch.finish(taskId); +// } -void main() { - // Enable integration testing with the Flutter Driver extension. - // See https://flutter.io/testing/ for more info. - runApp(MyApp()); +// void main() { +// // Enable integration testing with the Flutter Driver extension. +// // See https://flutter.io/testing/ for more info. +// runApp(MyApp()); - // Register to receive BackgroundFetch events after app is terminated. - // Requires {stopOnTerminate: false, enableHeadless: true} - BackgroundFetch.registerHeadlessTask(backgroundFetchHeadlessTask); -} +// // Register to receive BackgroundFetch events after app is terminated. +// // Requires {stopOnTerminate: false, enableHeadless: true} +// BackgroundFetch.registerHeadlessTask(backgroundFetchHeadlessTask); +// } -class MyApp extends StatefulWidget { - @override - _MyAppState createState() => _MyAppState(); -} +// class MyApp extends StatefulWidget { +// @override +// _MyAppState createState() => _MyAppState(); +// } -class _MyAppState extends State { - bool _enabled = true; - int _status = 0; - final List _events = []; +// class _MyAppState extends State { +// bool _enabled = true; +// int _status = 0; +// final List _events = []; - @override - void initState() { - super.initState(); - initPlatformState(); - } +// @override +// void initState() { +// super.initState(); +// initPlatformState(); +// } - // Platform messages are asynchronous, so we initialize in an async method. - Future initPlatformState() async { - // Configure BackgroundFetch. - int status = await BackgroundFetch.configure( - BackgroundFetchConfig( - minimumFetchInterval: 15, - stopOnTerminate: false, - enableHeadless: true, - requiresBatteryNotLow: false, - requiresCharging: false, - requiresStorageNotLow: false, - requiresDeviceIdle: false, - requiredNetworkType: NetworkType.NONE), (String taskId) async { - // <-- Event handler - // This is the fetch-event callback. - print("[BackgroundFetch] Event received $taskId"); - setState(() { - _events.insert(0, DateTime.now()); - }); - // IMPORTANT: You must signal completion of your task or the OS can punish your app - // for taking too long in the background. - BackgroundFetch.finish(taskId); - }, (String taskId) async { - // <-- Task timeout handler. - // This task has exceeded its allowed running-time. You must stop what you're doing and immediately .finish(taskId) - print("[BackgroundFetch] TASK TIMEOUT taskId: $taskId"); - BackgroundFetch.finish(taskId); - }); - print('[BackgroundFetch] configure success: $status'); - setState(() { - _status = status; - }); +// // Platform messages are asynchronous, so we initialize in an async method. +// Future initPlatformState() async { +// // Configure BackgroundFetch. +// int status = await BackgroundFetch.configure( +// BackgroundFetchConfig( +// minimumFetchInterval: 15, +// stopOnTerminate: false, +// enableHeadless: true, +// requiresBatteryNotLow: false, +// requiresCharging: false, +// requiresStorageNotLow: false, +// requiresDeviceIdle: false, +// requiredNetworkType: NetworkType.NONE), (String taskId) async { +// // <-- Event handler +// // This is the fetch-event callback. +// print("[BackgroundFetch] Event received $taskId"); +// setState(() { +// _events.insert(0, DateTime.now()); +// }); +// // IMPORTANT: You must signal completion of your task or the OS can punish your app +// // for taking too long in the background. +// BackgroundFetch.finish(taskId); +// }, (String taskId) async { +// // <-- Task timeout handler. +// // This task has exceeded its allowed running-time. You must stop what you're doing and immediately .finish(taskId) +// print("[BackgroundFetch] TASK TIMEOUT taskId: $taskId"); +// BackgroundFetch.finish(taskId); +// }); +// print('[BackgroundFetch] configure success: $status'); +// setState(() { +// _status = status; +// }); - // If the widget was removed from the tree while the asynchronous platform - // message was in flight, we want to discard the reply rather than calling - // setState to update our non-existent appearance. - if (!mounted) return; - } +// // If the widget was removed from the tree while the asynchronous platform +// // message was in flight, we want to discard the reply rather than calling +// // setState to update our non-existent appearance. +// if (!mounted) return; +// } - void _onClickEnable(enabled) { - setState(() { - _enabled = enabled; - }); - if (enabled) { - BackgroundFetch.start().then((int status) { - print('[BackgroundFetch] start success: $status'); - }).catchError((e) { - print('[BackgroundFetch] start FAILURE: $e'); - }); - } else { - BackgroundFetch.stop().then((int status) { - print('[BackgroundFetch] stop success: $status'); - }); - } - } +// void _onClickEnable(enabled) { +// setState(() { +// _enabled = enabled; +// }); +// if (enabled) { +// BackgroundFetch.start().then((int status) { +// print('[BackgroundFetch] start success: $status'); +// }).catchError((e) { +// print('[BackgroundFetch] start FAILURE: $e'); +// }); +// } else { +// BackgroundFetch.stop().then((int status) { +// print('[BackgroundFetch] stop success: $status'); +// }); +// } +// } - void _onClickStatus() async { - int status = await BackgroundFetch.status; - print('[BackgroundFetch] status: $status'); - setState(() { - _status = status; - }); - } +// void _onClickStatus() async { +// int status = await BackgroundFetch.status; +// print('[BackgroundFetch] status: $status'); +// setState(() { +// _status = status; +// }); +// } - @override - Widget build(BuildContext context) { - return MaterialApp( - home: Scaffold( - appBar: AppBar( - title: const Text('BackgroundFetch Example', - style: TextStyle(color: Colors.black)), - backgroundColor: Colors.amberAccent, - actions: [ - Switch(value: _enabled, onChanged: _onClickEnable), - ]), - body: Container( - color: Colors.black, - child: ListView.builder( - itemCount: _events.length, - itemBuilder: (BuildContext context, int index) { - DateTime timestamp = _events[index]; - return InputDecorator( - decoration: const InputDecoration( - contentPadding: - EdgeInsets.only(left: 10.0, top: 10.0, bottom: 0.0), - labelStyle: TextStyle( - color: Colors.amberAccent, fontSize: 20.0), - labelText: "[background fetch event]"), - child: Text(timestamp.toString(), - style: const TextStyle( - color: Colors.white, fontSize: 16.0))); - }), - ), - bottomNavigationBar: BottomAppBar( - child: Row(children: [ - ElevatedButton( - onPressed: _onClickStatus, child: const Text('Status')), - Container( - child: Text("$_status"), - margin: const EdgeInsets.only(left: 20.0)) - ])), - ), - ); - } -} +// @override +// Widget build(BuildContext context) { +// return MaterialApp( +// home: Scaffold( +// appBar: AppBar( +// title: const Text('BackgroundFetch Example', +// style: TextStyle(color: Colors.black)), +// backgroundColor: Colors.amberAccent, +// actions: [ +// Switch(value: _enabled, onChanged: _onClickEnable), +// ]), +// body: Container( +// color: Colors.black, +// child: ListView.builder( +// itemCount: _events.length, +// itemBuilder: (BuildContext context, int index) { +// DateTime timestamp = _events[index]; +// return InputDecorator( +// decoration: const InputDecoration( +// contentPadding: +// EdgeInsets.only(left: 10.0, top: 10.0, bottom: 0.0), +// labelStyle: TextStyle( +// color: Colors.amberAccent, fontSize: 20.0), +// labelText: "[background fetch event]"), +// child: Text(timestamp.toString(), +// style: const TextStyle( +// color: Colors.white, fontSize: 16.0))); +// }), +// ), +// bottomNavigationBar: BottomAppBar( +// child: Row(children: [ +// ElevatedButton( +// onPressed: _onClickStatus, child: const Text('Status')), +// Container( +// child: Text("$_status"), +// margin: const EdgeInsets.only(left: 20.0)) +// ])), +// ), +// ); +// } +// } // Stuff to be saved - // (gitRepo, remoteName, lastSyncedWhen, lastError) diff --git a/pubspec.lock b/pubspec.lock index 0bd3f051..91ccfc45 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -78,15 +78,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.0-nullsafety.0" - background_fetch: - dependency: "direct main" - description: - path: "." - ref: HEAD - resolved-ref: "724a13feeead45dcc491a9d52f867bf6f9c86d50" - url: "https://github.com/Fishbowler/flutter_background_fetch.git" - source: git - version: "1.0.1" badges: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 29b802c2..f7d64837 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -96,8 +96,8 @@ dependencies: url: https://github.com/NearHuscarl/flutter_login.git ref: develop android_external_storage: ^0.1.0 - background_fetch: - git: https://github.com/Fishbowler/flutter_background_fetch.git + # background_fetch: + # git: https://github.com/Fishbowler/flutter_background_fetch.git timeline_tile: ^2.0.0 community_material_icon: ^5.9.55 google_api_availability: ^3.0.1