Removes the need to start user searches with @ in the user fields across the app.
This commit is contained in:
@@ -275,8 +275,10 @@ open class EditPostViewModel : ViewModel() {
|
|||||||
|
|
||||||
if (it.selection.collapsed) {
|
if (it.selection.collapsed) {
|
||||||
val lastWord = message.currentWord()
|
val lastWord = message.currentWord()
|
||||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
if (lastWord.startsWith("@")) {
|
||||||
userSuggestions?.processCurrentWord(lastWord)
|
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||||
|
userSuggestions?.processCurrentWord(lastWord)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-12
@@ -41,7 +41,6 @@ import kotlinx.coroutines.flow.update
|
|||||||
@Stable
|
@Stable
|
||||||
class UserSuggestionState(
|
class UserSuggestionState(
|
||||||
val account: Account,
|
val account: Account,
|
||||||
val requireAtSymbol: Boolean = true,
|
|
||||||
) {
|
) {
|
||||||
val invalidations = MutableStateFlow(0)
|
val invalidations = MutableStateFlow(0)
|
||||||
val currentWord = MutableStateFlow("")
|
val currentWord = MutableStateFlow("")
|
||||||
@@ -81,18 +80,10 @@ class UserSuggestionState(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun userSearchTermOrNull(currentWord: String): String? =
|
fun userSearchTermOrNull(currentWord: String): String? =
|
||||||
if (requireAtSymbol) {
|
if (currentWord.length > 2) {
|
||||||
if (currentWord.startsWith("@") && currentWord.length > 2) {
|
currentWord.removePrefix("@")
|
||||||
currentWord.removePrefix("@")
|
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (currentWord.length > 1) {
|
null
|
||||||
currentWord
|
|
||||||
} else {
|
|
||||||
null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateDataSource(searchTerm: String?) {
|
fun updateDataSource(searchTerm: String?) {
|
||||||
|
|||||||
+4
-3
@@ -585,9 +585,10 @@ open class CommentPostViewModel :
|
|||||||
|
|
||||||
if (message.selection.collapsed) {
|
if (message.selection.collapsed) {
|
||||||
val lastWord = message.currentWord()
|
val lastWord = message.currentWord()
|
||||||
|
if (lastWord.startsWith("@")) {
|
||||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||||
userSuggestions?.processCurrentWord(lastWord)
|
userSuggestions?.processCurrentWord(lastWord)
|
||||||
|
}
|
||||||
|
|
||||||
emojiSuggestions?.processCurrentWord(lastWord)
|
emojiSuggestions?.processCurrentWord(lastWord)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-4
@@ -565,10 +565,11 @@ class ChatNewMessageViewModel :
|
|||||||
urlPreviews.update(newMessage)
|
urlPreviews.update(newMessage)
|
||||||
|
|
||||||
if (message.selection.collapsed) {
|
if (message.selection.collapsed) {
|
||||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
val lastWord = newMessage.currentWord()
|
||||||
|
if (lastWord.startsWith("@")) {
|
||||||
val lastWord = message.currentWord()
|
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||||
userSuggestions?.processCurrentWord(lastWord)
|
userSuggestions?.processCurrentWord(lastWord)
|
||||||
|
}
|
||||||
emojiSuggestions?.processCurrentWord(lastWord)
|
emojiSuggestions?.processCurrentWord(lastWord)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -529,9 +529,10 @@ open class ChannelNewMessageViewModel :
|
|||||||
|
|
||||||
if (newMessage.selection.collapsed) {
|
if (newMessage.selection.collapsed) {
|
||||||
val lastWord = newMessage.currentWord()
|
val lastWord = newMessage.currentWord()
|
||||||
|
if (lastWord.startsWith("@")) {
|
||||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||||
userSuggestions?.processCurrentWord(lastWord)
|
userSuggestions?.processCurrentWord(lastWord)
|
||||||
|
}
|
||||||
|
|
||||||
emojiSuggestions?.processCurrentWord(lastWord)
|
emojiSuggestions?.processCurrentWord(lastWord)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -485,9 +485,10 @@ open class NewProductViewModel :
|
|||||||
|
|
||||||
if (message.selection.collapsed) {
|
if (message.selection.collapsed) {
|
||||||
val lastWord = message.currentWord()
|
val lastWord = message.currentWord()
|
||||||
|
if (lastWord.startsWith("@")) {
|
||||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||||
userSuggestions?.processCurrentWord(lastWord)
|
userSuggestions?.processCurrentWord(lastWord)
|
||||||
|
}
|
||||||
|
|
||||||
emojiSuggestions?.processCurrentWord(lastWord)
|
emojiSuggestions?.processCurrentWord(lastWord)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-4
@@ -930,10 +930,11 @@ open class ShortNotePostViewModel :
|
|||||||
urlPreviews.update(message)
|
urlPreviews.update(message)
|
||||||
|
|
||||||
if (message.selection.collapsed) {
|
if (message.selection.collapsed) {
|
||||||
val lastWord = message.currentWord()
|
val lastWord = newMessage.currentWord()
|
||||||
|
if (lastWord.startsWith("@")) {
|
||||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||||
userSuggestions?.processCurrentWord(lastWord)
|
userSuggestions?.processCurrentWord(lastWord)
|
||||||
|
}
|
||||||
|
|
||||||
emojiSuggestions?.processCurrentWord(lastWord)
|
emojiSuggestions?.processCurrentWord(lastWord)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -71,7 +71,7 @@ class PeopleListViewModel : ViewModel() {
|
|||||||
) {
|
) {
|
||||||
if (!this::account.isInitialized || this.account != account) {
|
if (!this::account.isInitialized || this.account != account) {
|
||||||
this.account = account
|
this.account = account
|
||||||
this.userSuggestions = UserSuggestionState(account, false)
|
this.userSuggestions = UserSuggestionState(account)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.selectedDTag.tryEmit(selectedDTag)
|
this.selectedDTag.tryEmit(selectedDTag)
|
||||||
|
|||||||
+1
-1
@@ -71,7 +71,7 @@ class FollowPackViewModel : ViewModel() {
|
|||||||
) {
|
) {
|
||||||
if (!this::account.isInitialized || this.account != account) {
|
if (!this::account.isInitialized || this.account != account) {
|
||||||
this.account = account
|
this.account = account
|
||||||
this.userSuggestions = UserSuggestionState(account, false)
|
this.userSuggestions = UserSuggestionState(account)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.selectedDTag.tryEmit(selectedDTag)
|
this.selectedDTag.tryEmit(selectedDTag)
|
||||||
|
|||||||
+5
-3
@@ -522,10 +522,12 @@ class NewPublicMessageViewModel :
|
|||||||
urlPreviews.update(newMessage)
|
urlPreviews.update(newMessage)
|
||||||
|
|
||||||
if (message.selection.collapsed) {
|
if (message.selection.collapsed) {
|
||||||
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
val lastWord = newMessage.currentWord()
|
||||||
|
if (lastWord.startsWith("@")) {
|
||||||
|
userSuggestionsMainMessage = UserSuggestionAnchor.MAIN_MESSAGE
|
||||||
|
userSuggestions?.processCurrentWord(lastWord)
|
||||||
|
}
|
||||||
|
|
||||||
val lastWord = message.currentWord()
|
|
||||||
userSuggestions?.processCurrentWord(lastWord)
|
|
||||||
emojiSuggestions?.processCurrentWord(lastWord)
|
emojiSuggestions?.processCurrentWord(lastWord)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user