未確認だが問題回避のためプッシュ
This commit is contained in:
@ -166,6 +166,8 @@ class IndexController extends GetxController {
|
||||
return LatLngBounds(LatLng(x1!, y1!), LatLng(x0!, y0!));
|
||||
}
|
||||
|
||||
// 要検討:エラーハンドリングが行われていますが、エラーメッセージをローカライズすることを検討してください。
|
||||
//
|
||||
void login(String email, String password, BuildContext context) {
|
||||
AuthService.login(email, password).then((value) {
|
||||
print("------- logged in user details ######## $value ###### --------");
|
||||
@ -189,6 +191,8 @@ class IndexController extends GetxController {
|
||||
});
|
||||
}
|
||||
|
||||
// 要検討:エラーハンドリングが行われていますが、エラーメッセージをローカライズすることを検討してください。
|
||||
//
|
||||
void changePassword(
|
||||
String oldpassword, String newpassword, BuildContext context) {
|
||||
String token = currentUser[0]['token'];
|
||||
@ -230,6 +234,8 @@ class IndexController extends GetxController {
|
||||
cats.clear();
|
||||
}
|
||||
|
||||
// 要検討:エラーハンドリングが行われていますが、エラーメッセージをローカライズすることを検討してください。
|
||||
//
|
||||
void register(String email, String password, BuildContext context) {
|
||||
AuthService.register(email, password).then((value) {
|
||||
if (value.isNotEmpty) {
|
||||
@ -345,14 +351,20 @@ class IndexController extends GetxController {
|
||||
|
||||
// 2024-04-03 Akira .. Update the code . See ticket 2800.
|
||||
//
|
||||
// 2024-4-8 Akira : See 2809
|
||||
// IndexControllerクラスでは、Future.delayedの呼び出しをunawaitedで囲んで、非同期処理の結果を待たずに先に進むようにしました。これにより、メモリリークを防ぐことができます
|
||||
//
|
||||
// 要検討:Future.delayedを使用して非同期処理を待たずに先に進むようにしていますが、これによってメモリリークが発生する可能性があります。非同期処理の結果を適切に処理することを検討してください。
|
||||
//
|
||||
void loadLocationsBound() async {
|
||||
if (isCustomAreaSelected.value == true) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Akira 追加:2024-4-6 #2800
|
||||
await waitForMapControllerReady(); // MapControllerの初期化が完了するまで待機
|
||||
//await waitForMapControllerReady(); // MapControllerの初期化が完了するまで待機
|
||||
// Akira 追加:2024-4-6 #2800
|
||||
// ==> remove 2024-4-8
|
||||
|
||||
locations.clear();
|
||||
String cat = currentCat.isNotEmpty ? currentCat[0] : "";
|
||||
@ -375,22 +387,25 @@ class IndexController extends GetxController {
|
||||
|
||||
isLoading.value = true; // ローディング状態をtrueに設定
|
||||
|
||||
Future.delayed(const Duration(seconds: 1), () async {
|
||||
// unawaited( Future.delayed(const Duration(seconds: 1), () async {
|
||||
// remove
|
||||
|
||||
//print("bounds --- (${bounds.southWest.latitude},${bounds.southWest.longitude}),(${bounds.northWest.latitude},${bounds.northWest.longitude}),(${bounds.northEast.latitude},${bounds.northEast.longitude}),(${bounds.southEast.latitude},${bounds.southEast.longitude})");
|
||||
|
||||
var value = await LocationService.loadLocationsBound(
|
||||
bounds.southWest.latitude,
|
||||
bounds.southWest.longitude,
|
||||
bounds.northWest.latitude,
|
||||
bounds.northWest.longitude,
|
||||
bounds.northEast.latitude,
|
||||
bounds.northEast.longitude,
|
||||
bounds.southEast.latitude,
|
||||
bounds.southEast.longitude,
|
||||
cat
|
||||
);
|
||||
if ( value == null ) {
|
||||
// 要検討:APIからのレスポンスがnullの場合のエラーハンドリングが不十分です。適切なエラーメッセージを表示するなどの処理を追加してください。
|
||||
try {
|
||||
final value = await LocationService.loadLocationsBound(
|
||||
bounds.southWest.latitude,
|
||||
bounds.southWest.longitude,
|
||||
bounds.northWest.latitude,
|
||||
bounds.northWest.longitude,
|
||||
bounds.northEast.latitude,
|
||||
bounds.northEast.longitude,
|
||||
bounds.southEast.latitude,
|
||||
bounds.southEast.longitude,
|
||||
cat
|
||||
);
|
||||
if (value == null) {
|
||||
// APIからのレスポンスがnullの場合
|
||||
print("LocationService.loadLocationsBound からの回答がnullのため、マップをリロード");
|
||||
//DestinationController destinationController = Get.find<DestinationController>(); // 追加
|
||||
@ -399,32 +414,41 @@ class IndexController extends GetxController {
|
||||
// destinationController.fixMapBound(tk); // 追加
|
||||
//} // 追加
|
||||
return;
|
||||
}
|
||||
isLoading.value = false; // ローディング状態をfalseに設定
|
||||
|
||||
if (value!=null && value.features.isEmpty) {
|
||||
}
|
||||
isLoading.value = false; // ローディング状態をfalseに設定
|
||||
|
||||
if (value != null && value.features.isEmpty) {
|
||||
if (showPopup == false) {
|
||||
return;
|
||||
}
|
||||
Get.snackbar(
|
||||
"Too many Points",
|
||||
"please zoom in",
|
||||
icon: const Icon(Icons.assistant_photo_outlined, size: 40.0, color: Colors.blue),
|
||||
icon: const Icon(
|
||||
Icons.assistant_photo_outlined, size: 40.0, color: Colors.blue),
|
||||
snackPosition: SnackPosition.TOP,
|
||||
duration: const Duration(seconds: 3),
|
||||
backgroundColor: Colors.yellow,
|
||||
);
|
||||
showPopup = false;
|
||||
}
|
||||
if (value!=null && value.features.isNotEmpty) {
|
||||
if (value != null && value.features.isNotEmpty) {
|
||||
locations.add(value);
|
||||
}
|
||||
|
||||
});
|
||||
} catch ( e) {
|
||||
print("Error in loadLocationsBound: $e");
|
||||
// エラーが発生した場合のリトライ処理や適切なエラーメッセージの表示を行う
|
||||
// 例えば、一定時間後に再度loadLocationsBound()を呼び出すなど
|
||||
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
//===Akira 追加:2024-4-6 #2800
|
||||
// 要検討:MapControllerの初期化が完了するまで待機していますが、タイムアウトを設定することを検討してください。
|
||||
// 初期化に時間がかかりすぎる場合、ユーザーにわかりやすいメッセージを表示するようにしてください。
|
||||
//
|
||||
Future<void> waitForMapControllerReady() async {
|
||||
if (!isMapControllerReady.value) {
|
||||
await Future.doWhile(() async {
|
||||
|
||||
@ -22,6 +22,9 @@ import 'package:rogapp/utils/location_controller.dart';
|
||||
// 全体的に、index_page.dartはアプリのメインページの構造を定義し、他のコンポーネントやページへの橋渡しを行っているファイルです。
|
||||
//
|
||||
|
||||
// 要検討:GPSデータの表示アイコンをタップした際のエラーハンドリングを追加することをお勧めします。
|
||||
// MapWidgetとListWidgetの切り替えにObxを使用していますが、パフォーマンスを考慮して、必要な場合にのみウィジェットを再構築するようにしてください。
|
||||
// DestinationControllerのisSimulationModeを使用してGPS信号の強弱をシミュレーションしていますが、本番環境では適切に実際のGPS信号を使用するようにしてください。
|
||||
|
||||
// IndexPageクラスは、GetView<IndexController>を継承したStatelessWidgetです。このクラスは、アプリのメインページを表すウィジェットです。
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user