Delete app activities when device is removed

This commit is contained in:
Jonas L 2019-04-15 00:00:00 +00:00
parent 76b627e26a
commit 15976189fa
3 changed files with 8 additions and 3 deletions

View file

@ -26,6 +26,6 @@ interface AppActivityDao {
@Query("DELETE FROM app_activity WHERE device_id = :deviceId AND app_package_name = :packageName AND activity_class_name IN (:activities)") @Query("DELETE FROM app_activity WHERE device_id = :deviceId AND app_package_name = :packageName AND activity_class_name IN (:activities)")
fun deleteAppActivitiesSync(deviceId: String, packageName: String, activities: List<String>) fun deleteAppActivitiesSync(deviceId: String, packageName: String, activities: List<String>)
@Query("DELETE FROM app_activity WHERE device_id = :deviceId") @Query("DELETE FROM app_activity WHERE device_id IN (:deviceIds)")
fun deleteAppActivitiesByDeviceId(deviceId: String) fun deleteAppActivitiesByDeviceIds(deviceIds: List<String>)
} }

View file

@ -38,6 +38,9 @@ interface AppDao {
@Query("DELETE FROM app WHERE device_id = :deviceId AND package_name IN (:packageNames)") @Query("DELETE FROM app WHERE device_id = :deviceId AND package_name IN (:packageNames)")
fun removeAppsByDeviceIdAndPackageNamesSync(deviceId: String, packageNames: List<String>) fun removeAppsByDeviceIdAndPackageNamesSync(deviceId: String, packageNames: List<String>)
@Query("DELETE FROM app WHERE device_id IN (:deviceIds)")
fun removeAppsByDeviceIds(deviceIds: List<String>)
@Query("SELECT * FROM app WHERE device_id IN (:deviceIds)") @Query("SELECT * FROM app WHERE device_id IN (:deviceIds)")
fun getAppsByDeviceIds(deviceIds: List<String>): LiveData<List<App>> fun getAppsByDeviceIds(deviceIds: List<String>): LiveData<List<App>>

View file

@ -116,6 +116,8 @@ object ApplyServerDataStatus {
if (removedDeviceEntryIds.isNotEmpty()) { if (removedDeviceEntryIds.isNotEmpty()) {
database.device().removeDevicesById(removedDeviceEntryIds) database.device().removeDevicesById(removedDeviceEntryIds)
database.app().removeAppsByDeviceIds(removedDeviceEntryIds)
database.appActivity().deleteAppActivitiesByDeviceIds(removedDeviceEntryIds)
} }
} }
@ -235,7 +237,7 @@ object ApplyServerDataStatus {
run { run {
// apply activities // apply activities
database.appActivity().deleteAppActivitiesByDeviceId(item.deviceId) database.appActivity().deleteAppActivitiesByDeviceIds(listOf(item.deviceId))
database.appActivity().addAppActivitiesSync(item.activities.map { database.appActivity().addAppActivitiesSync(item.activities.map {
AppActivity( AppActivity(
deviceId = item.deviceId, deviceId = item.deviceId,