feat: add device authentication, place gates support, and PiP navigation features

This commit is contained in:
Hamza-Ayed
2026-09-19 12:34:26 +03:00
parent 55830beee8
commit ce896df30a
86 changed files with 3414 additions and 341 deletions
@@ -48,4 +48,39 @@ class ArabicSearchNormalizer {
return false;
}
static final Set<String> _categoryKeywords = {
// Single-word categories
'مسجد', 'جامع', 'مصلى', 'صلاة',
'مطعم', 'مطاعم', 'شاورما', 'مشاوي', 'سناك', 'فلافل', 'برغر',
'دكان', 'دكاكين', 'سوبرماركت', 'ماركت', 'بقالة', 'بقال', 'تموين', 'هايبر',
'مخبز', 'مخابز', 'افران', 'فرن', 'معجنات', 'حلويات', 'كعك',
'كافيه', 'كوفي', 'مقهى', 'قهوة', 'كافتيريا',
'صيدلية', 'صيدليات', 'دواء',
'مستشفى', 'مستشفيات', 'عيادة', 'عيادات',
'كازية', 'بنزين', 'وقود', 'غاز',
'بنك', 'بنوك', 'صراف', 'مصرف',
'مدرسة', 'مدارس', 'جامعة', 'جامعات', 'كلية', 'روضة',
'فندق', 'فنادق', 'منتجع',
// Multi-word compound category phrases
'محطة بنزين',
'محطة وقود',
'محطة غاز',
'سوبر ماركت',
'ميني ماركت',
'شقق فندقية',
'مركز صحي',
'وجبات سريعة',
'صراف الي',
'كوفي شوب',
}.map((k) => normalize(k)).toSet();
/// Returns true if the query is asking for a general POI category
/// (e.g. "مطعم", "مخبز", "سوبرماركت", "محطة بنزين") rather than a specific proper name (e.g. "مطعم هاشم", "سيتي مول").
static bool isCategoryQuery(String query) {
final norm = normalize(query);
if (norm.isEmpty) return false;
return _categoryKeywords.contains(norm);
}
}