feat: mark stories as seen locally
This commit is contained in:
@@ -307,10 +307,6 @@
|
||||
"name": "Vertical Story Viewer",
|
||||
"description": "Enables the vertical story viewer for all stories"
|
||||
},
|
||||
"friend_feed_menu_buttons": {
|
||||
"name": "Friend Feed Menu Buttons",
|
||||
"description": "Select which buttons to show in the Friend Feed Menu Bar"
|
||||
},
|
||||
"friend_feed_menu_position": {
|
||||
"name": "Friend Feed Position Index",
|
||||
"description": "The position of the Friend Feed Menu component"
|
||||
@@ -682,7 +678,8 @@
|
||||
"auto_download": "\u2B07\uFE0F Auto Download",
|
||||
"auto_save": "\uD83D\uDCAC Auto Save Messages",
|
||||
"stealth": "\uD83D\uDC7B Stealth Mode",
|
||||
"mark_as_seen": "\uD83D\uDC40 Mark Snaps as seen",
|
||||
"mark_snaps_as_seen": "\uD83D\uDC40 Mark Snaps as seen",
|
||||
"mark_stories_as_seen": "\uD83D\uDC40 Mark Stories as seen",
|
||||
"conversation_info": "\uD83D\uDC64 Conversation Info",
|
||||
"e2e_encryption": "\uD83D\uDD12 Use E2E Encryption"
|
||||
},
|
||||
@@ -784,7 +781,8 @@
|
||||
},
|
||||
|
||||
"friend_menu_option": {
|
||||
"mark_as_seen": "Mark Snaps as seen",
|
||||
"mark_snaps_as_seen": "Mark Snaps as seen",
|
||||
"mark_stories_as_seen": "Mark Stories as seen",
|
||||
"preview": "Preview",
|
||||
"stealth_mode": "Stealth Mode",
|
||||
"auto_download_blacklist": "Auto Download Blacklist",
|
||||
|
||||
@@ -19,7 +19,7 @@ class UserInterfaceTweaks : ConfigContainer() {
|
||||
}
|
||||
|
||||
val friendFeedMenuButtons = multiple(
|
||||
"friend_feed_menu_buttons","conversation_info", "mark_as_seen", *MessagingRuleType.entries.filter { it.showInFriendMenu }.map { it.key }.toTypedArray()
|
||||
"friend_feed_menu_buttons","conversation_info", "mark_snaps_as_seen", "mark_stories_as_seen", *MessagingRuleType.entries.filter { it.showInFriendMenu }.map { it.key }.toTypedArray()
|
||||
).apply {
|
||||
set(mutableListOf("conversation_info", MessagingRuleType.STEALTH.key))
|
||||
}
|
||||
|
||||
@@ -351,4 +351,13 @@ class DatabaseAccess(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun markFriendStoriesAsSeen(userId: String) {
|
||||
openLocalDatabase("main", writeMode = true)?.apply {
|
||||
performOperation {
|
||||
execSQL("UPDATE StorySnap SET viewed = 1 WHERE userId = ?", arrayOf(userId))
|
||||
}
|
||||
close()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -278,9 +278,10 @@ class FriendFeedInfoMenu : AbstractMenu() {
|
||||
|
||||
val (conversationId, targetUser) = getCurrentConversationInfo()
|
||||
|
||||
val translation = context.translation.getCategory("friend_menu_option")
|
||||
if (friendFeedMenuOptions.contains("conversation_info")) {
|
||||
viewConsumer(Button(view.context).apply {
|
||||
text = modContext.translation["friend_menu_option.preview"]
|
||||
text = translation["preview"]
|
||||
applyTheme(view.width, hasRadius = true)
|
||||
setOnClickListener {
|
||||
showPreview(
|
||||
@@ -302,9 +303,9 @@ class FriendFeedInfoMenu : AbstractMenu() {
|
||||
)
|
||||
}
|
||||
|
||||
if (friendFeedMenuOptions.contains("mark_as_seen")) {
|
||||
if (friendFeedMenuOptions.contains("mark_snaps_as_seen")) {
|
||||
viewConsumer(Button(view.context).apply {
|
||||
text = modContext.translation["friend_menu_option.mark_as_seen"]
|
||||
text = translation["mark_snaps_as_seen"]
|
||||
applyTheme(view.width, hasRadius = true)
|
||||
setOnClickListener {
|
||||
this@FriendFeedInfoMenu.context.mainActivity?.triggerRootCloseTouchEvent()
|
||||
@@ -312,5 +313,18 @@ class FriendFeedInfoMenu : AbstractMenu() {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (targetUser != null && friendFeedMenuOptions.contains("mark_stories_as_seen")) {
|
||||
viewConsumer(Button(view.context).apply {
|
||||
text = translation["mark_stories_as_seen"]
|
||||
applyTheme(view.width, hasRadius = true)
|
||||
setOnClickListener {
|
||||
this@FriendFeedInfoMenu.context.apply {
|
||||
mainActivity?.triggerRootCloseTouchEvent()
|
||||
database.markFriendStoriesAsSeen(targetUser)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user