diff --git a/lawnchair/src/app/lawnchair/LawnchairApp.kt b/lawnchair/src/app/lawnchair/LawnchairApp.kt index 03aa922c54..13b7d43870 100644 --- a/lawnchair/src/app/lawnchair/LawnchairApp.kt +++ b/lawnchair/src/app/lawnchair/LawnchairApp.kt @@ -27,6 +27,7 @@ import android.provider.Settings import android.util.Log import app.lawnchair.preferences.PreferenceManager import app.lawnchair.util.restartLauncher +import com.android.launcher3.InvariantDeviceProfile import com.android.launcher3.Utilities import com.android.quickstep.RecentsActivity import java.io.File @@ -73,6 +74,18 @@ class LawnchairApp : Application() { } } + fun cleanUpDatabases() { + val idp = InvariantDeviceProfile.INSTANCE.get(this) + val dbName = idp.dbFile + val dbFile = getDatabasePath(dbName) + dbFile?.parentFile?.listFiles()?.forEach { file -> + val name = file.name + if (name.startsWith("launcher") && !name.startsWith(dbName)) { + file.delete() + } + } + } + private fun getJournalFile(file: File): File { return File(file.parentFile, "${file.name}-journal") } diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java index f6b0b4d3c8..e66fced91f 100644 --- a/src/com/android/launcher3/model/LoaderTask.java +++ b/src/com/android/launcher3/model/LoaderTask.java @@ -63,6 +63,7 @@ import com.android.launcher3.folder.Folder; import com.android.launcher3.folder.FolderGridOrganizer; import com.android.launcher3.folder.FolderNameInfos; import com.android.launcher3.folder.FolderNameProvider; +import com.android.launcher3.graphics.LauncherPreviewRenderer; import com.android.launcher3.icons.ComponentWithLabelAndIcon; import com.android.launcher3.icons.ComponentWithLabelAndIcon.ComponentWithIconCachingLogic; import com.android.launcher3.icons.IconCache; @@ -102,6 +103,8 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.CancellationException; +import app.lawnchair.LawnchairAppKt; + /** * Runnable for the thread that loads the contents of the launcher: * - workspace icons @@ -338,6 +341,10 @@ public class LoaderTask implements Runnable { clearDb = true; } + if (!(context instanceof LauncherPreviewRenderer.PreviewContext)) { + LawnchairAppKt.getLawnchairApp(context).cleanUpDatabases(); + } + if (clearDb) { Log.d(TAG, "loadWorkspace: resetting launcher database"); LauncherSettings.Settings.call(contentResolver,