Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13e59317 authored by mrulhania's avatar mrulhania
Browse files

Migrate discrete ops in system ready callback

Some properties in Discrete Registry are initialized
in systemReady, the migration should happen after those
properties are initialized.

Fix: 390313274
Test: manual
Test: atest DiscreteOpsMigrationAndRollbackTest
FLAG: EXEMPT bug fix
Change-Id: I6bb564e07312888ba8f8b576fc85449e90809e1d
parent c2f77d14
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -205,18 +205,8 @@ final class HistoricalRegistry {
        mContext = context;
        if (Flags.enableSqliteAppopsAccesses()) {
            mDiscreteRegistry = new DiscreteOpsSqlRegistry(context);
            if (DiscreteOpsXmlRegistry.getDiscreteOpsDir().exists()) {
                DiscreteOpsSqlRegistry sqlRegistry = (DiscreteOpsSqlRegistry) mDiscreteRegistry;
                DiscreteOpsXmlRegistry xmlRegistry = new DiscreteOpsXmlRegistry(context);
                DiscreteOpsMigrationHelper.migrateDiscreteOpsToSqlite(xmlRegistry, sqlRegistry);
            }
        } else {
            mDiscreteRegistry = new DiscreteOpsXmlRegistry(context);
            if (DiscreteOpsDbHelper.getDatabaseFile().exists()) { // roll-back sqlite
                DiscreteOpsSqlRegistry sqlRegistry = new DiscreteOpsSqlRegistry(context);
                DiscreteOpsXmlRegistry xmlRegistry = (DiscreteOpsXmlRegistry) mDiscreteRegistry;
                DiscreteOpsMigrationHelper.migrateDiscreteOpsToXml(sqlRegistry, xmlRegistry);
            }
        }
    }

@@ -267,6 +257,19 @@ final class HistoricalRegistry {
                }
            }
        }
        if (Flags.enableSqliteAppopsAccesses()) {
            if (DiscreteOpsXmlRegistry.getDiscreteOpsDir().exists()) {
                DiscreteOpsSqlRegistry sqlRegistry = (DiscreteOpsSqlRegistry) mDiscreteRegistry;
                DiscreteOpsXmlRegistry xmlRegistry = new DiscreteOpsXmlRegistry(mContext);
                DiscreteOpsMigrationHelper.migrateDiscreteOpsToSqlite(xmlRegistry, sqlRegistry);
            }
        } else {
            if (DiscreteOpsDbHelper.getDatabaseFile().exists()) { // roll-back sqlite
                DiscreteOpsSqlRegistry sqlRegistry = new DiscreteOpsSqlRegistry(mContext);
                DiscreteOpsXmlRegistry xmlRegistry = (DiscreteOpsXmlRegistry) mDiscreteRegistry;
                DiscreteOpsMigrationHelper.migrateDiscreteOpsToXml(sqlRegistry, xmlRegistry);
            }
        }
    }

    private boolean isPersistenceInitializedMLocked() {