Skip to content

Commit

Permalink
fix(cli): Migrator put registerPlugin before super.onCreate (#5828)
Browse files Browse the repository at this point in the history
  • Loading branch information
jcesarmobile committed Aug 15, 2022
1 parent ea2d95b commit 8cd3373
Showing 1 changed file with 30 additions and 7 deletions.
37 changes: 30 additions & 7 deletions cli/src/tasks/migrate.ts
Expand Up @@ -294,8 +294,8 @@ export async function migrateCommand(config: Config): Promise<void> {
});

// remove init
await runTask('Migrating MainActivity by removing init().', () => {
return removeOldInitAndroid(config);
await runTask('Migrating MainActivity', () => {
return migrateMainActivity(config);
});

rimraf.sync(join(config.android.appDirAbs, 'build'));
Expand Down Expand Up @@ -813,7 +813,7 @@ async function podfileAssertDeploymentTarget(filename: string) {
writeFileSync(filename, replaced, 'utf-8');
}

async function removeOldInitAndroid(config: Config) {
async function migrateMainActivity(config: Config) {
const xmlData = await readXML(
join(config.android.srcMainDirAbs, 'AndroidManifest.xml'),
);
Expand Down Expand Up @@ -879,12 +879,35 @@ async function removeOldInitAndroid(config: Config) {

if (data) {
const bindex = data.indexOf('this.init(savedInstanceState');
if (bindex == -1) return;
const eindex = data.indexOf('}});', bindex) + 4;
if (bindex !== -1) {
const eindex = data.indexOf('}});', bindex) + 4;

data = data.replace(data.substring(bindex, eindex), '');
data = data.replace(data.substring(bindex, eindex), '');

data = data.replace('// Initializes the Bridge', '');
data = data.replace('// Initializes the Bridge', '');
}

const rindex = data.indexOf('registerPlugin');
if (rindex !== -1) {
if (data.indexOf('super.onCreate(savedInstanceState);') < rindex) {
data = data.replace(
'super.onCreate(savedInstanceState);\n ',
'',
);
const eindex = data.lastIndexOf('.class);') + 8;
data = data.replace(
data.substring(bindex, eindex),
`${data.substring(
bindex,
eindex,
)}\n super.onCreate(savedInstanceState);`,
);
}
}

if (bindex == -1 && rindex == -1) {
return;
}

writeFileSync(mainActivityClassFilePath, data);
}
Expand Down

0 comments on commit 8cd3373

Please sign in to comment.