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

Commit bd5be73f authored by Abhishek Aggarwal's avatar Abhishek Aggarwal
Browse files

Merge branch '6418-r-FP3-database-issue' into 'v1-r'

LineageDatabaseHelper: Workaround for database downgrade issue

See merge request !99
parents 78786db7 8bd1eee7
Loading
Loading
Loading
Loading
+51 −8
Original line number Diff line number Diff line
@@ -437,6 +437,53 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{
        if (upgradeVersion < 14) {
            // Update button/keyboard brightness range
            if (mUserHandle == UserHandle.USER_OWNER) {
                migrateDbTo14(db);
            }
            upgradeVersion = 14;
        }
        // *** Remember to update DATABASE_VERSION above!
    }

    @Override
    public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion){
        if (LOCAL_LOGV) Log.d(TAG, "Downgrading from version: " + oldVersion + " to " + newVersion);

        if(oldVersion == 14) {
            if (mUserHandle == UserHandle.USER_OWNER) {
                migrateDbTo14(db);
                for (String key : new String[] {
                    LineageSettings.System.STATUS_BAR_CLOCK,
                    LineageSettings.System.STATUS_BAR_BATTERY_STYLE,
                }) {
                    db.beginTransaction();
                    SQLiteStatement stmt = null;
                    try {
                        stmt = db.compileStatement("UPDATE system SET value=? WHERE name=?");
                        if(key == LineageSettings.System.STATUS_BAR_CLOCK){
                        // Update STATUS_BAR_CLOCK because was centered by db 14 before (not in code anymore)
                            stmt.bindLong(1, 2);
                            stmt.bindString(2, key);
			} else {
                        // Update STATUS_BAR_BATTERY_STYLE because was centered by db 14 before (not in code anymore)
                            stmt.bindLong(1, 0);
                            stmt.bindString(2, key);
                        }
                        stmt.execute();
                        db.setTransactionSuccessful();
                    } catch (SQLiteDoneException ex) {
                        // LineageSettings.System.STATUS_BAR_CLOCK is not set
			//                       OR
                        // LineageSettings.System.STATUS_BAR_BATTERY_STYLE is not set
                    } finally {
                        if (stmt != null) stmt.close();
                        db.endTransaction();
                    }
                }
            }
        }
    }

    private void migrateDbTo14(SQLiteDatabase db) {
        for (String key : new String[] {
            LineageSettings.Secure.BUTTON_BRIGHTNESS,
            LineageSettings.Secure.KEYBOARD_BRIGHTNESS,
@@ -457,10 +504,6 @@ public class LineageDatabaseHelper extends SQLiteOpenHelper{
            }
        }
    }
            upgradeVersion = 14;
        }
        // *** Remember to update DATABASE_VERSION above!
    }

    private void moveSettingsToNewTable(SQLiteDatabase db,
                                        String sourceTable, String destTable,