Update: 2026-08-07 01:53:09
This commit is contained in:
@@ -4,6 +4,7 @@ import 'dart:io';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_overlay_window/flutter_overlay_window.dart';
|
||||
import 'package:trip_overlay_plugin/trip_overlay_plugin.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:intaleq_maps/intaleq_maps.dart';
|
||||
import 'package:geolocator/geolocator.dart';
|
||||
@@ -656,6 +657,12 @@ class OrderRequestController extends GetxController
|
||||
if (takenRideId == myCurrentRideId && whoTookIt != myDriverId) {
|
||||
_isRideTakenHandled = true;
|
||||
endTimer();
|
||||
|
||||
// إغلاق نافذة الأوفرلي إن كانت معروضة فوق تطبيق آخر. كانت
|
||||
// الصفحة تُغلق وحدها وتبقى النافذة معلّقة بعدّاد يعمل على رحلة
|
||||
// لم تعد موجودة. نغلق النافذتين: فلاتر (السوكِت) والأصلية (FCM).
|
||||
_closeAnyOverlay();
|
||||
|
||||
// 1. حذف الإشعار من شريط التنبيهات فوراً
|
||||
NotificationController().cancelOrderNotification();
|
||||
if (Get.isSnackbarOpen) Get.closeCurrentSnackbar();
|
||||
@@ -684,6 +691,22 @@ class OrderRequestController extends GetxController
|
||||
}
|
||||
}
|
||||
|
||||
/// إغلاق أي نافذة عرض معروضة، أياً كان نظامها. لا يرمي أبداً: فشل
|
||||
/// الإغلاق يجب ألا يمنع بقية معالجة "أخذها سائق آخر".
|
||||
void _closeAnyOverlay() async {
|
||||
if (!Platform.isAndroid) return;
|
||||
try {
|
||||
if (await FlutterOverlayWindow.isActive()) {
|
||||
await FlutterOverlayWindow.closeOverlay();
|
||||
}
|
||||
if (await TripOverlayPlugin.isOverlayActive()) {
|
||||
await TripOverlayPlugin.hideOverlay();
|
||||
}
|
||||
} catch (e) {
|
||||
Log.print("⚠️ closeAnyOverlay: $e");
|
||||
}
|
||||
}
|
||||
|
||||
void _checkOverlay() async {
|
||||
if (Platform.isAndroid && await FlutterOverlayWindow.isActive()) {
|
||||
await FlutterOverlayWindow.closeOverlay();
|
||||
|
||||
Reference in New Issue
Block a user