diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/content/ContentResolverUtils.java b/twidere/src/main/java/org/mariotaku/twidere/util/content/ContentResolverUtils.java index 2a818fbdd..ed30dd3b2 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/content/ContentResolverUtils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/content/ContentResolverUtils.java @@ -23,6 +23,7 @@ import android.content.ContentResolver; import android.content.ContentValues; import android.net.Uri; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.text.TextUtils; import org.mariotaku.sqliteqb.library.ArgsArray; @@ -41,14 +42,14 @@ public class ContentResolverUtils { } public static int bulkDelete(@NonNull final ContentResolver resolver, @NonNull final Uri uri, - @NonNull final String inColumn, final Collection colValues, + @NonNull final String inColumn, @Nullable final Collection colValues, final String extraWhere) { if (colValues == null) return 0; return bulkDelete(resolver, uri, inColumn, colValues.toArray(), extraWhere); } public static int bulkDelete(@NonNull final ContentResolver resolver, @NonNull final Uri uri, - @NonNull final String inColumn, final Object colValues, + @NonNull final String inColumn, @Nullable final Object colValues, final String extraWhere) { if (colValues == null) return 0; final int colValuesLength = Array.getLength(colValues), blocksCount = colValuesLength / MAX_BULK_COUNT + 1; diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/FileBasedFiltersDataSyncAction.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/FileBasedFiltersDataSyncAction.kt index 57d5592b5..8ee23f7c8 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/FileBasedFiltersDataSyncAction.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/FileBasedFiltersDataSyncAction.kt @@ -5,6 +5,8 @@ import android.util.Xml import org.mariotaku.ktextension.nullableContentEquals import org.mariotaku.twidere.extension.model.* import org.mariotaku.twidere.model.FiltersData +import org.mariotaku.twidere.provider.TwidereDataStore.Filters +import org.mariotaku.twidere.util.content.ContentResolverUtils import java.io.Closeable import java.io.File import java.io.IOException @@ -45,8 +47,19 @@ abstract class FileBasedFiltersDataSyncAction.saveToLocal() { + override fun addToLocal(data: MutableMap) { val editor = preferences.edit() - editor.clear() - for ((k, v) in this) { + for ((k, v) in data) { processor.saveValue(editor, k, v) } editor.apply() } + override fun removeFromLocal(data: MutableMap) { + val editor = preferences.edit() + for ((k, v) in data) { + editor.remove(k) + } + editor.apply() + } + override final fun loadFromLocal(): MutableMap { val result = HashMap() for ((k, v) in preferences.all) { diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/SingleFileBasedDataSyncAction.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/SingleFileBasedDataSyncAction.kt index 2757e28dd..72ea560c5 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/SingleFileBasedDataSyncAction.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/sync/SingleFileBasedDataSyncAction.kt @@ -64,16 +64,16 @@ abstract class SingleFileBasedDataSyncAction