addReceiver function

void addReceiver(
  1. String packageName,
  2. List<String> lines
)

Implementation

void addReceiver(String packageName, List<String> lines) {

  String receiverTemplate = getReceiver().replaceAll("{PACKAGE_NAME}", packageName);

  int lineBeforeStart = lines.indexWhere((String line) {
    return line.trim().contains('android:value="2" />');
  });

  if (lineBeforeStart == -1) {
    print("Error: Could not find the insertion point for the receiver.");
    return;
  }

  final receiverLines = receiverTemplate.split('\n').map((line) => line.trim()).toList();
  final exists = receiverLines.every((receiverLine) {
    return lines.any((existingLine) => existingLine.trim() == receiverLine);
  });

  if (exists) {
    print("The receiver already exists in the file.");
    return;
  }

  final indentedReceiver = receiverTemplate
      .split('\n')
      .map((line) => '    $line')
      .join('\n');

  lines.insert(lineBeforeStart + 1, indentedReceiver);
  print("Receiver added successfully.");
}