diff --git a/lib/pangea/analytics_data/analytics_data_service.dart b/lib/pangea/analytics_data/analytics_data_service.dart index 6fec64bca..d8cae3cef 100644 --- a/lib/pangea/analytics_data/analytics_data_service.dart +++ b/lib/pangea/analytics_data/analytics_data_service.dart @@ -352,8 +352,7 @@ class AnalyticsDataService { final existing = cleaned[canonical]; if (existing != null) { existing.merge(entry); - } else if (!blocked.contains(canonical) && - canonical.category != 'other') { + } else if (!blocked.contains(canonical) && !canonical.isInvalid) { cleaned[canonical] = entry; } } diff --git a/lib/pangea/analytics_details_popup/vocab_analytics_list_view.dart b/lib/pangea/analytics_details_popup/vocab_analytics_list_view.dart index 73ec8ccd5..91b5b5be0 100644 --- a/lib/pangea/analytics_details_popup/vocab_analytics_list_view.dart +++ b/lib/pangea/analytics_details_popup/vocab_analytics_list_view.dart @@ -33,7 +33,7 @@ class VocabAnalyticsListView extends StatelessWidget { controller.vocab?.where(_vocabFilter).sorted(_sortBySearch).toList(); bool _vocabFilter(ConstructUses use) => - use.lemma.isNotEmpty && _levelFilter(use) && _searchFilter(use); + _levelFilter(use) && _searchFilter(use); bool _levelFilter(ConstructUses use) { if (controller.selectedConstructLevel == null) { diff --git a/lib/pangea/constructs/construct_identifier.dart b/lib/pangea/constructs/construct_identifier.dart index e95b482b5..b372493ac 100644 --- a/lib/pangea/constructs/construct_identifier.dart +++ b/lib/pangea/constructs/construct_identifier.dart @@ -194,5 +194,6 @@ class ConstructIdentifier { (type == ConstructTypeEnum.morph && MorphFeaturesEnumExtension.fromString(category) == MorphFeaturesEnum.Unknown) || - category == 'other'; + category == 'other' || + lemma.isEmpty; }