diff --git a/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java b/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java index 24ce1e1f2cafea897b4ab783b261b92ad67c8cdf..57ab4e62e7fa3239333a17d221c411644a66bcff 100644 --- a/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java +++ b/packages/LineageSettingsProvider/src/org/lineageos/lineagesettings/LineageDatabaseHelper.java @@ -437,29 +437,72 @@ 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.Secure.BUTTON_BRIGHTNESS, - LineageSettings.Secure.KEYBOARD_BRIGHTNESS, + LineageSettings.System.STATUS_BAR_CLOCK, + LineageSettings.System.STATUS_BAR_BATTERY_STYLE, }) { db.beginTransaction(); SQLiteStatement stmt = null; try { - stmt = db.compileStatement( - "UPDATE secure SET value=round(value / 255.0, 2) WHERE name=?"); - stmt.bindString(1, key); + 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) { - // key is not set + // 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(); } } } - upgradeVersion = 14; } - // *** Remember to update DATABASE_VERSION above! + } + + private void migrateDbTo14(SQLiteDatabase db) { + for (String key : new String[] { + LineageSettings.Secure.BUTTON_BRIGHTNESS, + LineageSettings.Secure.KEYBOARD_BRIGHTNESS, + }) { + db.beginTransaction(); + SQLiteStatement stmt = null; + try { + stmt = db.compileStatement( + "UPDATE secure SET value=round(value / 255.0, 2) WHERE name=?"); + stmt.bindString(1, key); + stmt.execute(); + db.setTransactionSuccessful(); + } catch (SQLiteDoneException ex) { + // key is not set + } finally { + if (stmt != null) stmt.close(); + db.endTransaction(); + } + } } private void moveSettingsToNewTable(SQLiteDatabase db,