add more options to default reply visibility setting (#4568)

This adds `direct` and `match_default_post_visibility` as options to the
default reply visibility setting. `match_default_post_visibility` will
be the default for new accounts.

closes https://github.com/tuskyapp/Tusky/issues/4555

<img
src="https://github.com/user-attachments/assets/b256ff32-cd49-4274-903b-96da96451e0e"
width="320"/>
This commit is contained in:
Konrad Pozniak 2024-08-02 17:15:10 +02:00 committed by GitHub
commit 892801b83a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 135 additions and 35 deletions

View file

@ -6,8 +6,8 @@ import com.keylesspalace.tusky.db.AccountManager
import com.keylesspalace.tusky.db.entity.AccountEntity
import com.keylesspalace.tusky.entity.Status
import com.keylesspalace.tusky.network.MastodonApi
import com.keylesspalace.tusky.settings.DefaultReplyVisibility
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.doReturn
@ -23,8 +23,7 @@ class ComposeViewModelTest {
private lateinit var eventHub: EventHub
private lateinit var viewModel: ComposeViewModel
@Before
fun setup() {
private fun setup(defaultReplyVisibility: DefaultReplyVisibility = DefaultReplyVisibility.UNLISTED) {
api = mock()
accountManager = mock {
on { activeAccount } doReturn
@ -34,7 +33,8 @@ class ComposeViewModelTest {
accessToken = "fakeToken",
clientId = "fakeId",
clientSecret = "fakeSecret",
isActive = true
isActive = true,
defaultReplyPrivacy = defaultReplyVisibility
)
}
eventHub = EventHub()
@ -51,6 +51,7 @@ class ComposeViewModelTest {
@Test
fun `startingVisibility initially set to defaultPostPrivacy for post`() {
setup()
viewModel.setup(null)
assertEquals(Status.Visibility.PUBLIC, viewModel.statusVisibility.value)
@ -58,8 +59,17 @@ class ComposeViewModelTest {
@Test
fun `startingVisibility initially set to replyPostPrivacy for reply`() {
setup()
viewModel.setup(ComposeActivity.ComposeOptions(inReplyToId = "123"))
assertEquals(Status.Visibility.UNLISTED, viewModel.statusVisibility.value)
}
@Test
fun `startingVisibility initially set to defaultPostPrivacy when replyPostPrivacy is MATCH_DEFAULT_POST_VISIBILITY for reply`() {
setup(defaultReplyVisibility = DefaultReplyVisibility.MATCH_DEFAULT_POST_VISIBILITY)
viewModel.setup(ComposeActivity.ComposeOptions(inReplyToId = "123"))
assertEquals(Status.Visibility.PUBLIC, viewModel.statusVisibility.value)
}
}