validatePackageName function
Returns an error message if name is not a valid Android package name,
or if it duplicates an entry already in used. Returns null when valid.
Implementation
String? validatePackageName(String name, Set<String> used) {
if (name.isEmpty) return 'Package name is required.';
if (name == 'com.example.app') {
return 'com.example.app is a placeholder — use your real package name.';
}
if (!RegExp(r'^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*){1,}$').hasMatch(name)) {
return 'Invalid: "$name"\n'
' Must be lowercase, dot-separated, at least 2 segments.\n'
' Example: com.mycompany.myapp or dev.mhmz';
}
if (used.contains(name)) {
return '"$name" is already used by another flavor in this config.';
}
return null;
}