From 30fea7cf8a299c342155fd30b54ddb5b34040e79 Mon Sep 17 00:00:00 2001 From: Mohamed Nouffer Date: Tue, 12 Sep 2023 22:08:03 +0530 Subject: [PATCH] added reset button and fix history --- .../destination/destination_controller.dart | 17 +- lib/pages/drawer/drawer_page.dart | 195 +++++++++++------- 2 files changed, 128 insertions(+), 84 deletions(-) diff --git a/lib/pages/destination/destination_controller.dart b/lib/pages/destination/destination_controller.dart index e14d476..96a236e 100644 --- a/lib/pages/destination/destination_controller.dart +++ b/lib/pages/destination/destination_controller.dart @@ -335,8 +335,6 @@ class DestinationController extends GetxController { is_gps_selected.value = true; skip_gps = false; - saveGameState(); - _start = 0; chekcs = 0; rogaining_counted.value = false; @@ -348,16 +346,21 @@ class DestinationController extends GetxController { print("===== last goal : $last_goal_at ====="); } + //deleteDBDestinations(); + + // currentSelectedDestinations.forEach((element) { + // deleteDestination(element); + // }); + } + + void deleteAllDestinations() { + DatabaseHelper db = DatabaseHelper.instance; db.deleteAllDestinations().then((value) { PopulateDestinations(); startGPSTimer(); startGame(); //initGPS(); }); - - // currentSelectedDestinations.forEach((element) { - // deleteDestination(element); - // }); } void openCamera(BuildContext context) { @@ -824,7 +827,7 @@ class DestinationController extends GetxController { }); } - void deleteAllDestinations() { + void deleteDBDestinations() { DatabaseHelper db = DatabaseHelper.instance; db.deleteAllDestinations().then((value) { PopulateDestinations(); diff --git a/lib/pages/drawer/drawer_page.dart b/lib/pages/drawer/drawer_page.dart index 9cf21a0..9156aac 100644 --- a/lib/pages/drawer/drawer_page.dart +++ b/lib/pages/drawer/drawer_page.dart @@ -1,13 +1,13 @@ - import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:rogapp/pages/destination/destination_controller.dart'; import 'package:rogapp/pages/index/index_controller.dart'; import 'package:rogapp/routes/app_pages.dart'; import 'package:rogapp/services/auth_service.dart'; import 'package:url_launcher/url_launcher.dart'; class DrawerPage extends StatelessWidget { - DrawerPage({ Key? key }) : super(key: key); + DrawerPage({Key? key}) : super(key: key); final IndexController indexController = Get.find(); @@ -27,71 +27,109 @@ class DrawerPage extends StatelessWidget { Container( height: 100, color: Colors.amber, - child: Obx(() => - Center( - child: Padding( - padding: const EdgeInsets.all(8.0), - child: - indexController.currentUser.isEmpty ? - Flexible(child: Text("drawer_title".tr, style: const TextStyle(color: Colors.black, fontSize: 20),)) - : - Text(indexController.currentUser[0]['user']['email'], style: const TextStyle(color: Colors.black, fontSize: 20),), - ), - ) - ), + child: Obx(() => Center( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: indexController.currentUser.isEmpty + ? Flexible( + child: Text( + "drawer_title".tr, + style: const TextStyle( + color: Colors.black, fontSize: 20), + )) + : Text( + indexController.currentUser[0]['user']['email'], + style: const TextStyle( + color: Colors.black, fontSize: 20), + ), + ), + )), ), - Obx(() => - indexController.currentUser.isEmpty ? - ListTile( - leading: const Icon(Icons.login), - title: Text("login".tr), - onTap: (){ - Get.toNamed(AppPages.LOGIN); - }, - ) : - ListTile( - leading: const Icon(Icons.login), - title: Text("logout".tr), - onTap: (){ - indexController.logout(); - Get.toNamed(AppPages.LOGIN); - }, - ) - ), - indexController.currentUser.isNotEmpty ? - ListTile( - leading: const Icon(Icons.password), - title: Text("change_password".tr), - onTap: (){ - Get.toNamed(AppPages.CHANGE_PASSWORD); - }, - ) : - const SizedBox(width: 0, height: 0,), - indexController.currentUser.isEmpty ? - ListTile( - leading: const Icon(Icons.person), - title: Text("sign_up".tr), - onTap: (){ - Get.toNamed(AppPages.REGISTER); - }, - ) : - const SizedBox(width: 0, height: 0,), - indexController.currentUser.isNotEmpty ? - ListTile( - leading: const Icon(Icons.delete_forever), - title: Text("delete_account".tr), - onTap: (){ - String _token = indexController.currentUser[0]['token']; - AuthService.deleteUser(_token).then((value){ - if(value.isNotEmpty){ - indexController.logout(); - Get.toNamed(AppPages.TRAVEL); - Get.snackbar("accounted_deleted".tr, "account_deleted_message".tr); - } - }); - }, - ) : - const SizedBox(width: 0, height: 0,), + Obx(() => indexController.currentUser.isEmpty + ? ListTile( + leading: const Icon(Icons.login), + title: Text("login".tr), + onTap: () { + Get.toNamed(AppPages.LOGIN); + }, + ) + : ListTile( + leading: const Icon(Icons.login), + title: Text("logout".tr), + onTap: () { + indexController.logout(); + Get.toNamed(AppPages.LOGIN); + }, + )), + indexController.currentUser.isNotEmpty + ? ListTile( + leading: const Icon(Icons.password), + title: Text("change_password".tr), + onTap: () { + Get.toNamed(AppPages.CHANGE_PASSWORD); + }, + ) + : const SizedBox( + width: 0, + height: 0, + ), + indexController.currentUser.isEmpty + ? ListTile( + leading: const Icon(Icons.person), + title: Text("sign_up".tr), + onTap: () { + Get.toNamed(AppPages.REGISTER); + }, + ) + : const SizedBox( + width: 0, + height: 0, + ), + indexController.currentUser.isNotEmpty + ? ListTile( + leading: const Icon(Icons.password), + title: const Text("リセット"), + onTap: () { + Get.defaultDialog( + title: "よろしいですか、リセットしますか?", + middleText: "これにより、すべてのゲーム データが削除され、すべての状態が削除されます", + textConfirm: "確認する", + textCancel: "キャンセルする", + onCancel: () => Get.back(), + onConfirm: () { + DestinationController destinationController = + Get.find(); + destinationController.resetRogaining(); + destinationController.deleteDBDestinations(); + Get.back(); + }, + ); + }, + ) + : const SizedBox( + width: 0, + height: 0, + ), + indexController.currentUser.isNotEmpty + ? ListTile( + leading: const Icon(Icons.delete_forever), + title: Text("delete_account".tr), + onTap: () { + String _token = indexController.currentUser[0]['token']; + AuthService.deleteUser(_token).then((value) { + if (value.isNotEmpty) { + indexController.logout(); + Get.toNamed(AppPages.TRAVEL); + Get.snackbar("accounted_deleted".tr, + "account_deleted_message".tr); + } + }); + }, + ) + : const SizedBox( + width: 0, + height: 0, + ), // ListTile( // leading: const Icon(Icons.person), // title: Text("profile".tr), @@ -107,19 +145,22 @@ class DrawerPage extends StatelessWidget { // title: Text("point_rank".tr), // onTap: (){}, // ), - indexController.currentUser.isNotEmpty ? - ListTile( - leading: const Icon(Icons.featured_video), - title: Text("rog_web".tr), - onTap: (){ - _launchURL("https://www.gifuai.net/?page_id=17397"); - }, - ) : - const SizedBox(width: 0, height: 0,), + indexController.currentUser.isNotEmpty + ? ListTile( + leading: const Icon(Icons.featured_video), + title: Text("rog_web".tr), + onTap: () { + _launchURL("https://www.gifuai.net/?page_id=17397"); + }, + ) + : const SizedBox( + width: 0, + height: 0, + ), ListTile( leading: const Icon(Icons.privacy_tip), title: Text("privacy".tr), - onTap: (){ + onTap: () { _launchURL("https://rogaining.sumasen.net/api/privacy/"); }, ) @@ -138,4 +179,4 @@ class DrawerPage extends StatelessWidget { ), ); } -} \ No newline at end of file +}