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;
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();

View File

@ -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<IndexController>();
@ -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>();
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/");
},
)