Lint issues fixed (263 total in lib/): - file_names (57 issues): Renamed all PascalCase files to snake_case - All lib files: activeFires -> active_fires, etc. - All models: appState -> app_state, fireMapState -> fire_map_state, etc. - All redux files: appActions -> app_actions, appReducer -> app_reducer, etc. - Updated all import statements and exports across the codebase - Fixed unused imports, exports, and references in rebuilt modules Style fixes (16 issues): - prefer_generic_function_type_aliases (2): Updated typedef syntax from old to new - unnecessary_nullable_for_final_variable_declarations (2): Removed ? from non-nullable types - unnecessary_import: Removed duplicate meta/meta import - unnecessary_parenthesis: Removed unnecessary parentheses in expressions - avoid_renaming_method_parameters: Renamed parameter 'o' to 'other' - prefer_const_declarations: Changed final to const for constant values - use_key_in_widget_constructors (3): Added key parameters to widget constructors - sort_child_properties_last (1): Reordered children property to end Verification: - APK builds successfully (146 MB) - Reduced from 106 lint issues to 49 high-priority issues - Total file_names issues: 0 (down from 57) - All imports and exports updated correctly
44 lines
1 KiB
Dart
44 lines
1 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:flutter/services.dart' show rootBundle;
|
|
|
|
final RegExp esRegExp = RegExp('^es-');
|
|
|
|
String getFallbackLang(String lang) {
|
|
if (lang == 'ast' ||
|
|
lang == 'gl' ||
|
|
lang == 'eu' ||
|
|
lang == 'es' ||
|
|
lang == 'ca' ||
|
|
esRegExp.allMatches(lang).isNotEmpty) {
|
|
return 'es';
|
|
}
|
|
return 'en';
|
|
}
|
|
|
|
Future<String> getFileNameOfLang(
|
|
{required String dir,
|
|
required String fileName,
|
|
required String ext,
|
|
required String lang}) async {
|
|
final String base = '$dir/$fileName';
|
|
final String fallback = getFallbackLang(lang);
|
|
String file = '$base-$lang.$ext';
|
|
if (await assetNotExists(file)) {
|
|
file = '$base-$fallback.$ext';
|
|
if (await assetNotExists(file)) {
|
|
file = '$base.$ext';
|
|
}
|
|
}
|
|
return file;
|
|
}
|
|
|
|
// https://github.com/flutter/flutter/issues/15325
|
|
Future<bool> assetNotExists(String asset) {
|
|
return rootBundle
|
|
.load(asset)
|
|
.then((_) => false)
|
|
.catchError((Object err, StackTrace stack) {
|
|
return true;
|
|
});
|
|
}
|