diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
index 9625e10..7c56964 100644
--- a/ios/Flutter/AppFrameworkInfo.plist
+++ b/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 11.0
+ 12.0
diff --git a/ios/Podfile b/ios/Podfile
index c0c99e2..6681052 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-# platform :ios, '11.0'
+# platform :ios, '12.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index c729f5c..ffa70b0 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -25,6 +25,8 @@ PODS:
- FlutterMacOS
- permission_handler_apple (9.1.1):
- Flutter
+ - pointer_interceptor_ios (0.0.1):
+ - Flutter
- ReachabilitySwift (5.0.0)
- shared_preferences_foundation (0.0.1):
- Flutter
@@ -47,6 +49,7 @@ DEPENDENCIES:
- isar_flutter_libs (from `.symlinks/plugins/isar_flutter_libs/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
+ - pointer_interceptor_ios (from `.symlinks/plugins/pointer_interceptor_ios/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
@@ -79,6 +82,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
+ pointer_interceptor_ios:
+ :path: ".symlinks/plugins/pointer_interceptor_ios/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
sqflite:
@@ -87,23 +92,24 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS:
- camera_avfoundation: 3125e8cd1a4387f6f31c6c63abb8a55892a9eeeb
+ camera_avfoundation: 759172d1a77ae7be0de08fc104cfb79738b8a59e
connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d
- Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
+ Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_compass: cbbd285cea1584c7ac9c4e0c3e1f17cbea55e855
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
- geolocator_apple: cc556e6844d508c95df1e87e3ea6fa4e58c50401
+ geolocator_apple: 9157311f654584b9bb72686c55fc02a97b73f461
image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb
- image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
+ image_picker_ios: 99dfe1854b4fa34d0364e74a78448a0151025425
isar_flutter_libs: b69f437aeab9c521821c3f376198c4371fa21073
- path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
+ path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c
permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6
+ pointer_interceptor_ios: 9280618c0b2eeb80081a343924aa8ad756c21375
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
- shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
- sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a
- url_launcher_ios: bf5ce03e0e2088bad9cc378ea97fa0ed5b49673b
+ shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
+ sqflite: 50a33e1d72bd59ee092a519a35d107502757ebed
+ url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812
-PODFILE CHECKSUM: a1c2f8dde3796ecc1697a15e7c75eb5205d8a740
+PODFILE CHECKSUM: fd4b34215e7c57e79d347e509d4d64bfebe797fc
COCOAPODS: 1.12.1
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 1ee1e7c..604a8c4 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -342,7 +342,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -425,7 +425,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -474,7 +474,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
MTL_ENABLE_DEBUG_INFO = NO;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
diff --git a/lib/pages/destination/destination_controller.dart b/lib/pages/destination/destination_controller.dart
index 691cbaf..31b190e 100644
--- a/lib/pages/destination/destination_controller.dart
+++ b/lib/pages/destination/destination_controller.dart
@@ -14,6 +14,7 @@ import 'package:rogapp/model/gps_data.dart';
import 'package:rogapp/pages/camera/camera_page.dart';
import 'package:rogapp/pages/index/index_controller.dart';
import 'package:rogapp/routes/app_pages.dart';
+import 'package:rogapp/services/DatabaseService.dart';
import 'package:rogapp/services/destination_service.dart';
import 'package:rogapp/services/external_service.dart';
import 'package:rogapp/services/location_service.dart';
@@ -77,6 +78,7 @@ class DestinationController extends GetxController {
final IndexController indexController = Get.find();
final LocationController locationController = Get.put(LocationController());
+ final DatabaseService dbService = DatabaseService();
int _start = 0;
int chekcs = 0;
@@ -433,6 +435,7 @@ class DestinationController extends GetxController {
lastGoalAt = DateTime.fromMicrosecondsSinceEpoch(latgoal);
//print("===== last goal : $last_goal_at =====");
}
+ dbService.updateDatabase();
}
void deleteAllDestinations() {
@@ -564,6 +567,7 @@ class DestinationController extends GetxController {
Future checkForCheckin() async {
//print("--- Start of checkForCheckin function ---");
+ dbService.updateDatabase();
await Future.delayed(const Duration(milliseconds: 3000));
game_started = true;
@@ -718,15 +722,16 @@ class DestinationController extends GetxController {
// print("------Ext service check point $value ------");
});
}
+ dbService.updateDatabase();
}
Future removeCheckin(int cp) {
+ dbService.updateDatabase();
return ExternalService().removeCheckin(cp);
}
Future startGame() async {
//print("------ starting game ------");
-
if (game_started == false) {
await checkForCheckin();
}
@@ -776,6 +781,9 @@ class DestinationController extends GetxController {
}
double distanceToStart() {
+ if (indexController.locations.isEmpty) {
+ return 1000000000;
+ }
//print("=== gfs len == ${indexController.locations[0].collection.length}");
double distanceToDest = double.infinity;
if (indexController.locations[0].features.isEmpty) {
@@ -959,6 +967,7 @@ class DestinationController extends GetxController {
db.deleteDestination(d.location_id!).then((value) {
populateDestinations();
});
+ dbService.updateDatabase();
}
void deleteDBDestinations() {
@@ -966,6 +975,7 @@ class DestinationController extends GetxController {
db.deleteAllDestinations().then((value) {
populateDestinations();
});
+ dbService.updateDatabase();
}
// ---------- database ------------------///
@@ -988,6 +998,7 @@ class DestinationController extends GetxController {
});
}
});
+ dbService.updateDatabase();
}
void toggleSelection(Destination dest) async {
diff --git a/lib/pages/index/index_page.dart b/lib/pages/index/index_page.dart
index 2cc1205..1fc7327 100644
--- a/lib/pages/index/index_page.dart
+++ b/lib/pages/index/index_page.dart
@@ -1,11 +1,14 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
+import 'package:rogapp/model/destination.dart';
import 'package:rogapp/model/gps_data.dart';
import 'package:rogapp/pages/destination/destination_controller.dart';
import 'package:rogapp/pages/drawer/drawer_page.dart';
import 'package:rogapp/pages/index/index_controller.dart';
import 'package:rogapp/routes/app_pages.dart';
+import 'package:rogapp/services/DatabaseService.dart';
import 'package:rogapp/utils/database_gps.dart';
+import 'package:rogapp/utils/database_helper.dart';
import 'package:rogapp/widgets/list_widget.dart';
import 'package:rogapp/widgets/map_widget.dart';
@@ -25,6 +28,13 @@ class IndexPage extends GetView {
appBar: AppBar(
title: Text("add_location".tr),
actions: [
+ IconButton(
+ onPressed: () {
+ DatabaseService ds = DatabaseService();
+ ds.updateDatabase();
+ },
+ icon: const Icon(Icons.ten_k_sharp)),
+
IconButton(
onPressed: () async {
// GpsDatabaseHelper db = GpsDatabaseHelper.instance;
diff --git a/lib/services/DatabaseService.dart b/lib/services/DatabaseService.dart
new file mode 100644
index 0000000..db44d97
--- /dev/null
+++ b/lib/services/DatabaseService.dart
@@ -0,0 +1,55 @@
+import 'dart:async';
+
+import 'package:rogapp/model/destination.dart';
+import 'package:rogapp/utils/database_helper.dart';
+
+class DatabaseService {
+ // Private constructor
+ DatabaseService._privateConstructor();
+
+ // Static instance
+ static final DatabaseService _instance =
+ DatabaseService._privateConstructor();
+
+ // Factory constructor to return the instance
+ factory DatabaseService() {
+ return _instance;
+ }
+
+ // StreamController for updates
+ final StreamController> _dbUpdateController =
+ StreamController>.broadcast();
+
+ // Getter for the stream
+ Stream> get destinationUpdatesStream =>
+ _dbUpdateController.stream;
+
+ // Method to fetch destinations
+ Future> fetchDestinations() async {
+ // Your database fetch logic here
+ List destinations = await _fetchFromDb();
+ _dbUpdateController.add(destinations);
+ return destinations;
+ }
+
+ // Method to update the database and emit an update through the stream
+ Future updateDatabase() async {
+ // Your update logic here
+
+ // After updating, fetch the updated list and add it to the stream
+ fetchDestinations();
+ }
+
+ // Method to fetch data from the database (placeholder)
+ Future> _fetchFromDb() async {
+ // Simulate fetching data with a delay
+ DatabaseHelper db = DatabaseHelper.instance;
+ List destinations = await db.getDestinations();
+ return destinations; // Replace with your actual fetch operation
+ }
+
+ // Dispose method to close the stream controller
+ void dispose() {
+ _dbUpdateController.close();
+ }
+}
diff --git a/lib/widgets/GameState/CheckinState.dart b/lib/widgets/GameState/CheckinState.dart
new file mode 100644
index 0000000..55c0b25
--- /dev/null
+++ b/lib/widgets/GameState/CheckinState.dart
@@ -0,0 +1,57 @@
+import 'package:flutter/material.dart';
+import 'package:rogapp/widgets/GameState/Colors.dart';
+
+class LocationVisitedWidget extends StatelessWidget {
+ final int count;
+ final bool minimized;
+
+ const LocationVisitedWidget(
+ {Key? key, required this.count, this.minimized = false})
+ : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ if (minimized) {
+ return Container(
+ height: 40,
+ width: 40,
+ decoration: BoxDecoration(
+ color: JapaneseColors.mizu,
+ shape: BoxShape.circle,
+ ),
+ child: Center(
+ child: Text(
+ '$count',
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.bold,
+ fontSize: 14,
+ ),
+ ),
+ ),
+ );
+ } else {
+ return Container(
+ padding: EdgeInsets.symmetric(vertical: 8, horizontal: 8),
+ decoration: BoxDecoration(
+ color: JapaneseColors.matcha,
+ borderRadius: BorderRadius.circular(10),
+ ),
+ child: Row(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Icon(Icons.check_circle_outline, color: Colors.white, size: 24),
+ SizedBox(width: 8),
+ Text(
+ '$count チェックイン', // "X Check-ins" in Japanese
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.bold,
+ fontSize: 16),
+ ),
+ ],
+ ),
+ );
+ }
+ }
+}
diff --git a/lib/widgets/GameState/Colors.dart b/lib/widgets/GameState/Colors.dart
new file mode 100644
index 0000000..ceb6f0a
--- /dev/null
+++ b/lib/widgets/GameState/Colors.dart
@@ -0,0 +1,12 @@
+import 'package:flutter/material.dart';
+
+class JapaneseColors {
+ static const Color mizu = Color(0xFFA4DDED); // Mizu (light blue)
+ static const Color matcha = Color(0xFFC5E1A5);
+ static const Color ume = Color(0xFFE1A8A8); // Ume (plum)
+ static const Color take = Color(0xFF7B8D42); // Take (bamboo)
+ static const Color sora = Color(0xFFA1CAF1);
+ static const Color indigo = Color(0xFF264653); // Aizome
+ static const Color sakuraPink = Color(0xFFFAD2E1); // Sakura-iro
+ /// Matcha (green tea)
+}
diff --git a/lib/widgets/GameState/ConnectionStatus.dart b/lib/widgets/GameState/ConnectionStatus.dart
new file mode 100644
index 0000000..ad56fe0
--- /dev/null
+++ b/lib/widgets/GameState/ConnectionStatus.dart
@@ -0,0 +1,72 @@
+import 'package:flutter/material.dart';
+import 'package:rogapp/widgets/GameState/Colors.dart';
+
+enum ConnectionStatus { none, mobile, wifi }
+
+class ConnectionStatusIndicator extends StatelessWidget {
+ final ConnectionStatus connectionStatus;
+ final bool minimized;
+
+ const ConnectionStatusIndicator({
+ Key? key,
+ required this.connectionStatus,
+ this.minimized = false,
+ }) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ Color backgroundColor;
+ IconData iconData;
+ String text;
+
+ switch (connectionStatus) {
+ case ConnectionStatus.none:
+ backgroundColor = JapaneseColors.ume;
+ iconData = Icons.signal_cellular_off;
+ text = 'No Connection';
+ break;
+ case ConnectionStatus.mobile:
+ backgroundColor = JapaneseColors.take;
+ iconData = Icons.signal_cellular_alt;
+ text = 'Mobile Data';
+ break;
+ case ConnectionStatus.wifi:
+ backgroundColor = JapaneseColors.sora;
+ iconData = Icons.wifi;
+ text = 'Wi-Fi';
+ break;
+ default:
+ backgroundColor = Colors.grey; // Fallback color
+ iconData = Icons.device_unknown;
+ text = 'Unknown';
+ }
+
+ return Container(
+ height: minimized ? 40 : null,
+ width: minimized ? 40 : null,
+ padding:
+ minimized ? null : EdgeInsets.symmetric(vertical: 8, horizontal: 16),
+ decoration: BoxDecoration(
+ color: backgroundColor,
+ shape: minimized ? BoxShape.circle : BoxShape.rectangle,
+ borderRadius: minimized ? null : BorderRadius.circular(10),
+ ),
+ child: minimized
+ ? Center(
+ child: Icon(iconData, color: Colors.white, size: 24),
+ )
+ : Row(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Icon(iconData, color: Colors.white),
+ SizedBox(width: 8),
+ Text(
+ text,
+ style: TextStyle(
+ color: Colors.white, fontWeight: FontWeight.bold),
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/widgets/GameState/DashboardWidget.dart b/lib/widgets/GameState/DashboardWidget.dart
new file mode 100644
index 0000000..faf2b18
--- /dev/null
+++ b/lib/widgets/GameState/DashboardWidget.dart
@@ -0,0 +1,51 @@
+import 'package:flutter/material.dart';
+import 'package:rogapp/widgets/GameState/CheckinState.dart';
+import 'package:rogapp/widgets/GameState/game_on_off.dart';
+
+class DashboardWidget extends StatelessWidget {
+ final bool gameStarted;
+ final int locationsVisited;
+ final bool isMinimized;
+
+ const DashboardWidget({
+ Key? key,
+ required this.gameStarted,
+ required this.locationsVisited,
+ this.isMinimized = false,
+ }) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ List widgets = [
+ GameStatusIndicator(gameStarted: gameStarted, minimized: isMinimized),
+ SizedBox(
+ height: isMinimized ? 0 : 8, width: isMinimized ? 8 : 0), // Spacing
+ LocationVisitedWidget(count: locationsVisited, minimized: isMinimized),
+ ];
+
+ return Container(
+ padding: EdgeInsets.all(isMinimized ? 8 : 16),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ boxShadow: [
+ BoxShadow(
+ color: Colors.grey.withOpacity(0.5),
+ spreadRadius: 5,
+ blurRadius: 7,
+ offset: Offset(0, 3),
+ ),
+ ],
+ borderRadius: BorderRadius.circular(10),
+ ),
+ child: isMinimized
+ ? Row(
+ mainAxisSize: MainAxisSize.min,
+ children: widgets,
+ )
+ : Column(
+ mainAxisSize: MainAxisSize.min,
+ children: widgets,
+ ),
+ );
+ }
+}
diff --git a/lib/widgets/GameState/game_on_off.dart b/lib/widgets/GameState/game_on_off.dart
new file mode 100644
index 0000000..26f4a23
--- /dev/null
+++ b/lib/widgets/GameState/game_on_off.dart
@@ -0,0 +1,55 @@
+import 'package:flutter/material.dart';
+import 'package:rogapp/widgets/GameState/Colors.dart';
+
+class GameStatusIndicator extends StatelessWidget {
+ final bool gameStarted;
+ final bool minimized;
+
+ const GameStatusIndicator(
+ {Key? key, required this.gameStarted, this.minimized = true})
+ : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ // Icons to show based on the game status
+ IconData iconData =
+ gameStarted ? Icons.stop_circle : Icons.play_circle_filled;
+ // Text to show based on the game status
+ String text = gameStarted ? 'ゲーム開始' : 'ゲーム未開始';
+
+ // Layout for minimized view
+ if (minimized) {
+ return Container(
+ height: 40, // Square size
+ width: 40, // Square size
+ decoration: BoxDecoration(
+ color:
+ gameStarted ? JapaneseColors.indigo : JapaneseColors.sakuraPink,
+ shape: BoxShape
+ .circle, // Making it circle when minimized for a more distinct look
+ ),
+ child: Icon(iconData, color: Colors.white),
+ );
+ }
+
+ // Layout for expanded view
+ return Container(
+ padding: EdgeInsets.all(12),
+ decoration: BoxDecoration(
+ color: gameStarted ? JapaneseColors.indigo : JapaneseColors.sakuraPink,
+ borderRadius: BorderRadius.circular(10),
+ ),
+ child: Row(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Icon(iconData, color: Colors.white),
+ SizedBox(width: 8),
+ Text(
+ text,
+ style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/widgets/game_state_view.dart b/lib/widgets/game_state_view.dart
new file mode 100644
index 0000000..0ae31df
--- /dev/null
+++ b/lib/widgets/game_state_view.dart
@@ -0,0 +1,200 @@
+import 'dart:ffi';
+import 'dart:math';
+
+import 'package:flutter/material.dart';
+import 'package:get/get.dart';
+import 'package:rogapp/model/destination.dart';
+import 'package:rogapp/pages/destination/destination_controller.dart';
+import 'package:rogapp/pages/index/index_controller.dart';
+import 'package:rogapp/services/DatabaseService.dart';
+import 'package:rogapp/utils/database_helper.dart';
+import 'package:rogapp/widgets/GameState/CheckinState.dart';
+import 'package:rogapp/widgets/GameState/ConnectionStatus.dart';
+import 'package:rogapp/widgets/GameState/DashboardWidget.dart';
+import 'package:rogapp/widgets/GameState/game_on_off.dart';
+
+class GameStateManager {
+ static final GameStateManager _instance = GameStateManager._internal();
+
+ factory GameStateManager() {
+ return _instance;
+ }
+
+ GameStateManager._internal();
+
+ List _logs = [];
+ List _listeners = [];
+
+ List get logs => _logs;
+
+ void addLog(String log) {
+ _logs.add(log);
+ _notifyListeners(); // Notify all listeners
+ }
+
+ void clearLogs() {
+ _logs.clear();
+ _notifyListeners(); // Notify all listeners
+ }
+
+ void addListener(VoidCallback listener) {
+ _listeners.add(listener);
+ }
+
+ void removeListener(VoidCallback listener) {
+ _listeners.remove(listener);
+ }
+
+ void _notifyListeners() {
+ for (var listener in _listeners) {
+ listener();
+ }
+ }
+}
+
+class GameStateWidget extends StatefulWidget {
+ const GameStateWidget({super.key});
+
+ @override
+ State createState() => _GameStateWidgetState();
+}
+
+class _GameStateWidgetState extends State {
+ final GameStateManager gameStateManager = GameStateManager();
+
+ final IndexController indexController = Get.find();
+ final DestinationController destinationController =
+ Get.find();
+
+ @override
+ void initState() {
+ super.initState();
+ gameStateManager.addListener(_updateLogs);
+ }
+
+ @override
+ void dispose() {
+ gameStateManager.removeListener(_updateLogs);
+ super.dispose();
+ }
+
+ void _updateLogs() {
+ Future.delayed(Duration.zero, () {
+ if (mounted) {
+ setState(() {});
+ }
+ });
+ }
+
+ void toggleExpanded() {
+ setState(() {
+ isExpanded = !isExpanded;
+ });
+ }
+
+ void clearLogs() {
+ gameStateManager.clearLogs();
+ }
+
+ bool isExpanded = false;
+
+ @override
+ Widget build(BuildContext context) {
+ final DatabaseService dbService = DatabaseService();
+ return Container(
+ width: MediaQuery.of(context).size.width,
+ decoration: BoxDecoration(color: Colors.black12),
+ child: GestureDetector(
+ onTap: toggleExpanded,
+ child: AnimatedContainer(
+ duration: const Duration(milliseconds: 200),
+ color: isExpanded ? Colors.black54 : Colors.black12,
+ height: isExpanded ? 160.0 : 48.0, // Adjust sizes as needed
+ child: Column(
+ children: [
+ // Top bar with clear button
+ if (isExpanded)
+ Container(
+ padding: EdgeInsets.symmetric(horizontal: 10.0),
+ color: Colors.blueGrey, // Adjust color as needed
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Text('ゲームステータス', style: TextStyle(color: Colors.white)),
+ IconButton(
+ icon: Icon(Icons.clear, color: Colors.white),
+ onPressed: toggleExpanded,
+ ),
+ ],
+ ),
+ ),
+
+ // Log messages
+ Expanded(
+ child: SingleChildScrollView(
+ child: Wrap(
+ alignment: WrapAlignment.spaceEvenly,
+ children: [
+ Obx(() => Padding(
+ padding: const EdgeInsets.all(4.0),
+ child: GameStatusIndicator(
+ gameStarted: destinationController.isInRog.value,
+ minimized: !isExpanded,
+ ),
+ )),
+ Padding(
+ padding: const EdgeInsets.all(4.0),
+ child: StreamBuilder>(
+ stream: dbService.destinationUpdatesStream,
+ builder: (context, snapshot) {
+ if (snapshot.connectionState ==
+ ConnectionState.waiting) {
+ return const CircularProgressIndicator();
+ } else if (snapshot.hasError) {
+ return LocationVisitedWidget(
+ count: 0,
+ minimized: !isExpanded,
+ );
+ } else if (snapshot.hasData) {
+ return LocationVisitedWidget(
+ count: snapshot.data!.length,
+ minimized: !isExpanded,
+ );
+ } else {
+ return LocationVisitedWidget(
+ count: 0,
+ minimized: !isExpanded,
+ );
+ }
+ },
+ ),
+
+ // child: LocationVisitedWidget(
+ // count:
+ // minimized: !isExpanded,
+ // ),
+ ),
+ Padding(
+ padding: const EdgeInsets.all(4.0),
+ child: ConnectionStatusIndicator(
+ connectionStatus: ConnectionStatus.wifi,
+ minimized: !isExpanded),
+ ) // Expanded view
+ ],
+ ),
+ // child: Obx(
+ // () => DashboardWidget(
+ // gameStarted: destinationController.isInRog.value,
+ // locationsVisited: 3,
+ // isMinimized: false,
+ // ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/widgets/map_widget.dart b/lib/widgets/map_widget.dart
index 5aa3490..1b09ac0 100644
--- a/lib/widgets/map_widget.dart
+++ b/lib/widgets/map_widget.dart
@@ -14,7 +14,7 @@ import 'package:rogapp/utils/database_helper.dart';
import 'package:rogapp/utils/text_util.dart';
import 'package:rogapp/widgets/base_layer_widget.dart';
import 'package:rogapp/widgets/bottom_sheet_new.dart';
-import 'package:rogapp/widgets/debug_widget.dart';
+import 'package:rogapp/widgets/game_state_view.dart';
class MapWidget extends StatelessWidget {
final IndexController indexController = Get.find();
@@ -249,6 +249,7 @@ class MapWidget extends StatelessWidget {
: const Center(child: CircularProgressIndicator()),
],
)),
+ const Positioned(top: 0, left: 0, child: GameStateWidget()),
// const Positioned(
// bottom: 10,
// left: 0,
diff --git a/pubspec.lock b/pubspec.lock
index d414d33..bc80bd5 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -13,10 +13,10 @@ packages:
dependency: transitive
description:
name: archive
- sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b"
+ sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d"
url: "https://pub.dev"
source: hosted
- version: "3.4.9"
+ version: "3.4.10"
args:
dependency: transitive
description:
@@ -45,26 +45,26 @@ packages:
dependency: transitive
description:
name: camera
- sha256: "1f9010f0689774380fbcd7d6b7820a5157e8e97685fa66d619e1d1f58b3fdf93"
+ sha256: "9499cbc2e51d8eb0beadc158b288380037618ce4e30c9acbc4fae1ac3ecb5797"
url: "https://pub.dev"
source: hosted
- version: "0.10.5+5"
+ version: "0.10.5+9"
camera_android:
dependency: transitive
description:
name: camera_android
- sha256: b63304d553dde613ca68fb40aaa76bbbcdbd051683bdbf2019671ec8d9645ce7
+ sha256: "351429510121d179b9aac5a2e8cb525c3cd6c39f4d709c5f72dfb21726e52371"
url: "https://pub.dev"
source: hosted
- version: "0.10.8+14"
+ version: "0.10.8+16"
camera_avfoundation:
dependency: transitive
description:
name: camera_avfoundation
- sha256: "3b6d9f550cfd658c71f34a99509528501e5e5d4fa79f11e3a4d6ef380d8e0254"
+ sha256: "7d0763dfcbf060f56aa254a68c103210280bee9e97bbe4fdef23e257a4f70ab9"
url: "https://pub.dev"
source: hosted
- version: "0.9.13+7"
+ version: "0.9.14"
camera_camera:
dependency: "direct main"
description:
@@ -77,18 +77,18 @@ packages:
dependency: transitive
description:
name: camera_platform_interface
- sha256: "86fd4fc597c6e455265ddb5884feb352d0171ad14b9cdf3aba30da59b25738c4"
+ sha256: e971ebca970f7cfee396f76ef02070b5e441b4aa04942da9c108d725f57bbd32
url: "https://pub.dev"
source: hosted
- version: "2.6.0"
+ version: "2.7.2"
camera_web:
dependency: transitive
description:
name: camera_web
- sha256: d4c2c571c7af04f8b10702ca16bb9ed2a26e64534171e8f75c9349b2c004d8f1
+ sha256: f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d
url: "https://pub.dev"
source: hosted
- version: "0.3.2+3"
+ version: "0.3.2+4"
characters:
dependency: transitive
description:
@@ -117,10 +117,10 @@ packages:
dependency: transitive
description:
name: cli_util
- sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7
+ sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19
url: "https://pub.dev"
source: hosted
- version: "0.4.0"
+ version: "0.4.1"
clock:
dependency: transitive
description:
@@ -165,10 +165,10 @@ packages:
dependency: transitive
description:
name: cross_file
- sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5"
+ sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e
url: "https://pub.dev"
source: hosted
- version: "0.3.3+7"
+ version: "0.3.3+8"
crypto:
dependency: transitive
description:
@@ -245,10 +245,10 @@ packages:
dependency: transitive
description:
name: file_selector_platform_interface
- sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262"
+ sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b
url: "https://pub.dev"
source: hosted
- version: "2.6.1"
+ version: "2.6.2"
file_selector_windows:
dependency: transitive
description:
@@ -257,6 +257,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.9.3+1"
+ fixnum:
+ dependency: transitive
+ description:
+ name: fixnum
+ sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.0"
flutter:
dependency: "direct main"
description: flutter
@@ -290,10 +298,10 @@ packages:
dependency: transitive
description:
name: flutter_keyboard_visibility
- sha256: "4983655c26ab5b959252ee204c2fffa4afeb4413cd030455194ec0caa3b8e7cb"
+ sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8"
url: "https://pub.dev"
source: hosted
- version: "5.4.1"
+ version: "6.0.0"
flutter_keyboard_visibility_linux:
dependency: transitive
description:
@@ -354,26 +362,26 @@ packages:
dependency: "direct main"
description:
name: flutter_map
- sha256: "2b925948b675ef74ca524179fb133dbe0a21741889ccf56ad08fc8dcc38ba94b"
+ sha256: cda8d72135b697f519287258b5294a57ce2f2a5ebf234f0e406aad4dc14c9399
url: "https://pub.dev"
source: hosted
- version: "6.0.1"
+ version: "6.1.0"
flutter_map_location_marker:
dependency: "direct main"
description:
name: flutter_map_location_marker
- sha256: acf9cef24d0bced1fe17e89e5126e75af6b146a1dbd7f784647eef5de40de3d2
+ sha256: a13473c1c2924c023d97fbe93780833cf1656712a6dd72ceb514da569d9feb84
url: "https://pub.dev"
source: hosted
- version: "8.0.2"
+ version: "8.0.4"
flutter_map_marker_cluster:
dependency: "direct main"
description:
name: flutter_map_marker_cluster
- sha256: a7e80bc81d222b224b2081d31ef67dee28ffff9545ab8a82f97faaf85766cfaa
+ sha256: "27360384a0ef5e1a72c3815baa0c3ca5f4e614b969dc0b58f7823346520eeeaf"
url: "https://pub.dev"
source: hosted
- version: "1.3.3"
+ version: "1.3.4"
flutter_map_marker_popup:
dependency: transitive
description:
@@ -423,10 +431,10 @@ packages:
dependency: "direct main"
description:
name: flutter_typeahead
- sha256: "1f6b248bb4f3ebb4cf1ee0354aa23c77be457fb2d26d6847ecc33a917f65e58e"
+ sha256: ef2dd5a505d2d95a5b4c571c81ad2d6e7955f583dddec49064fec57acffd7a96
url: "https://pub.dev"
source: hosted
- version: "5.0.1"
+ version: "5.0.2"
flutter_web_plugins:
dependency: transitive
description: flutter
@@ -460,18 +468,18 @@ packages:
dependency: transitive
description:
name: geolocator_android
- sha256: "741579fa6c9e412984d2bdb2fbaa54e3c3f7587c60aeacfe6e058358a11f40f8"
+ sha256: "30ff8fa384ab6d35965aecc15dfc980e5ebc5f823352c1adfc87dc3d000e8e24"
url: "https://pub.dev"
source: hosted
- version: "4.4.0"
+ version: "4.5.0"
geolocator_apple:
dependency: transitive
description:
name: geolocator_apple
- sha256: ab90ae811c42ec2f6021e01eca71df00dee6ff1e69d2c2dafd4daeb0b793f73d
+ sha256: "79babf44b692ec5e789d322dc736ef71586056e8e6828f747c9e005456b248bf"
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.3.5"
geolocator_platform_interface:
dependency: transitive
description:
@@ -540,10 +548,10 @@ packages:
dependency: "direct main"
description:
name: http
- sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139
+ sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba
url: "https://pub.dev"
source: hosted
- version: "1.1.2"
+ version: "1.2.0"
http_parser:
dependency: transitive
description:
@@ -556,10 +564,10 @@ packages:
dependency: transitive
description:
name: image
- sha256: "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271"
+ sha256: "004a2e90ce080f8627b5a04aecb4cdfac87d2c3f3b520aa291260be5a32c033d"
url: "https://pub.dev"
source: hosted
- version: "4.1.3"
+ version: "4.1.4"
image_gallery_saver:
dependency: "direct main"
description:
@@ -572,34 +580,34 @@ packages:
dependency: "direct main"
description:
name: image_picker
- sha256: "7d7f2768df2a8b0a3cefa5ef4f84636121987d403130e70b17ef7e2cf650ba84"
+ sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd"
url: "https://pub.dev"
source: hosted
- version: "1.0.4"
+ version: "1.0.7"
image_picker_android:
dependency: transitive
description:
name: image_picker_android
- sha256: d6a6e78821086b0b737009b09363018309bbc6de3fd88cc5c26bc2bb44a4957f
+ sha256: "39f2bfe497e495450c81abcd44b62f56c2a36a37a175da7d137b4454977b51b1"
url: "https://pub.dev"
source: hosted
- version: "0.8.8+2"
+ version: "0.8.9+3"
image_picker_for_web:
dependency: transitive
description:
name: image_picker_for_web
- sha256: "50bc9ae6a77eea3a8b11af5eb6c661eeb858fdd2f734c2a4fd17086922347ef7"
+ sha256: e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3
url: "https://pub.dev"
source: hosted
- version: "3.0.1"
+ version: "3.0.2"
image_picker_ios:
dependency: transitive
description:
name: image_picker_ios
- sha256: "76ec722aeea419d03aa915c2c96bf5b47214b053899088c9abb4086ceecf97a7"
+ sha256: fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3
url: "https://pub.dev"
source: hosted
- version: "0.8.8+4"
+ version: "0.8.9+1"
image_picker_linux:
dependency: transitive
description:
@@ -620,10 +628,10 @@ packages:
dependency: transitive
description:
name: image_picker_platform_interface
- sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514
+ sha256: fa4e815e6fcada50e35718727d83ba1c92f1edf95c0b4436554cec301b56233b
url: "https://pub.dev"
source: hosted
- version: "2.9.1"
+ version: "2.9.3"
image_picker_windows:
dependency: transitive
description:
@@ -756,10 +764,10 @@ packages:
dependency: transitive
description:
name: mime
- sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
+ sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
url: "https://pub.dev"
source: hosted
- version: "1.0.4"
+ version: "1.0.5"
modal_bottom_sheet:
dependency: "direct main"
description:
@@ -796,26 +804,26 @@ packages:
dependency: "direct main"
description:
name: path_provider
- sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa
+ sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b
url: "https://pub.dev"
source: hosted
- version: "2.1.1"
+ version: "2.1.2"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
- sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72
+ sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668"
url: "https://pub.dev"
source: hosted
- version: "2.2.1"
+ version: "2.2.2"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
- sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d"
+ sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f"
url: "https://pub.dev"
source: hosted
- version: "2.3.1"
+ version: "2.3.2"
path_provider_linux:
dependency: transitive
description:
@@ -828,10 +836,10 @@ packages:
dependency: transitive
description:
name: path_provider_platform_interface
- sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c"
+ sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev"
source: hosted
- version: "2.1.1"
+ version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
@@ -852,90 +860,114 @@ packages:
dependency: "direct main"
description:
name: permission_handler
- sha256: "860c6b871c94c78e202dc69546d4d8fd84bd59faeb36f8fb9888668a53ff4f78"
+ sha256: "45ff3fbcb99040fde55c528d5e3e6ca29171298a85436274d49c6201002087d6"
url: "https://pub.dev"
source: hosted
- version: "11.1.0"
+ version: "11.2.0"
permission_handler_android:
dependency: transitive
description:
name: permission_handler_android
- sha256: "2f1bec180ee2f5665c22faada971a8f024761f632e93ddc23310487df52dcfa6"
+ sha256: "758284a0976772f9c744d6384fc5dc4834aa61e3f7aa40492927f244767374eb"
url: "https://pub.dev"
source: hosted
- version: "12.0.1"
+ version: "12.0.3"
permission_handler_apple:
dependency: transitive
description:
name: permission_handler_apple
- sha256: "1a816084338ada8d574b1cb48390e6e8b19305d5120fe3a37c98825bacc78306"
+ sha256: c6bf440f80acd2a873d3d91a699e4cc770f86e7e6b576dda98759e8b92b39830
url: "https://pub.dev"
source: hosted
- version: "9.2.0"
+ version: "9.3.0"
permission_handler_html:
dependency: transitive
description:
name: permission_handler_html
- sha256: d96ff56a757b7f04fa825c469d296c5aebc55f743e87bd639fef91a466a24da8
+ sha256: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d"
url: "https://pub.dev"
source: hosted
- version: "0.1.0+1"
+ version: "0.1.1"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
- sha256: d87349312f7eaf6ce0adaf668daf700ac5b06af84338bd8b8574dfbd93ffe1a1
+ sha256: "5c43148f2bfb6d14c5a8162c0a712afe891f2d847f35fcff29c406b37da43c3c"
url: "https://pub.dev"
source: hosted
- version: "4.0.2"
+ version: "4.1.0"
permission_handler_windows:
dependency: transitive
description:
name: permission_handler_windows
- sha256: "1e8640c1e39121128da6b816d236e714d2cf17fac5a105dd6acdd3403a628004"
+ sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e"
url: "https://pub.dev"
source: hosted
- version: "0.2.0"
+ version: "0.2.1"
petitparser:
dependency: transitive
description:
name: petitparser
- sha256: eeb2d1428ee7f4170e2bd498827296a18d4e7fc462b71727d111c0ac7707cfa6
+ sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
url: "https://pub.dev"
source: hosted
- version: "6.0.1"
+ version: "6.0.2"
platform:
dependency: transitive
description:
name: platform
- sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59"
+ sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
url: "https://pub.dev"
source: hosted
- version: "3.1.3"
+ version: "3.1.4"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
- sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8
+ sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.dev"
source: hosted
- version: "2.1.7"
+ version: "2.1.8"
pointer_interceptor:
dependency: transitive
description:
name: pointer_interceptor
- sha256: adf7a637f97c077041d36801b43be08559fd4322d2127b3f20bb7be1b9eebc22
+ sha256: bd18321519718678d5fa98ad3a3359cbc7a31f018554eab80b73d08a7f0c165a
url: "https://pub.dev"
source: hosted
- version: "0.9.3+7"
+ version: "0.10.1"
+ pointer_interceptor_ios:
+ dependency: transitive
+ description:
+ name: pointer_interceptor_ios
+ sha256: "2e73c39452830adc4695757130676a39412a3b7f3c34e3f752791b5384770877"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.10.0+2"
+ pointer_interceptor_platform_interface:
+ dependency: transitive
+ description:
+ name: pointer_interceptor_platform_interface
+ sha256: "0597b0560e14354baeb23f8375cd612e8bd4841bf8306ecb71fcd0bb78552506"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.10.0+1"
+ pointer_interceptor_web:
+ dependency: transitive
+ description:
+ name: pointer_interceptor_web
+ sha256: "9386e064097fd16419e935c23f08f35b58e6aaec155dd39bd6a003b88f9c14b4"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.10.1+2"
pointycastle:
dependency: transitive
description:
name: pointycastle
- sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c"
+ sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29"
url: "https://pub.dev"
source: hosted
- version: "3.7.3"
+ version: "3.7.4"
polylabel:
dependency: transitive
description:
@@ -976,14 +1008,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.0+2"
- quiver:
- dependency: transitive
- description:
- name: quiver
- sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
- url: "https://pub.dev"
- source: hosted
- version: "3.2.1"
rename:
dependency: "direct main"
description:
@@ -1020,10 +1044,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_foundation
- sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7"
+ sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c"
url: "https://pub.dev"
source: hosted
- version: "2.3.4"
+ version: "2.3.5"
shared_preferences_linux:
dependency: transitive
description:
@@ -1036,10 +1060,10 @@ packages:
dependency: transitive
description:
name: shared_preferences_platform_interface
- sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a
+ sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b"
url: "https://pub.dev"
source: hosted
- version: "2.3.1"
+ version: "2.3.2"
shared_preferences_web:
dependency: transitive
description:
@@ -1081,18 +1105,18 @@ packages:
dependency: "direct main"
description:
name: sqflite
- sha256: "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a"
+ sha256: c2c32eb0c74021d987336522acc3b6bf0082fbd0c540c36a9cf4ddb8ba891ddc
url: "https://pub.dev"
source: hosted
- version: "2.3.0"
+ version: "2.3.1"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
- sha256: bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6
+ sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5"
url: "https://pub.dev"
source: hosted
- version: "2.5.0+2"
+ version: "2.5.3"
stack_trace:
dependency: transitive
description:
@@ -1137,10 +1161,10 @@ packages:
dependency: transitive
description:
name: synchronized
- sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
+ sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558"
url: "https://pub.dev"
source: hosted
- version: "3.1.0"
+ version: "3.1.0+1"
term_glyph:
dependency: transitive
description:
@@ -1201,34 +1225,34 @@ packages:
dependency: "direct main"
description:
name: url_launcher
- sha256: b1c9e98774adf8820c96fbc7ae3601231d324a7d5ebd8babe27b6dfac91357ba
+ sha256: c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c
url: "https://pub.dev"
source: hosted
- version: "6.2.1"
+ version: "6.2.4"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
- sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def"
+ sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f"
url: "https://pub.dev"
source: hosted
- version: "6.2.0"
+ version: "6.2.2"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
- sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3
+ sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03"
url: "https://pub.dev"
source: hosted
- version: "6.2.1"
+ version: "6.2.4"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
- sha256: "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd"
+ sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811
url: "https://pub.dev"
source: hosted
- version: "3.1.0"
+ version: "3.1.1"
url_launcher_macos:
dependency: transitive
description:
@@ -1241,34 +1265,34 @@ packages:
dependency: transitive
description:
name: url_launcher_platform_interface
- sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50"
+ sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f
url: "https://pub.dev"
source: hosted
- version: "2.2.0"
+ version: "2.3.1"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
- sha256: "138bd45b3a456dcfafc46d1a146787424f8d2edfbf2809c9324361e58f851cf7"
+ sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b
url: "https://pub.dev"
source: hosted
- version: "2.2.1"
+ version: "2.2.3"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
- sha256: "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc"
+ sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7
url: "https://pub.dev"
source: hosted
- version: "3.1.0"
+ version: "3.1.1"
uuid:
dependency: transitive
description:
name: uuid
- sha256: df5a4d8f22ee4ccd77f8839ac7cb274ebc11ef9adcce8b92be14b797fe889921
+ sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8
url: "https://pub.dev"
source: hosted
- version: "4.2.1"
+ version: "4.3.3"
vector_math:
dependency: "direct main"
description:
@@ -1297,10 +1321,10 @@ packages:
dependency: transitive
description:
name: win32
- sha256: "7c99c0e1e2fa190b48d25c81ca5e42036d5cac81430ef249027d97b0935c553f"
+ sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8"
url: "https://pub.dev"
source: hosted
- version: "5.1.0"
+ version: "5.2.0"
wkt_parser:
dependency: transitive
description:
@@ -1313,18 +1337,18 @@ packages:
dependency: transitive
description:
name: xdg_directories
- sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2"
+ sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
url: "https://pub.dev"
source: hosted
- version: "1.0.3"
+ version: "1.0.4"
xml:
dependency: transitive
description:
name: xml
- sha256: af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556
+ sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
url: "https://pub.dev"
source: hosted
- version: "6.4.2"
+ version: "6.5.0"
yaml:
dependency: transitive
description:
@@ -1334,5 +1358,5 @@ packages:
source: hosted
version: "3.1.2"
sdks:
- dart: ">=3.2.0 <4.0.0"
- flutter: ">=3.16.0"
+ dart: ">=3.2.3 <4.0.0"
+ flutter: ">=3.16.6"
diff --git a/pubspec.yaml b/pubspec.yaml
index f2ada7e..905bf60 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -15,7 +15,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
-version: 1.0.30+30
+version: 1.0.31+31
environment:
sdk: ">=3.1.0 <4.0.0"