Add language dropdown to compose view (#2651)

* Add UI for selecting post language

* Apply selected language when sending status

* Save/restore post language with drafts

* Fall back to english if the configured language isn't found in the locale list (no-NB)

* Remove comment about no_NB

* Move language dropdown to top of compose view

* Preserve language when redrafting

* Set default language to target post's language when replying

* Add Tusky license header to new source file

* Tweak language dropdown button width
This commit is contained in:
Levi Bard 2022-08-31 18:53:57 +02:00 committed by GitHub
commit 0041acf2d4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 1140 additions and 28 deletions

View file

@ -88,7 +88,8 @@ class BottomSheetActivityTest {
pinned = false,
muted = false,
poll = null,
card = null
card = null,
language = null,
)
private val statusSingle = Single.just(SearchResult(emptyList(), listOf(status), emptyList()))

View file

@ -48,6 +48,7 @@ import org.robolectric.Robolectric
import org.robolectric.Shadows.shadowOf
import org.robolectric.annotation.Config
import org.robolectric.fakes.RoboMenuItem
import java.util.Locale
/**
* Created by charlag on 3/7/18.
@ -444,6 +445,19 @@ class ComposeActivityTest {
assertEquals(selectionEnd + insertText.length, editor.selectionEnd)
}
@Test
fun whenNoLanguageIsGiven_defaultLanguageIsSelected() {
assertEquals(Locale.getDefault().language, activity.selectedLanguage)
}
@Test
fun languageGivenInComposeOptionsIsRespected() {
val language = "no"
composeOptions = ComposeActivity.ComposeOptions(language = language)
setupActivity()
assertEquals(language, activity.selectedLanguage)
}
private fun clickUp() {
val menuItem = RoboMenuItem(android.R.id.home)
activity.onOptionsItemSelected(menuItem)

View file

@ -260,7 +260,8 @@ class FilterTest {
ownVotes = null
)
} else null,
card = null
card = null,
language = null,
)
}
}

View file

@ -51,7 +51,8 @@ fun mockStatus(
pinned = false,
muted = false,
poll = null,
card = null
card = null,
language = null,
)
fun mockStatusViewData(

View file

@ -463,6 +463,7 @@ class TimelineDaoTest {
contentShowing = true,
pinned = false,
card = card,
language = null,
)
return Triple(status, author, reblogAuthor)
}