added reset button and fix history

This commit is contained in:
Mohamed Nouffer
2023-09-12 22:08:03 +05:30
parent f64ac1ccfd
commit 30fea7cf8a
2 changed files with 128 additions and 84 deletions

View File

@ -335,8 +335,6 @@ class DestinationController extends GetxController {
is_gps_selected.value = true; is_gps_selected.value = true;
skip_gps = false; skip_gps = false;
saveGameState();
_start = 0; _start = 0;
chekcs = 0; chekcs = 0;
rogaining_counted.value = false; rogaining_counted.value = false;
@ -348,16 +346,21 @@ class DestinationController extends GetxController {
print("===== last goal : $last_goal_at ====="); print("===== last goal : $last_goal_at =====");
} }
//deleteDBDestinations();
// currentSelectedDestinations.forEach((element) {
// deleteDestination(element);
// });
}
void deleteAllDestinations() {
DatabaseHelper db = DatabaseHelper.instance;
db.deleteAllDestinations().then((value) { db.deleteAllDestinations().then((value) {
PopulateDestinations(); PopulateDestinations();
startGPSTimer(); startGPSTimer();
startGame(); startGame();
//initGPS(); //initGPS();
}); });
// currentSelectedDestinations.forEach((element) {
// deleteDestination(element);
// });
} }
void openCamera(BuildContext context) { void openCamera(BuildContext context) {
@ -824,7 +827,7 @@ class DestinationController extends GetxController {
}); });
} }
void deleteAllDestinations() { void deleteDBDestinations() {
DatabaseHelper db = DatabaseHelper.instance; DatabaseHelper db = DatabaseHelper.instance;
db.deleteAllDestinations().then((value) { db.deleteAllDestinations().then((value) {
PopulateDestinations(); PopulateDestinations();

View File

@ -1,13 +1,13 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.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/pages/index/index_controller.dart';
import 'package:rogapp/routes/app_pages.dart'; import 'package:rogapp/routes/app_pages.dart';
import 'package:rogapp/services/auth_service.dart'; import 'package:rogapp/services/auth_service.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
class DrawerPage extends StatelessWidget { class DrawerPage extends StatelessWidget {
DrawerPage({ Key? key }) : super(key: key); DrawerPage({Key? key}) : super(key: key);
final IndexController indexController = Get.find<IndexController>(); final IndexController indexController = Get.find<IndexController>();
@ -27,71 +27,109 @@ class DrawerPage extends StatelessWidget {
Container( Container(
height: 100, height: 100,
color: Colors.amber, color: Colors.amber,
child: Obx(() => child: Obx(() => Center(
Center( child: Padding(
child: Padding( padding: const EdgeInsets.all(8.0),
padding: const EdgeInsets.all(8.0), child: indexController.currentUser.isEmpty
child: ? Flexible(
indexController.currentUser.isEmpty ? child: Text(
Flexible(child: Text("drawer_title".tr, style: const TextStyle(color: Colors.black, fontSize: 20),)) "drawer_title".tr,
: style: const TextStyle(
Text(indexController.currentUser[0]['user']['email'], style: const TextStyle(color: Colors.black, fontSize: 20),), color: Colors.black, fontSize: 20),
), ))
) : Text(
), indexController.currentUser[0]['user']['email'],
style: const TextStyle(
color: Colors.black, fontSize: 20),
),
),
)),
), ),
Obx(() => Obx(() => indexController.currentUser.isEmpty
indexController.currentUser.isEmpty ? ? ListTile(
ListTile( leading: const Icon(Icons.login),
leading: const Icon(Icons.login), title: Text("login".tr),
title: Text("login".tr), onTap: () {
onTap: (){ Get.toNamed(AppPages.LOGIN);
Get.toNamed(AppPages.LOGIN); },
}, )
) : : ListTile(
ListTile( leading: const Icon(Icons.login),
leading: const Icon(Icons.login), title: Text("logout".tr),
title: Text("logout".tr), onTap: () {
onTap: (){ indexController.logout();
indexController.logout(); Get.toNamed(AppPages.LOGIN);
Get.toNamed(AppPages.LOGIN); },
}, )),
) indexController.currentUser.isNotEmpty
), ? ListTile(
indexController.currentUser.isNotEmpty ? leading: const Icon(Icons.password),
ListTile( title: Text("change_password".tr),
leading: const Icon(Icons.password), onTap: () {
title: Text("change_password".tr), Get.toNamed(AppPages.CHANGE_PASSWORD);
onTap: (){ },
Get.toNamed(AppPages.CHANGE_PASSWORD); )
}, : const SizedBox(
) : width: 0,
const SizedBox(width: 0, height: 0,), height: 0,
indexController.currentUser.isEmpty ? ),
ListTile( indexController.currentUser.isEmpty
leading: const Icon(Icons.person), ? ListTile(
title: Text("sign_up".tr), leading: const Icon(Icons.person),
onTap: (){ title: Text("sign_up".tr),
Get.toNamed(AppPages.REGISTER); onTap: () {
}, Get.toNamed(AppPages.REGISTER);
) : },
const SizedBox(width: 0, height: 0,), )
indexController.currentUser.isNotEmpty ? : const SizedBox(
ListTile( width: 0,
leading: const Icon(Icons.delete_forever), height: 0,
title: Text("delete_account".tr), ),
onTap: (){ indexController.currentUser.isNotEmpty
String _token = indexController.currentUser[0]['token']; ? ListTile(
AuthService.deleteUser(_token).then((value){ leading: const Icon(Icons.password),
if(value.isNotEmpty){ title: const Text("リセット"),
indexController.logout(); onTap: () {
Get.toNamed(AppPages.TRAVEL); Get.defaultDialog(
Get.snackbar("accounted_deleted".tr, "account_deleted_message".tr); title: "よろしいですか、リセットしますか?",
} middleText: "これにより、すべてのゲーム データが削除され、すべての状態が削除されます",
}); textConfirm: "確認する",
}, textCancel: "キャンセルする",
) : onCancel: () => Get.back(),
const SizedBox(width: 0, height: 0,), onConfirm: () {
DestinationController destinationController =
Get.find<DestinationController>();
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( // ListTile(
// leading: const Icon(Icons.person), // leading: const Icon(Icons.person),
// title: Text("profile".tr), // title: Text("profile".tr),
@ -107,19 +145,22 @@ class DrawerPage extends StatelessWidget {
// title: Text("point_rank".tr), // title: Text("point_rank".tr),
// onTap: (){}, // onTap: (){},
// ), // ),
indexController.currentUser.isNotEmpty ? indexController.currentUser.isNotEmpty
ListTile( ? ListTile(
leading: const Icon(Icons.featured_video), leading: const Icon(Icons.featured_video),
title: Text("rog_web".tr), title: Text("rog_web".tr),
onTap: (){ onTap: () {
_launchURL("https://www.gifuai.net/?page_id=17397"); _launchURL("https://www.gifuai.net/?page_id=17397");
}, },
) : )
const SizedBox(width: 0, height: 0,), : const SizedBox(
width: 0,
height: 0,
),
ListTile( ListTile(
leading: const Icon(Icons.privacy_tip), leading: const Icon(Icons.privacy_tip),
title: Text("privacy".tr), title: Text("privacy".tr),
onTap: (){ onTap: () {
_launchURL("https://rogaining.sumasen.net/api/privacy/"); _launchURL("https://rogaining.sumasen.net/api/privacy/");
}, },
) )