Add map tile caching

This commit is contained in:
zontreck 2025-05-17 01:27:41 -07:00
parent ee0fed6d6b
commit f6fcc4c390
4 changed files with 17 additions and 2 deletions

View file

@ -9,7 +9,7 @@ class TTConsts {
static get SESSION_SERVER => static get SESSION_SERVER =>
"https://api.zontreck.com/timetrack/${UPDATE_CHANNEL}/timetrack.php"; "https://api.zontreck.com/timetrack/${UPDATE_CHANNEL}/timetrack.php";
static const VERSION = "1.0.0-beta.4"; static const VERSION = "1.0.0-beta.5";
static bool UPDATE_AVAILABLE = false; static bool UPDATE_AVAILABLE = false;
static UpdateChannel UPDATE_CHANNEL = UpdateChannel.beta; static UpdateChannel UPDATE_CHANNEL = UpdateChannel.beta;

View file

@ -1,9 +1,12 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_map_tile_caching/flutter_map_tile_caching.dart';
import 'package:timetrack/consts.dart'; import 'package:timetrack/consts.dart';
import 'package:timetrack/data.dart'; import 'package:timetrack/data.dart';
import 'package:timetrack/pages/MainApp.dart'; import 'package:timetrack/pages/MainApp.dart';
Future<void> main() async { Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await TTConsts.checkUpdate(); await TTConsts.checkUpdate();
var sess = Uri.base.queryParameters["code"] ?? ""; var sess = Uri.base.queryParameters["code"] ?? "";
@ -15,5 +18,10 @@ Future<void> main() async {
SessionData.DisplayError = "The URL and or session token is invalid"; SessionData.DisplayError = "The URL and or session token is invalid";
} }
} }
await FMTCObjectBoxBackend().initialise();
await FMTCStore('mapStore').manage.create();
runApp(MainApp()); runApp(MainApp());
} }

View file

@ -4,6 +4,7 @@ import 'package:flutter_map/flutter_map.dart';
import 'package:latlong2/latlong.dart'; import 'package:latlong2/latlong.dart';
import 'package:libacflutter/Constants.dart'; import 'package:libacflutter/Constants.dart';
import 'package:timetrack/data.dart'; import 'package:timetrack/data.dart';
import 'package:flutter_map_tile_caching/flutter_map_tile_caching.dart';
class MapPage extends StatefulWidget { class MapPage extends StatefulWidget {
MapPage({super.key}); MapPage({super.key});
@ -21,6 +22,10 @@ class _MapPage extends State<MapPage> {
List<Marker> Markers = []; List<Marker> Markers = [];
bool autorefresh = true; bool autorefresh = true;
final _tileProvider = FMTCTileProvider(
stores: const {'mapStore': BrowseStoreStrategy.readUpdateCreate},
);
@override @override
void initState() { void initState() {
SessionData.Calls.MapCallback = call; SessionData.Calls.MapCallback = call;
@ -137,6 +142,7 @@ class _MapPage extends State<MapPage> {
TileLayer( TileLayer(
urlTemplate: "https://tile.openstreetmap.org/{z}/{x}/{y}.png", urlTemplate: "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
userAgentPackageName: "dev.zontreck.timetrack", userAgentPackageName: "dev.zontreck.timetrack",
tileProvider: _tileProvider,
), ),
PolylineLayer( PolylineLayer(
polylines: [ polylines: [

View file

@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.0-beta.4 version: 1.0.0-beta.5
environment: environment:
sdk: ^3.7.2 sdk: ^3.7.2
@ -45,6 +45,7 @@ dependencies:
geolocator: ^14.0.0 geolocator: ^14.0.0
flutter_map: ^8.1.1 flutter_map: ^8.1.1
latlong2: ^0.9.1 latlong2: ^0.9.1
flutter_map_tile_caching: ^10.1.1
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: