diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/data/dao/AppInfoDAO.kt b/app/src/main/java/com/github/droidworksstudio/launcher/data/dao/AppInfoDAO.kt index cfd2d02..12b1bec 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/data/dao/AppInfoDAO.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/data/dao/AppInfoDAO.kt @@ -22,9 +22,13 @@ interface AppInfoDAO { @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun restoreAll(apps: List) + @Query("DELETE FROM app") suspend fun clearAll() + @Query("DELETE FROM sqlite_sequence WHERE name = 'app'") + suspend fun resetAutoIncrement() + @Update suspend fun update(app: AppInfo) diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt b/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt index e060571..13d5754 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/helper/AppHelper.kt @@ -389,6 +389,8 @@ class AppHelper @Inject constructor() { val type = object : TypeToken>() {}.type val appInfoList: List = gson.fromJson(jsonString, type) + // Clear all apps first + resetDatabase(dao) // Reinsert data into the database dao.restoreAll(appInfoList) } ?: throw Exception("Failed to open input stream from URI") @@ -398,6 +400,11 @@ class AppHelper @Inject constructor() { } } + suspend fun resetDatabase(dao: AppInfoDAO) { + dao.clearAll() // Clears all rows in the table + dao.resetAutoIncrement() // Resets the ID counter + } + fun getActionType(actionType: Constants.Swipe): NavOptions { return when (actionType) { diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsAdvancedFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsAdvancedFragment.kt index 8201ea2..a8cc682 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsAdvancedFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsAdvancedFragment.kt @@ -170,7 +170,7 @@ class SettingsAdvancedFragment : Fragment(), private fun clearData() { preferenceHelper.clearAll(context) lifecycleScope.launch { - appDAO.clearAll() + appHelper.resetDatabase(appDAO) } Handler(Looper.getMainLooper()).postDelayed({ AppReloader.restartApp(context)