findMainActivity method

MainActivityInfo findMainActivity()

Finds MainActivity (Kotlin or Java) inside the project directory structure. Throws CodeInjectionException if not found.

Implementation

MainActivityInfo findMainActivity() {
  final searchDirs = [
    PathUtils.join(rootPath, 'android', 'app', 'src', 'main', 'kotlin'),
    PathUtils.join(rootPath, 'android', 'app', 'src', 'main', 'java'),
  ];

  for (final dir in searchDirs) {
    if (FileUtils.exists(dir) && FileUtils.isDirectory(dir)) {
      final files = FileUtils.listFiles(dir, recursive: true);
      for (final file in files) {
        final base = PathUtils.basename(file);
        if (base == 'MainActivity.kt') {
          return MainActivityInfo(file, MainActivityLanguage.kotlin);
        } else if (base == 'MainActivity.java') {
          return MainActivityInfo(file, MainActivityLanguage.java);
        }
      }
    }
  }
  throw CodeInjectionException(
      'Could not find MainActivity.kt or MainActivity.java in your Flutter project.');
}