Skip to content

Commit

Permalink
Fix SQLiteConstraintException when encryption is used
Browse files Browse the repository at this point in the history
  • Loading branch information
AleksandarIlic committed Nov 3, 2023
1 parent 4bc4482 commit a46232a
Show file tree
Hide file tree
Showing 18 changed files with 59 additions and 39 deletions.
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package net.primal.android.explore.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert
import kotlinx.coroutines.flow.Flow

@Dao
interface TrendingHashtagDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<TrendingHashtag>)

@Query("DELETE FROM TrendingHashtag")
Expand Down
5 changes: 3 additions & 2 deletions app/src/main/kotlin/net/primal/android/feed/db/FeedDao.kt
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert
import kotlinx.coroutines.flow.Flow

@Dao
interface FeedDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<Feed>)

@Query("SELECT * FROM Feed")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert

@Dao
interface FeedPostDataCrossRefDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun connect(data: List<FeedPostDataCrossRef>)

@Query("DELETE FROM FeedPostDataCrossRef WHERE feedDirective = :feedDirective")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert

@Dao
interface FeedPostRemoteKeyDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsert(data: List<FeedPostRemoteKey>)

@Query("SELECT * FROM FeedPostRemoteKey WHERE (eventId = :postId OR eventId = :repostId) AND directive = :directive")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert
import kotlinx.coroutines.flow.Flow

@Dao
interface FeedPostSyncDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsert(data: FeedPostSync)

@Query(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Upsert
import androidx.room.Insert
import androidx.room.OnConflictStrategy

@Dao
interface MediaResourceDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<MediaResource>)

}
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Upsert
import androidx.room.Insert
import androidx.room.OnConflictStrategy

@Dao
interface NostrResourceDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<NostrResource>)

}
5 changes: 3 additions & 2 deletions app/src/main/kotlin/net/primal/android/feed/db/PostDao.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert

@Dao
interface PostDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<PostData>)

@Query("DELETE FROM PostData WHERE postId NOT IN (SELECT DISTINCT postId FROM FeedPostDataCrossRef)")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert

@Dao
interface PostStatsDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsert(data: PostStats)

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<PostStats>)

@Query("SELECT * FROM PostStats WHERE postId = :postId")
Expand Down
5 changes: 3 additions & 2 deletions app/src/main/kotlin/net/primal/android/feed/db/RepostDao.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package net.primal.android.feed.db

import androidx.room.Dao
import androidx.room.Upsert
import androidx.room.Insert
import androidx.room.OnConflictStrategy

@Dao
interface RepostDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<RepostData>)

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ package net.primal.android.messages.db

import androidx.paging.PagingSource
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert

@Dao
interface DirectMessageDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<DirectMessageData>)

@Query("SELECT * FROM DirectMessageData ORDER BY createdAt DESC LIMIT 1")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ package net.primal.android.messages.db

import androidx.paging.PagingSource
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert
import net.primal.android.messages.domain.ConversationRelation

@Dao
interface MessageConversationDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<MessageConversationData>)

@Query("SELECT * FROM MessageConversationData WHERE relation = :relation ORDER BY lastMessageAt DESC")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package net.primal.android.notifications.db

import androidx.paging.PagingSource
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Transaction
import androidx.room.Upsert
import kotlinx.coroutines.flow.Flow

@Dao
Expand All @@ -30,7 +31,7 @@ interface NotificationDao {
@Query("UPDATE NotificationData SET seenGloballyAt = :seenAt WHERE seenGloballyAt IS NULL")
fun markAllUnseenNotificationsAsSeen(seenAt: Long)

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<NotificationData>)

}
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package net.primal.android.profile.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert

@Dao
interface PostUserStatsDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsert(data: PostUserStats)

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<PostUserStats>)

@Query("SELECT * FROM PostUserStats WHERE postId = :postId AND userId = :userId")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package net.primal.android.profile.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Transaction
import androidx.room.Upsert
import kotlinx.coroutines.flow.Flow

@Dao
interface ProfileDataDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<ProfileData>)

@Transaction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package net.primal.android.profile.db

import androidx.room.Dao
import androidx.room.Upsert
import androidx.room.Insert
import androidx.room.OnConflictStrategy

@Dao
interface ProfileStatsDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsert(data: ProfileStats)

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: List<ProfileStats>)

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package net.primal.android.settings.muted.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Upsert
import kotlinx.coroutines.flow.Flow

@Dao
interface MutedUserDao {
@Upsert

@Insert(onConflict = OnConflictStrategy.REPLACE)
fun upsertAll(data: Set<MutedUserData>)

@Query(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package net.primal.android.thread.db

import androidx.room.Dao
import androidx.room.Upsert
import androidx.room.Insert
import androidx.room.OnConflictStrategy

@Dao
interface ThreadConversationCrossRefDao {

@Upsert
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun connect(data: List<ThreadConversationCrossRef>)

}

0 comments on commit a46232a

Please sign in to comment.