From 9665061fa10c1dde9dd6a88df8eca901ba26f22c Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Thu, 27 Jul 2023 19:07:58 +0300 Subject: [PATCH 01/11] Added Controversial sort options for posts and comments --- app/src/main/java/com/jerboa/Utils.kt | 3 +++ .../main/java/com/jerboa/datatypes/types/Others.kt | 12 ++++++++++++ .../java/com/jerboa/ui/components/common/Dialogs.kt | 13 +++++++++++++ app/src/main/res/values-el/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 32 insertions(+) diff --git a/app/src/main/java/com/jerboa/Utils.kt b/app/src/main/java/com/jerboa/Utils.kt index acd398bc3..cda8dcc42 100644 --- a/app/src/main/java/com/jerboa/Utils.kt +++ b/app/src/main/java/com/jerboa/Utils.kt @@ -1079,6 +1079,7 @@ val MAP_SORT_TYPE_SHORT_FORM = mapOf( SortType.Hot to R.string.sorttype_hot, SortType.New to R.string.sorttype_new, SortType.Old to R.string.sorttype_old, + SortType.Controversial to R.string.sorttype_controversial, SortType.TopDay to R.string.sorttype_topday, SortType.TopWeek to R.string.sorttype_topweek, SortType.TopMonth to R.string.sorttype_topmonth, @@ -1110,6 +1111,7 @@ val MAP_SORT_TYPE_LONG_FORM = mapOf( SortType.Hot to R.string.sorttype_hot, SortType.New to R.string.sorttype_new, SortType.Old to R.string.sorttype_old, + SortType.Controversial to R.string.sorttype_controversial, SortType.TopDay to R.string.dialogs_top_day, SortType.TopWeek to R.string.dialogs_top_week, SortType.TopMonth to R.string.dialogs_top_month, @@ -1158,6 +1160,7 @@ fun getLocalizedCommentSortTypeName(ctx: Context, commentSortType: CommentSortTy CommentSortType.New -> ctx.getString(R.string.sorttype_new) CommentSortType.Old -> ctx.getString(R.string.sorttype_old) CommentSortType.Top -> ctx.getString(R.string.dialogs_top) + CommentSortType.Controversial -> "Controversial" } return returnString } diff --git a/app/src/main/java/com/jerboa/datatypes/types/Others.kt b/app/src/main/java/com/jerboa/datatypes/types/Others.kt index 50252ee49..ea46d2835 100644 --- a/app/src/main/java/com/jerboa/datatypes/types/Others.kt +++ b/app/src/main/java/com/jerboa/datatypes/types/Others.kt @@ -41,6 +41,12 @@ enum class SortType { @SerializedName("Old") Old, + /** + * Posts sorted by controversy rank. + */ + @SerializedName("Controversial") + Controversial, + /** * The top posts for this last day. */ @@ -148,6 +154,12 @@ enum class CommentSortType { */ @SerializedName("Old") Old, + + /** + * Posts sorted by controversy rank. + */ + @SerializedName("Controversial") + Controversial, } /** diff --git a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt index 1dd3720e1..932d08076 100644 --- a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt +++ b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt @@ -18,6 +18,7 @@ import androidx.compose.material.icons.outlined.MarkunreadMailbox import androidx.compose.material.icons.outlined.Moving import androidx.compose.material.icons.outlined.NewReleases import androidx.compose.material.icons.outlined.Public +import androidx.compose.material.icons.outlined.ThumbsUpDown import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.Text @@ -168,6 +169,12 @@ fun SortOptionsDialog( onClick = { onClickSortType(SortType.Old) }, highlight = (selectedSortType == SortType.Old), ) + IconAndTextDrawerItem( + text = stringResource(R.string.dialogs_controversial), + icon = Icons.Outlined.ThumbsUpDown, + onClick = { onClickSortType(SortType.Controversial) }, + highlight = (selectedSortType == SortType.Controversial), + ) IconAndTextDrawerItem( modifier = Modifier.testTag("jerboa:sortoption_mostcomments"), text = stringResource(R.string.dialogs_most_comments), @@ -238,6 +245,12 @@ fun CommentSortOptionsDialog( onClick = { onClickSortType(CommentSortType.Old) }, highlight = (selectedSortType == CommentSortType.Old), ) + IconAndTextDrawerItem( + text = stringResource(R.string.dialogs_controversial), + icon = Icons.Outlined.ThumbsUpDown, + onClick = { onClickSortType(CommentSortType.Controversial) }, + highlight = (selectedSortType == CommentSortType.Controversial), + ) } }, confirmButton = {}, diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 1f530f3ee..3f47a5394 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -326,4 +326,6 @@ Κορυφαία Εννέα Μηνών Προβολή πηγής Προβολή πρωτότυπου + Αμφιλεγόμενα + Αμφιλεγόμενα diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c595e979c..b7c5abd12 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -134,6 +134,7 @@ Top Year Top All Old + Controversial Unread Server version (%1$s) is under the minimum supported version (%2$s).\n\nPlease inform your administrator and login to another instance, or sign out and use the default instance. Server version (%1$s) too low. @@ -297,6 +298,7 @@ New NewComments Old + Controversial TopAll TopDay TopMonth From 6fb6fd479198e6a4927e537b7178a002528ad36c Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Thu, 27 Jul 2023 19:07:58 +0300 Subject: [PATCH 02/11] Added Controversial sort options for posts and comments --- app/src/main/java/com/jerboa/Utils.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/jerboa/Utils.kt b/app/src/main/java/com/jerboa/Utils.kt index cda8dcc42..6aa4f0171 100644 --- a/app/src/main/java/com/jerboa/Utils.kt +++ b/app/src/main/java/com/jerboa/Utils.kt @@ -1160,7 +1160,7 @@ fun getLocalizedCommentSortTypeName(ctx: Context, commentSortType: CommentSortTy CommentSortType.New -> ctx.getString(R.string.sorttype_new) CommentSortType.Old -> ctx.getString(R.string.sorttype_old) CommentSortType.Top -> ctx.getString(R.string.dialogs_top) - CommentSortType.Controversial -> "Controversial" + CommentSortType.Controversial -> ctx.getString(R.string.dialogs_controversial) } return returnString } From 94f0cfe74e1eb9438038d635a7a8d348888502f2 Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Mon, 31 Jul 2023 21:55:21 +0300 Subject: [PATCH 03/11] Added supported versions for sort types, siteVersion() in SiteViewModel, and showing sort type dialogs dynamically according to supported sort types --- .../java/com/jerboa/datatypes/types/Others.kt | 65 ++++++----- .../java/com/jerboa/model/SiteViewModel.kt | 8 ++ .../jerboa/ui/components/common/Dialogs.kt | 105 ++++-------------- .../ui/components/community/Community.kt | 2 + .../components/community/CommunityActivity.kt | 1 + .../com/jerboa/ui/components/home/Home.kt | 6 +- .../jerboa/ui/components/home/HomeActivity.kt | 3 + .../ui/components/person/PersonProfile.kt | 2 + .../person/PersonProfileActivity.kt | 2 + .../jerboa/ui/components/post/PostActivity.kt | 1 + 10 files changed, 88 insertions(+), 107 deletions(-) diff --git a/app/src/main/java/com/jerboa/datatypes/types/Others.kt b/app/src/main/java/com/jerboa/datatypes/types/Others.kt index ea46d2835..ca29e52c2 100644 --- a/app/src/main/java/com/jerboa/datatypes/types/Others.kt +++ b/app/src/main/java/com/jerboa/datatypes/types/Others.kt @@ -1,10 +1,25 @@ package com.jerboa.datatypes.types import android.os.Parcelable +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.BarChart +import androidx.compose.material.icons.outlined.BrightnessLow +import androidx.compose.material.icons.outlined.FormatListNumbered +import androidx.compose.material.icons.outlined.History +import androidx.compose.material.icons.outlined.LocalFireDepartment +import androidx.compose.material.icons.outlined.Moving +import androidx.compose.material.icons.outlined.NewReleases +import androidx.compose.material.icons.outlined.ThumbsUpDown import androidx.compose.runtime.Immutable +import androidx.compose.ui.graphics.vector.ImageVector import com.google.gson.annotations.SerializedName +import com.jerboa.R +import com.jerboa.api.MINIMUM_API_VERSION import kotlinx.parcelize.Parcelize + +const val MINIMUM_CONTROVERSIAL_SORT_API_VERSION: String = "0.19" + enum class RegistrationMode { @SerializedName("Closed") Closed, @@ -19,147 +34,147 @@ enum class RegistrationMode { /** * Different sort types used in lemmy. */ -enum class SortType { +enum class SortType(val text: Int, val icon: ImageVector? = null, val version: String = MINIMUM_API_VERSION) { /** * Posts sorted by the most recent comment. */ @SerializedName("Active") - Active, + Active(R.string.dialogs_active, Icons.Outlined.Moving), /** * Posts sorted by the published time. */ @SerializedName("Hot") - Hot, + Hot(R.string.dialogs_hot, Icons.Outlined.LocalFireDepartment), @SerializedName("New") - New, + New(R.string.dialogs_new, Icons.Outlined.BrightnessLow), /** * Posts sorted by the published time ascending */ @SerializedName("Old") - Old, + Old(R.string.dialogs_old, Icons.Outlined.History), /** * Posts sorted by controversy rank. */ @SerializedName("Controversial") - Controversial, + Controversial(R.string.dialogs_controversial, Icons.Outlined.ThumbsUpDown, MINIMUM_CONTROVERSIAL_SORT_API_VERSION), /** * The top posts for this last day. */ @SerializedName("TopDay") - TopDay, + TopDay(R.string.dialogs_top_day, Icons.Outlined.BarChart), /** * The top posts for this last week. */ @SerializedName("TopWeek") - TopWeek, + TopWeek(R.string.dialogs_top_week, Icons.Outlined.BarChart), /** * The top posts for this last month. */ @SerializedName("TopMonth") - TopMonth, + TopMonth(R.string.dialogs_top_month, Icons.Outlined.BarChart), /** * The top posts for this last year. */ @SerializedName("TopYear") - TopYear, + TopYear(R.string.dialogs_top_year, Icons.Outlined.BarChart), /** * The top posts of all time. */ @SerializedName("TopAll") - TopAll, + TopAll(R.string.dialogs_top_all, Icons.Outlined.BarChart), /** * Posts sorted by the most comments. */ @SerializedName("MostComments") - MostComments, + MostComments(R.string.dialogs_most_comments, Icons.Outlined.FormatListNumbered), /** * Posts sorted by the newest comments, with no necrobumping. IE a forum sort. */ @SerializedName("NewComments") - NewComments, + NewComments(R.string.dialogs_new_comments, Icons.Outlined.NewReleases), /** * Posts sorted by the top hour. */ @SerializedName("TopHour") - TopHour, + TopHour(R.string.dialogs_top_hour, Icons.Outlined.BarChart), /** * Posts sorted by the top six hour. */ @SerializedName("TopSixHour") - TopSixHour, + TopSixHour(R.string.dialogs_top_six_hour, Icons.Outlined.BarChart), /** * Posts sorted by the top twelve hour. */ @SerializedName("TopTwelveHour") - TopTwelveHour, + TopTwelveHour(R.string.dialogs_top_twelve_hour, Icons.Outlined.BarChart), /** * Posts sorted by the top three months. */ @SerializedName("TopThreeMonths") - TopThreeMonths, + TopThreeMonths(R.string.dialogs_top_three_month, Icons.Outlined.BarChart), /** * Posts sorted by the top six months. */ @SerializedName("TopSixMonths") - TopSixMonths, + TopSixMonths(R.string.dialogs_top_six_month, Icons.Outlined.BarChart), /** * Posts sorted by the top nine months. */ @SerializedName("TopNineMonths") - TopNineMonths, + TopNineMonths(R.string.dialogs_top_nine_month, Icons.Outlined.BarChart), } // When updating this enum, don't forget to update MAP_SORT_TYPE_SHORT_FORM and MAP_SORT_TYPE_LONG_FORM /** * Different comment sort types used in lemmy. */ -enum class CommentSortType { +enum class CommentSortType(val text: Int, val icon: ImageVector? = null, val version: String = MINIMUM_API_VERSION) { /** * Comments sorted by a decaying rank. */ @SerializedName("Hot") - Hot, + Hot(R.string.dialogs_hot, Icons.Outlined.LocalFireDepartment), /** * Comments sorted by top score. */ @SerializedName("Top") - Top, + Top(R.string.dialogs_top, Icons.Outlined.BarChart), /** * Comments sorted by new. */ @SerializedName("New") - New, + New(R.string.dialogs_new, Icons.Outlined.BrightnessLow), /** * Comments sorted by old. */ @SerializedName("Old") - Old, + Old(R.string.dialogs_old, Icons.Outlined.History), /** * Posts sorted by controversy rank. */ @SerializedName("Controversial") - Controversial, + Controversial(R.string.dialogs_controversial, Icons.Outlined.ThumbsUpDown, MINIMUM_CONTROVERSIAL_SORT_API_VERSION), } /** diff --git a/app/src/main/java/com/jerboa/model/SiteViewModel.kt b/app/src/main/java/com/jerboa/model/SiteViewModel.kt index a8b431b4c..443bd7d80 100644 --- a/app/src/main/java/com/jerboa/model/SiteViewModel.kt +++ b/app/src/main/java/com/jerboa/model/SiteViewModel.kt @@ -8,6 +8,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.jerboa.api.API import com.jerboa.api.ApiState +import com.jerboa.api.MINIMUM_API_VERSION import com.jerboa.api.apiWrapper import com.jerboa.datatypes.types.GetSite import com.jerboa.datatypes.types.GetSiteResponse @@ -115,4 +116,11 @@ class SiteViewModel : ViewModel() { else -> true } } + + fun siteVersion(): String { + return when (val res = siteRes) { + is ApiState.Success -> res.data.version + else -> MINIMUM_API_VERSION + } + } } diff --git a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt index 932d08076..ef758dda1 100644 --- a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt +++ b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt @@ -8,17 +8,10 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.BarChart import androidx.compose.material.icons.outlined.Bookmarks -import androidx.compose.material.icons.outlined.BrightnessLow -import androidx.compose.material.icons.outlined.FormatListNumbered -import androidx.compose.material.icons.outlined.History import androidx.compose.material.icons.outlined.List -import androidx.compose.material.icons.outlined.LocalFireDepartment import androidx.compose.material.icons.outlined.LocationCity import androidx.compose.material.icons.outlined.MarkunreadMailbox -import androidx.compose.material.icons.outlined.Moving -import androidx.compose.material.icons.outlined.NewReleases import androidx.compose.material.icons.outlined.Public -import androidx.compose.material.icons.outlined.ThumbsUpDown import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.Text @@ -42,6 +35,7 @@ import com.jerboa.PostViewMode import com.jerboa.R import com.jerboa.UnreadOrAll import com.jerboa.api.MINIMUM_API_VERSION +import com.jerboa.compareVersions import com.jerboa.datatypes.types.CommentSortType import com.jerboa.datatypes.types.ListingType import com.jerboa.datatypes.types.SortType @@ -61,6 +55,8 @@ val DONATION_MARKDOWN = """ """.trimIndent() val topSortTypes = SortType.values().filter { it.name.startsWith("Top") } +val getSupportedSortTypes = { siteVersion: String -> SortType.values().filter { compareVersions(siteVersion, it.version) >= 0 } } +val getSupportedCommentSortTypes = { siteVersion: String -> CommentSortType.values().filter { compareVersions(siteVersion, it.version) >= 0 } } @Composable fun SortTopOptionsDialog( @@ -94,6 +90,7 @@ fun SortOptionsDialogPreview() { onDismissRequest = {}, onClickSortTopOptions = {}, onClickSortType = {}, + siteVersion = MINIMUM_API_VERSION, ) } @@ -139,55 +136,21 @@ fun SortOptionsDialog( onClickSortType: (SortType) -> Unit, onClickSortTopOptions: () -> Unit, selectedSortType: SortType, -) { + siteVersion: String, + ) { AlertDialog( modifier = Modifier.semantics { testTagsAsResourceId = true }, onDismissRequest = onDismissRequest, text = { Column { - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_active), - icon = Icons.Outlined.Moving, - onClick = { onClickSortType(SortType.Active) }, - highlight = (selectedSortType == SortType.Active), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_hot), - icon = Icons.Outlined.LocalFireDepartment, - onClick = { onClickSortType(SortType.Hot) }, - highlight = (selectedSortType == SortType.Hot), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_new), - icon = Icons.Outlined.BrightnessLow, - onClick = { onClickSortType(SortType.New) }, - highlight = (selectedSortType == SortType.New), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_old), - icon = Icons.Outlined.History, - onClick = { onClickSortType(SortType.Old) }, - highlight = (selectedSortType == SortType.Old), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_controversial), - icon = Icons.Outlined.ThumbsUpDown, - onClick = { onClickSortType(SortType.Controversial) }, - highlight = (selectedSortType == SortType.Controversial), - ) - IconAndTextDrawerItem( - modifier = Modifier.testTag("jerboa:sortoption_mostcomments"), - text = stringResource(R.string.dialogs_most_comments), - icon = Icons.Outlined.FormatListNumbered, - onClick = { onClickSortType(SortType.MostComments) }, - highlight = (selectedSortType == SortType.MostComments), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_new_comments), - icon = Icons.Outlined.NewReleases, - onClick = { onClickSortType(SortType.NewComments) }, - highlight = (selectedSortType == SortType.NewComments), - ) + getSupportedSortTypes(siteVersion).filter { !topSortTypes.contains(it) }.forEach { + IconAndTextDrawerItem( + text = stringResource(it.text), + icon = it.icon, + onClick = { onClickSortType(it) }, + highlight = (selectedSortType == it), + ) + } IconAndTextDrawerItem( text = stringResource(R.string.dialogs_top), icon = Icons.Outlined.BarChart, @@ -208,6 +171,7 @@ fun CommentSortOptionsDialogPreview() { selectedSortType = CommentSortType.Hot, onDismissRequest = {}, onClickSortType = {}, + siteVersion = MINIMUM_API_VERSION, ) } @@ -216,41 +180,20 @@ fun CommentSortOptionsDialog( onDismissRequest: () -> Unit, onClickSortType: (CommentSortType) -> Unit, selectedSortType: CommentSortType, + siteVersion: String, ) { AlertDialog( onDismissRequest = onDismissRequest, text = { Column { - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_hot), - icon = Icons.Outlined.LocalFireDepartment, - onClick = { onClickSortType(CommentSortType.Hot) }, - highlight = (selectedSortType == CommentSortType.Hot), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_top), - icon = Icons.Outlined.BarChart, - onClick = { onClickSortType(CommentSortType.Top) }, - highlight = (selectedSortType == CommentSortType.Top), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_new), - icon = Icons.Outlined.NewReleases, - onClick = { onClickSortType(CommentSortType.New) }, - highlight = (selectedSortType == CommentSortType.New), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_old), - icon = Icons.Outlined.History, - onClick = { onClickSortType(CommentSortType.Old) }, - highlight = (selectedSortType == CommentSortType.Old), - ) - IconAndTextDrawerItem( - text = stringResource(R.string.dialogs_controversial), - icon = Icons.Outlined.ThumbsUpDown, - onClick = { onClickSortType(CommentSortType.Controversial) }, - highlight = (selectedSortType == CommentSortType.Controversial), - ) + getSupportedCommentSortTypes(siteVersion).forEach { + IconAndTextDrawerItem( + text = stringResource(it.text), + icon = it.icon, + onClick = { onClickSortType(it) }, + highlight = (selectedSortType == it), + ) + } } }, confirmButton = {}, diff --git a/app/src/main/java/com/jerboa/ui/components/community/Community.kt b/app/src/main/java/com/jerboa/ui/components/community/Community.kt index baecf9db1..c981f5741 100644 --- a/app/src/main/java/com/jerboa/ui/components/community/Community.kt +++ b/app/src/main/java/com/jerboa/ui/components/community/Community.kt @@ -132,6 +132,7 @@ fun CommunityHeader( onClickCommunityInfo: () -> Unit, onClickBack: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, + siteVersion: String, ) { var showSortOptions by remember { mutableStateOf(false) } var showTopOptions by remember { mutableStateOf(false) } @@ -149,6 +150,7 @@ fun CommunityHeader( showSortOptions = false showTopOptions = !showTopOptions }, + siteVersion = siteVersion, ) } diff --git a/app/src/main/java/com/jerboa/ui/components/community/CommunityActivity.kt b/app/src/main/java/com/jerboa/ui/components/community/CommunityActivity.kt index a56e30f72..b0b14f543 100644 --- a/app/src/main/java/com/jerboa/ui/components/community/CommunityActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/community/CommunityActivity.kt @@ -214,6 +214,7 @@ fun CommunityActivity( }, onClickCommunityInfo = appState::toCommunitySideBar, onClickBack = appState::navigateUp, + siteVersion = siteViewModel.siteVersion(), ) } else -> {} diff --git a/app/src/main/java/com/jerboa/ui/components/home/Home.kt b/app/src/main/java/com/jerboa/ui/components/home/Home.kt index 4db5de838..8d2834cd8 100644 --- a/app/src/main/java/com/jerboa/ui/components/home/Home.kt +++ b/app/src/main/java/com/jerboa/ui/components/home/Home.kt @@ -34,6 +34,7 @@ import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.compose.ui.tooling.preview.Preview import com.jerboa.PostViewMode import com.jerboa.R +import com.jerboa.api.MINIMUM_API_VERSION import com.jerboa.datatypes.types.ListingType import com.jerboa.datatypes.types.SortType import com.jerboa.datatypes.types.Tagline @@ -78,7 +79,8 @@ fun HomeHeader( selectedPostViewMode: PostViewMode, onClickSiteInfo: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, -) { + siteVersion: String, + ) { var showSortOptions by remember { mutableStateOf(false) } var showTopOptions by remember { mutableStateOf(false) } var showListingTypeOptions by remember { mutableStateOf(false) } @@ -97,6 +99,7 @@ fun HomeHeader( showSortOptions = false showTopOptions = !showTopOptions }, + siteVersion = siteVersion, ) } @@ -205,6 +208,7 @@ fun HomeHeaderPreview() { selectedListingType = ListingType.All, selectedPostViewMode = PostViewMode.Card, scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(), + siteVersion = MINIMUM_API_VERSION ) } diff --git a/app/src/main/java/com/jerboa/ui/components/home/HomeActivity.kt b/app/src/main/java/com/jerboa/ui/components/home/HomeActivity.kt index bbbf7a7aa..57d4e11b9 100644 --- a/app/src/main/java/com/jerboa/ui/components/home/HomeActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/home/HomeActivity.kt @@ -124,6 +124,7 @@ fun HomeActivity( account = account, scrollBehavior = scrollBehavior, onClickSiteInfo = appState::toSiteSideBar, + siteVersion = siteViewModel.siteVersion() ) }, content = { padding -> @@ -359,6 +360,7 @@ fun MainTopBar( account: Account?, onClickSiteInfo: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, + siteVersion: String, ) { Column { HomeHeader( @@ -385,6 +387,7 @@ fun MainTopBar( homeViewModel.resetPosts(account) }, onClickSiteInfo = onClickSiteInfo, + siteVersion = siteVersion, ) } } diff --git a/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt b/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt index 6d8d0ba90..baff5a35d 100644 --- a/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt +++ b/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt @@ -153,6 +153,7 @@ fun PersonProfileHeader( openDrawer: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, onBack: (() -> Unit)? = null, + siteVersion: String ) { var showSortOptions by remember { mutableStateOf(false) } var showTopOptions by remember { mutableStateOf(false) } @@ -170,6 +171,7 @@ fun PersonProfileHeader( showSortOptions = false showTopOptions = !showTopOptions }, + siteVersion = siteVersion, ) } diff --git a/app/src/main/java/com/jerboa/ui/components/person/PersonProfileActivity.kt b/app/src/main/java/com/jerboa/ui/components/person/PersonProfileActivity.kt index d180cf612..cc4a5bb3c 100644 --- a/app/src/main/java/com/jerboa/ui/components/person/PersonProfileActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/person/PersonProfileActivity.kt @@ -190,6 +190,7 @@ fun PersonProfileActivity( onReportPersonClick = {}, openDrawer = ::openDrawer, onBack = onBack, + siteVersion = siteViewModel.siteVersion(), ) } is ApiState.Holder -> { @@ -240,6 +241,7 @@ fun PersonProfileActivity( }, openDrawer = ::openDrawer, onBack = onBack, + siteVersion = siteViewModel.siteVersion(), ) } else -> {} diff --git a/app/src/main/java/com/jerboa/ui/components/post/PostActivity.kt b/app/src/main/java/com/jerboa/ui/components/post/PostActivity.kt index de85a8415..6caff2f68 100644 --- a/app/src/main/java/com/jerboa/ui/components/post/PostActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/post/PostActivity.kt @@ -205,6 +205,7 @@ fun PostActivity( showSortOptions = false onClickSortType(it) }, + siteVersion = siteViewModel.siteVersion(), ) } From d32f12d7c4aa48e275e2264308125e52939d2428 Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Mon, 31 Jul 2023 22:10:22 +0300 Subject: [PATCH 04/11] Fixed lint errors --- app/src/main/java/com/jerboa/datatypes/types/Others.kt | 1 - app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt | 2 +- app/src/main/java/com/jerboa/ui/components/home/Home.kt | 4 ++-- .../main/java/com/jerboa/ui/components/home/HomeActivity.kt | 2 +- .../java/com/jerboa/ui/components/person/PersonProfile.kt | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/jerboa/datatypes/types/Others.kt b/app/src/main/java/com/jerboa/datatypes/types/Others.kt index ca29e52c2..603eacae6 100644 --- a/app/src/main/java/com/jerboa/datatypes/types/Others.kt +++ b/app/src/main/java/com/jerboa/datatypes/types/Others.kt @@ -17,7 +17,6 @@ import com.jerboa.R import com.jerboa.api.MINIMUM_API_VERSION import kotlinx.parcelize.Parcelize - const val MINIMUM_CONTROVERSIAL_SORT_API_VERSION: String = "0.19" enum class RegistrationMode { diff --git a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt index ef758dda1..b7493209e 100644 --- a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt +++ b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt @@ -137,7 +137,7 @@ fun SortOptionsDialog( onClickSortTopOptions: () -> Unit, selectedSortType: SortType, siteVersion: String, - ) { +) { AlertDialog( modifier = Modifier.semantics { testTagsAsResourceId = true }, onDismissRequest = onDismissRequest, diff --git a/app/src/main/java/com/jerboa/ui/components/home/Home.kt b/app/src/main/java/com/jerboa/ui/components/home/Home.kt index 8d2834cd8..adbd98bf7 100644 --- a/app/src/main/java/com/jerboa/ui/components/home/Home.kt +++ b/app/src/main/java/com/jerboa/ui/components/home/Home.kt @@ -80,7 +80,7 @@ fun HomeHeader( onClickSiteInfo: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, siteVersion: String, - ) { +) { var showSortOptions by remember { mutableStateOf(false) } var showTopOptions by remember { mutableStateOf(false) } var showListingTypeOptions by remember { mutableStateOf(false) } @@ -208,7 +208,7 @@ fun HomeHeaderPreview() { selectedListingType = ListingType.All, selectedPostViewMode = PostViewMode.Card, scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(), - siteVersion = MINIMUM_API_VERSION + siteVersion = MINIMUM_API_VERSION, ) } diff --git a/app/src/main/java/com/jerboa/ui/components/home/HomeActivity.kt b/app/src/main/java/com/jerboa/ui/components/home/HomeActivity.kt index 57d4e11b9..a38da839e 100644 --- a/app/src/main/java/com/jerboa/ui/components/home/HomeActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/home/HomeActivity.kt @@ -124,7 +124,7 @@ fun HomeActivity( account = account, scrollBehavior = scrollBehavior, onClickSiteInfo = appState::toSiteSideBar, - siteVersion = siteViewModel.siteVersion() + siteVersion = siteViewModel.siteVersion(), ) }, content = { padding -> diff --git a/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt b/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt index baff5a35d..8ea93e928 100644 --- a/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt +++ b/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt @@ -153,7 +153,7 @@ fun PersonProfileHeader( openDrawer: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, onBack: (() -> Unit)? = null, - siteVersion: String + siteVersion: String, ) { var showSortOptions by remember { mutableStateOf(false) } var showTopOptions by remember { mutableStateOf(false) } From 3ae3a026766c670313b754d3095218b2ff7fc698 Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Tue, 1 Aug 2023 20:20:41 +0300 Subject: [PATCH 05/11] Added short form and long form to SortType enum, removed getLocalizedSortType utils, moved getSupportedSortTypes to the sort type enums, used them in Account settings as well --- app/src/main/java/com/jerboa/Utils.kt | 65 -------- .../java/com/jerboa/datatypes/types/Others.kt | 152 +++++++++++++++--- .../jerboa/ui/components/common/Dialogs.kt | 17 +- .../ui/components/community/Community.kt | 4 +- .../com/jerboa/ui/components/home/Home.kt | 4 +- .../ui/components/person/PersonProfile.kt | 4 +- .../settings/account/AccountSettings.kt | 3 +- 7 files changed, 146 insertions(+), 103 deletions(-) diff --git a/app/src/main/java/com/jerboa/Utils.kt b/app/src/main/java/com/jerboa/Utils.kt index 6aa4f0171..d0a6ca871 100644 --- a/app/src/main/java/com/jerboa/Utils.kt +++ b/app/src/main/java/com/jerboa/Utils.kt @@ -1062,71 +1062,6 @@ fun convertSpToPx(sp: TextUnit, ctx: Context): Int { return (sp.value * ctx.resources.displayMetrics.scaledDensity).toInt() } -/** - * Returns localized Strings for SortingType Enum - */ - -fun getLocalizedSortingTypeShortName(ctx: Context, sortingType: SortType): String { - return ctx.getString( - MAP_SORT_TYPE_SHORT_FORM[sortingType] - ?: throw IllegalStateException("Someone forgot to update the MAP_SORT_TYPE_SHORT_FORM"), - ) -} - -// ORDER MUST BE THE SAME AS THE ENUM -val MAP_SORT_TYPE_SHORT_FORM = mapOf( - SortType.Active to R.string.sorttype_active, - SortType.Hot to R.string.sorttype_hot, - SortType.New to R.string.sorttype_new, - SortType.Old to R.string.sorttype_old, - SortType.Controversial to R.string.sorttype_controversial, - SortType.TopDay to R.string.sorttype_topday, - SortType.TopWeek to R.string.sorttype_topweek, - SortType.TopMonth to R.string.sorttype_topmonth, - SortType.TopYear to R.string.sorttype_topyear, - SortType.TopAll to R.string.sorttype_topall, - SortType.MostComments to R.string.sorttype_mostcomments, - SortType.NewComments to R.string.sorttype_newcomments, - SortType.TopHour to R.string.sorttype_tophour, - SortType.TopSixHour to R.string.sorttype_topsixhour, - SortType.TopTwelveHour to R.string.sorttype_toptwelvehour, - SortType.TopThreeMonths to R.string.sorttype_topthreemonths, - SortType.TopSixMonths to R.string.sorttype_topsixmonths, - SortType.TopNineMonths to R.string.sorttype_topninemonths, -) - -/** - * Returns localized Strings for SortingType Enum - */ - -fun getLocalizedSortingTypeLongName(ctx: Context, sortingType: SortType): String { - return ctx.getString( - MAP_SORT_TYPE_LONG_FORM[sortingType] - ?: throw IllegalStateException("Someone forgot to update the MAP_SORT_TYPE_LONG_FORM"), - ) -} - -val MAP_SORT_TYPE_LONG_FORM = mapOf( - SortType.Active to R.string.sorttype_active, - SortType.Hot to R.string.sorttype_hot, - SortType.New to R.string.sorttype_new, - SortType.Old to R.string.sorttype_old, - SortType.Controversial to R.string.sorttype_controversial, - SortType.TopDay to R.string.dialogs_top_day, - SortType.TopWeek to R.string.dialogs_top_week, - SortType.TopMonth to R.string.dialogs_top_month, - SortType.TopYear to R.string.dialogs_top_year, - SortType.TopAll to R.string.dialogs_top_all, - SortType.MostComments to R.string.dialogs_most_comments, - SortType.NewComments to R.string.dialogs_new_comments, - SortType.TopHour to R.string.dialogs_top_hour, - SortType.TopSixHour to R.string.dialogs_top_six_hour, - SortType.TopTwelveHour to R.string.dialogs_top_twelve_hour, - SortType.TopThreeMonths to R.string.dialogs_top_three_month, - SortType.TopSixMonths to R.string.dialogs_top_six_month, - SortType.TopNineMonths to R.string.dialogs_top_nine_month, -) - /** * Returns localized Strings for UserTab Enum */ diff --git a/app/src/main/java/com/jerboa/datatypes/types/Others.kt b/app/src/main/java/com/jerboa/datatypes/types/Others.kt index 603eacae6..2ad4546a7 100644 --- a/app/src/main/java/com/jerboa/datatypes/types/Others.kt +++ b/app/src/main/java/com/jerboa/datatypes/types/Others.kt @@ -1,6 +1,7 @@ package com.jerboa.datatypes.types import android.os.Parcelable +import androidx.annotation.StringRes import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.BarChart import androidx.compose.material.icons.outlined.BrightnessLow @@ -15,9 +16,11 @@ import androidx.compose.ui.graphics.vector.ImageVector import com.google.gson.annotations.SerializedName import com.jerboa.R import com.jerboa.api.MINIMUM_API_VERSION +import com.jerboa.compareVersions import kotlinx.parcelize.Parcelize const val MINIMUM_CONTROVERSIAL_SORT_API_VERSION: String = "0.19" +const val MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION: String = "0.18.1" enum class RegistrationMode { @SerializedName("Closed") @@ -33,113 +36,217 @@ enum class RegistrationMode { /** * Different sort types used in lemmy. */ -enum class SortType(val text: Int, val icon: ImageVector? = null, val version: String = MINIMUM_API_VERSION) { +enum class SortType( + @StringRes val text: Int, + @StringRes val shortForm: Int, + @StringRes val longForm: Int, + val icon: ImageVector? = null, + val version: String = MINIMUM_API_VERSION, +) { /** * Posts sorted by the most recent comment. */ @SerializedName("Active") - Active(R.string.dialogs_active, Icons.Outlined.Moving), + Active( + R.string.dialogs_active, + R.string.sorttype_active, + R.string.sorttype_active, + Icons.Outlined.Moving + ), /** * Posts sorted by the published time. */ @SerializedName("Hot") - Hot(R.string.dialogs_hot, Icons.Outlined.LocalFireDepartment), + Hot( + R.string.dialogs_hot, + R.string.sorttype_hot, + R.string.sorttype_hot, + Icons.Outlined.LocalFireDepartment + ), @SerializedName("New") - New(R.string.dialogs_new, Icons.Outlined.BrightnessLow), + New( + R.string.dialogs_new, + R.string.sorttype_new, + R.string.sorttype_new, + Icons.Outlined.BrightnessLow + ), /** * Posts sorted by the published time ascending */ @SerializedName("Old") - Old(R.string.dialogs_old, Icons.Outlined.History), + Old( + R.string.dialogs_old, + R.string.sorttype_old, + R.string.sorttype_old, + Icons.Outlined.History + ), /** * Posts sorted by controversy rank. */ @SerializedName("Controversial") - Controversial(R.string.dialogs_controversial, Icons.Outlined.ThumbsUpDown, MINIMUM_CONTROVERSIAL_SORT_API_VERSION), + Controversial( + R.string.dialogs_controversial, + R.string.sorttype_controversial, + R.string.sorttype_controversial, + Icons.Outlined.ThumbsUpDown, + MINIMUM_CONTROVERSIAL_SORT_API_VERSION + ), /** * The top posts for this last day. */ @SerializedName("TopDay") - TopDay(R.string.dialogs_top_day, Icons.Outlined.BarChart), + TopDay( + R.string.dialogs_top_day, + R.string.sorttype_topday, + R.string.dialogs_top_day, + Icons.Outlined.BarChart + ), /** * The top posts for this last week. */ @SerializedName("TopWeek") - TopWeek(R.string.dialogs_top_week, Icons.Outlined.BarChart), + TopWeek( + R.string.dialogs_top_week, + R.string.sorttype_topweek, + R.string.dialogs_top_week, + Icons.Outlined.BarChart + ), /** * The top posts for this last month. */ @SerializedName("TopMonth") - TopMonth(R.string.dialogs_top_month, Icons.Outlined.BarChart), + TopMonth( + R.string.dialogs_top_month, + R.string.sorttype_topmonth, + R.string.dialogs_top_month, + Icons.Outlined.BarChart + ), /** * The top posts for this last year. */ @SerializedName("TopYear") - TopYear(R.string.dialogs_top_year, Icons.Outlined.BarChart), + TopYear( + R.string.dialogs_top_year, + R.string.sorttype_topyear, + R.string.dialogs_top_year, + Icons.Outlined.BarChart + ), /** * The top posts of all time. */ @SerializedName("TopAll") - TopAll(R.string.dialogs_top_all, Icons.Outlined.BarChart), + TopAll( + R.string.dialogs_top_all, + R.string.sorttype_topall, + R.string.dialogs_top_all, + Icons.Outlined.BarChart + ), /** * Posts sorted by the most comments. */ @SerializedName("MostComments") - MostComments(R.string.dialogs_most_comments, Icons.Outlined.FormatListNumbered), + MostComments( + R.string.dialogs_most_comments, + R.string.sorttype_mostcomments, + R.string.sorttype_mostcomments, + Icons.Outlined.FormatListNumbered + ), /** * Posts sorted by the newest comments, with no necrobumping. IE a forum sort. */ @SerializedName("NewComments") - NewComments(R.string.dialogs_new_comments, Icons.Outlined.NewReleases), + NewComments( + R.string.dialogs_new_comments, + R.string.sorttype_newcomments, + R.string.sorttype_newcomments, + Icons.Outlined.NewReleases + ), /** * Posts sorted by the top hour. */ @SerializedName("TopHour") - TopHour(R.string.dialogs_top_hour, Icons.Outlined.BarChart), + TopHour( + R.string.dialogs_top_hour, + R.string.sorttype_tophour, + R.string.dialogs_top_hour, + Icons.Outlined.BarChart + ), /** * Posts sorted by the top six hour. */ @SerializedName("TopSixHour") - TopSixHour(R.string.dialogs_top_six_hour, Icons.Outlined.BarChart), + TopSixHour( + R.string.dialogs_top_six_hour, + R.string.sorttype_topsixhour, + R.string.dialogs_top_six_hour, + Icons.Outlined.BarChart + ), /** * Posts sorted by the top twelve hour. */ @SerializedName("TopTwelveHour") - TopTwelveHour(R.string.dialogs_top_twelve_hour, Icons.Outlined.BarChart), + TopTwelveHour( + R.string.dialogs_top_twelve_hour, + R.string.sorttype_toptwelvehour, + R.string.dialogs_top_twelve_hour, + Icons.Outlined.BarChart + ), /** * Posts sorted by the top three months. */ @SerializedName("TopThreeMonths") - TopThreeMonths(R.string.dialogs_top_three_month, Icons.Outlined.BarChart), + TopThreeMonths( + R.string.dialogs_top_three_month, + R.string.sorttype_topthreemonths, + R.string.dialogs_top_three_month, + Icons.Outlined.BarChart, + MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION + ), /** * Posts sorted by the top six months. */ @SerializedName("TopSixMonths") - TopSixMonths(R.string.dialogs_top_six_month, Icons.Outlined.BarChart), + TopSixMonths( + R.string.dialogs_top_six_month, + R.string.sorttype_topsixmonths, + R.string.dialogs_top_six_month, + Icons.Outlined.BarChart, + MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION + ), /** * Posts sorted by the top nine months. */ @SerializedName("TopNineMonths") - TopNineMonths(R.string.dialogs_top_nine_month, Icons.Outlined.BarChart), + TopNineMonths( + R.string.dialogs_top_nine_month, + R.string.sorttype_topninemonths, + R.string.dialogs_top_nine_month, + Icons.Outlined.BarChart, + MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION + ), + ; + + companion object { + val getSupportedSortTypes = { siteVersion: String -> values().filter { compareVersions(siteVersion, it.version) >= 0 } } + } } -// When updating this enum, don't forget to update MAP_SORT_TYPE_SHORT_FORM and MAP_SORT_TYPE_LONG_FORM /** * Different comment sort types used in lemmy. @@ -174,6 +281,11 @@ enum class CommentSortType(val text: Int, val icon: ImageVector? = null, val ver */ @SerializedName("Controversial") Controversial(R.string.dialogs_controversial, Icons.Outlined.ThumbsUpDown, MINIMUM_CONTROVERSIAL_SORT_API_VERSION), + ; + + companion object { + val getSupportedSortTypes = { siteVersion: String -> values().filter { compareVersions(siteVersion, it.version) >= 0 } } + } } /** diff --git a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt index b7493209e..77a2be5de 100644 --- a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt +++ b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt @@ -35,11 +35,9 @@ import com.jerboa.PostViewMode import com.jerboa.R import com.jerboa.UnreadOrAll import com.jerboa.api.MINIMUM_API_VERSION -import com.jerboa.compareVersions import com.jerboa.datatypes.types.CommentSortType import com.jerboa.datatypes.types.ListingType import com.jerboa.datatypes.types.SortType -import com.jerboa.getLocalizedSortingTypeLongName import com.jerboa.model.AppSettingsViewModel val DONATION_MARKDOWN = """ @@ -54,24 +52,23 @@ val DONATION_MARKDOWN = """ """.trimIndent() -val topSortTypes = SortType.values().filter { it.name.startsWith("Top") } -val getSupportedSortTypes = { siteVersion: String -> SortType.values().filter { compareVersions(siteVersion, it.version) >= 0 } } -val getSupportedCommentSortTypes = { siteVersion: String -> CommentSortType.values().filter { compareVersions(siteVersion, it.version) >= 0 } } +val isTopSort = { sort: SortType -> sort.name.startsWith("Top") } @Composable fun SortTopOptionsDialog( onDismissRequest: () -> Unit, onClickSortType: (SortType) -> Unit, selectedSortType: SortType, + siteVersion: String, ) { val ctx = LocalContext.current AlertDialog( onDismissRequest = onDismissRequest, text = { Column { - topSortTypes.forEach { + SortType.getSupportedSortTypes(siteVersion).filter(isTopSort).forEach{ IconAndTextDrawerItem( - text = getLocalizedSortingTypeLongName(ctx, it), + text = ctx.getString(it.longForm), onClick = { onClickSortType(it) }, highlight = (selectedSortType == it), ) @@ -143,7 +140,7 @@ fun SortOptionsDialog( onDismissRequest = onDismissRequest, text = { Column { - getSupportedSortTypes(siteVersion).filter { !topSortTypes.contains(it) }.forEach { + SortType.getSupportedSortTypes(siteVersion).filter { !isTopSort(it) }.forEach { IconAndTextDrawerItem( text = stringResource(it.text), icon = it.icon, @@ -156,7 +153,7 @@ fun SortOptionsDialog( icon = Icons.Outlined.BarChart, onClick = onClickSortTopOptions, more = true, - highlight = (topSortTypes.contains(selectedSortType)), + highlight = (isTopSort(selectedSortType)), ) } }, @@ -186,7 +183,7 @@ fun CommentSortOptionsDialog( onDismissRequest = onDismissRequest, text = { Column { - getSupportedCommentSortTypes(siteVersion).forEach { + CommentSortType.getSupportedSortTypes(siteVersion).forEach { IconAndTextDrawerItem( text = stringResource(it.text), icon = it.icon, diff --git a/app/src/main/java/com/jerboa/ui/components/community/Community.kt b/app/src/main/java/com/jerboa/ui/components/community/Community.kt index c981f5741..a7bdc666f 100644 --- a/app/src/main/java/com/jerboa/ui/components/community/Community.kt +++ b/app/src/main/java/com/jerboa/ui/components/community/Community.kt @@ -16,7 +16,6 @@ import com.jerboa.datatypes.sampleCommunityView import com.jerboa.datatypes.types.CommunityView import com.jerboa.datatypes.types.SortType import com.jerboa.datatypes.types.SubscribedType -import com.jerboa.getLocalizedSortingTypeShortName import com.jerboa.ui.components.common.IconAndTextDrawerItem import com.jerboa.ui.components.common.LargerCircularIcon import com.jerboa.ui.components.common.PictrsBannerImage @@ -162,6 +161,7 @@ fun CommunityHeader( showTopOptions = false onClickSortType(it) }, + siteVersion = siteVersion, ) } @@ -227,7 +227,7 @@ fun CommunityHeaderTitle( overflow = TextOverflow.Ellipsis, ) Text( - text = getLocalizedSortingTypeShortName(ctx, selectedSortType), + text = ctx.getString(selectedSortType.shortForm), style = MaterialTheme.typography.titleMedium, ) } diff --git a/app/src/main/java/com/jerboa/ui/components/home/Home.kt b/app/src/main/java/com/jerboa/ui/components/home/Home.kt index adbd98bf7..7b2372ea7 100644 --- a/app/src/main/java/com/jerboa/ui/components/home/Home.kt +++ b/app/src/main/java/com/jerboa/ui/components/home/Home.kt @@ -39,7 +39,6 @@ import com.jerboa.datatypes.types.ListingType import com.jerboa.datatypes.types.SortType import com.jerboa.datatypes.types.Tagline import com.jerboa.getLocalizedListingTypeName -import com.jerboa.getLocalizedSortingTypeShortName import com.jerboa.ui.components.common.IconAndTextDrawerItem import com.jerboa.ui.components.common.ListingTypeOptionsDialog import com.jerboa.ui.components.common.MyMarkdownText @@ -60,7 +59,7 @@ fun HomeHeaderTitle( style = MaterialTheme.typography.titleLarge, ) Text( - text = getLocalizedSortingTypeShortName(ctx, selectedSortType), + text = ctx.getString(selectedSortType.shortForm), style = MaterialTheme.typography.titleSmall, ) } @@ -111,6 +110,7 @@ fun HomeHeader( showTopOptions = false onClickSortType(it) }, + siteVersion = siteVersion, ) } diff --git a/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt b/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt index 8ea93e928..61218efe2 100644 --- a/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt +++ b/app/src/main/java/com/jerboa/ui/components/person/PersonProfile.kt @@ -33,7 +33,6 @@ import com.jerboa.R import com.jerboa.datatypes.samplePersonView import com.jerboa.datatypes.types.PersonView import com.jerboa.datatypes.types.SortType -import com.jerboa.getLocalizedSortingTypeShortName import com.jerboa.personNameShown import com.jerboa.ui.components.common.DotSpacer import com.jerboa.ui.components.common.IconAndTextDrawerItem @@ -183,6 +182,7 @@ fun PersonProfileHeader( showTopOptions = false onClickSortType(it) }, + siteVersion = siteVersion, ) } @@ -259,7 +259,7 @@ fun PersonProfileHeaderTitle( style = MaterialTheme.typography.titleLarge, ) Text( - text = getLocalizedSortingTypeShortName(LocalContext.current, selectedSortType), + text = LocalContext.current.getString(selectedSortType.shortForm), style = MaterialTheme.typography.titleMedium, ) } diff --git a/app/src/main/java/com/jerboa/ui/components/settings/account/AccountSettings.kt b/app/src/main/java/com/jerboa/ui/components/settings/account/AccountSettings.kt index 10734cb57..ff08a6467 100644 --- a/app/src/main/java/com/jerboa/ui/components/settings/account/AccountSettings.kt +++ b/app/src/main/java/com/jerboa/ui/components/settings/account/AccountSettings.kt @@ -20,7 +20,6 @@ import com.alorma.compose.settings.storage.base.rememberBooleanSettingState import com.alorma.compose.settings.storage.base.rememberIntSettingState import com.alorma.compose.settings.ui.SettingsCheckbox import com.alorma.compose.settings.ui.SettingsListDropdown -import com.jerboa.MAP_SORT_TYPE_SHORT_FORM import com.jerboa.R import com.jerboa.api.ApiState import com.jerboa.api.uploadPictrsImage @@ -125,7 +124,7 @@ fun SettingsForm( val sendNotificationsToEmail = rememberBooleanSettingState(luv?.local_user?.send_notifications_to_email ?: false) val sortTypeNames = remember { - MAP_SORT_TYPE_SHORT_FORM.values.map { ctx.getString(it) } + SortType.getSupportedSortTypes(siteViewModel.siteVersion()).map { ctx.getString(it.shortForm) } } val form = SaveUserSettings( display_name = displayName, From 7bfaddb025e4e5f4172cfda5541a2de33ddffceb Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Tue, 1 Aug 2023 20:35:53 +0300 Subject: [PATCH 06/11] Lint errors --- .../java/com/jerboa/datatypes/types/Others.kt | 36 +++++++++---------- .../jerboa/ui/components/common/Dialogs.kt | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/jerboa/datatypes/types/Others.kt b/app/src/main/java/com/jerboa/datatypes/types/Others.kt index 2ad4546a7..e962baf26 100644 --- a/app/src/main/java/com/jerboa/datatypes/types/Others.kt +++ b/app/src/main/java/com/jerboa/datatypes/types/Others.kt @@ -51,7 +51,7 @@ enum class SortType( R.string.dialogs_active, R.string.sorttype_active, R.string.sorttype_active, - Icons.Outlined.Moving + Icons.Outlined.Moving, ), /** @@ -62,7 +62,7 @@ enum class SortType( R.string.dialogs_hot, R.string.sorttype_hot, R.string.sorttype_hot, - Icons.Outlined.LocalFireDepartment + Icons.Outlined.LocalFireDepartment, ), @SerializedName("New") @@ -70,7 +70,7 @@ enum class SortType( R.string.dialogs_new, R.string.sorttype_new, R.string.sorttype_new, - Icons.Outlined.BrightnessLow + Icons.Outlined.BrightnessLow, ), /** @@ -81,7 +81,7 @@ enum class SortType( R.string.dialogs_old, R.string.sorttype_old, R.string.sorttype_old, - Icons.Outlined.History + Icons.Outlined.History, ), /** @@ -93,7 +93,7 @@ enum class SortType( R.string.sorttype_controversial, R.string.sorttype_controversial, Icons.Outlined.ThumbsUpDown, - MINIMUM_CONTROVERSIAL_SORT_API_VERSION + MINIMUM_CONTROVERSIAL_SORT_API_VERSION, ), /** @@ -104,7 +104,7 @@ enum class SortType( R.string.dialogs_top_day, R.string.sorttype_topday, R.string.dialogs_top_day, - Icons.Outlined.BarChart + Icons.Outlined.BarChart, ), /** @@ -115,7 +115,7 @@ enum class SortType( R.string.dialogs_top_week, R.string.sorttype_topweek, R.string.dialogs_top_week, - Icons.Outlined.BarChart + Icons.Outlined.BarChart, ), /** @@ -126,7 +126,7 @@ enum class SortType( R.string.dialogs_top_month, R.string.sorttype_topmonth, R.string.dialogs_top_month, - Icons.Outlined.BarChart + Icons.Outlined.BarChart, ), /** @@ -137,7 +137,7 @@ enum class SortType( R.string.dialogs_top_year, R.string.sorttype_topyear, R.string.dialogs_top_year, - Icons.Outlined.BarChart + Icons.Outlined.BarChart, ), /** @@ -148,7 +148,7 @@ enum class SortType( R.string.dialogs_top_all, R.string.sorttype_topall, R.string.dialogs_top_all, - Icons.Outlined.BarChart + Icons.Outlined.BarChart, ), /** @@ -159,7 +159,7 @@ enum class SortType( R.string.dialogs_most_comments, R.string.sorttype_mostcomments, R.string.sorttype_mostcomments, - Icons.Outlined.FormatListNumbered + Icons.Outlined.FormatListNumbered, ), /** @@ -170,7 +170,7 @@ enum class SortType( R.string.dialogs_new_comments, R.string.sorttype_newcomments, R.string.sorttype_newcomments, - Icons.Outlined.NewReleases + Icons.Outlined.NewReleases, ), /** @@ -181,7 +181,7 @@ enum class SortType( R.string.dialogs_top_hour, R.string.sorttype_tophour, R.string.dialogs_top_hour, - Icons.Outlined.BarChart + Icons.Outlined.BarChart, ), /** @@ -192,7 +192,7 @@ enum class SortType( R.string.dialogs_top_six_hour, R.string.sorttype_topsixhour, R.string.dialogs_top_six_hour, - Icons.Outlined.BarChart + Icons.Outlined.BarChart, ), /** @@ -203,7 +203,7 @@ enum class SortType( R.string.dialogs_top_twelve_hour, R.string.sorttype_toptwelvehour, R.string.dialogs_top_twelve_hour, - Icons.Outlined.BarChart + Icons.Outlined.BarChart, ), /** @@ -215,7 +215,7 @@ enum class SortType( R.string.sorttype_topthreemonths, R.string.dialogs_top_three_month, Icons.Outlined.BarChart, - MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION + MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION, ), /** @@ -227,7 +227,7 @@ enum class SortType( R.string.sorttype_topsixmonths, R.string.dialogs_top_six_month, Icons.Outlined.BarChart, - MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION + MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION, ), /** @@ -239,7 +239,7 @@ enum class SortType( R.string.sorttype_topninemonths, R.string.dialogs_top_nine_month, Icons.Outlined.BarChart, - MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION + MINIMUM_TOP_X_MONTHLY_SORT_API_VERSION, ), ; diff --git a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt index 77a2be5de..6f48f58ec 100644 --- a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt +++ b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt @@ -66,7 +66,7 @@ fun SortTopOptionsDialog( onDismissRequest = onDismissRequest, text = { Column { - SortType.getSupportedSortTypes(siteVersion).filter(isTopSort).forEach{ + SortType.getSupportedSortTypes(siteVersion).filter(isTopSort).forEach { IconAndTextDrawerItem( text = ctx.getString(it.longForm), onClick = { onClickSortType(it) }, From dcf0e653ee0f7912c224123aa28c7077e731fcf4 Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Wed, 2 Aug 2023 13:13:38 +0300 Subject: [PATCH 07/11] Removed dialog string for Controversial and made everything use the short form which is the same, removed the text field from the SortType enum and used the long form in the Dialogs forms --- app/src/main/java/com/jerboa/Utils.kt | 2 +- .../java/com/jerboa/datatypes/types/Others.kt | 21 +------------------ .../jerboa/ui/components/common/Dialogs.kt | 2 +- app/src/main/res/values-el/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 5 files changed, 3 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/jerboa/Utils.kt b/app/src/main/java/com/jerboa/Utils.kt index d0a6ca871..1eaa2fa29 100644 --- a/app/src/main/java/com/jerboa/Utils.kt +++ b/app/src/main/java/com/jerboa/Utils.kt @@ -1095,7 +1095,7 @@ fun getLocalizedCommentSortTypeName(ctx: Context, commentSortType: CommentSortTy CommentSortType.New -> ctx.getString(R.string.sorttype_new) CommentSortType.Old -> ctx.getString(R.string.sorttype_old) CommentSortType.Top -> ctx.getString(R.string.dialogs_top) - CommentSortType.Controversial -> ctx.getString(R.string.dialogs_controversial) + CommentSortType.Controversial -> ctx.getString(R.string.sorttype_controversial) } return returnString } diff --git a/app/src/main/java/com/jerboa/datatypes/types/Others.kt b/app/src/main/java/com/jerboa/datatypes/types/Others.kt index e962baf26..e448c154e 100644 --- a/app/src/main/java/com/jerboa/datatypes/types/Others.kt +++ b/app/src/main/java/com/jerboa/datatypes/types/Others.kt @@ -37,7 +37,6 @@ enum class RegistrationMode { * Different sort types used in lemmy. */ enum class SortType( - @StringRes val text: Int, @StringRes val shortForm: Int, @StringRes val longForm: Int, val icon: ImageVector? = null, @@ -48,7 +47,6 @@ enum class SortType( */ @SerializedName("Active") Active( - R.string.dialogs_active, R.string.sorttype_active, R.string.sorttype_active, Icons.Outlined.Moving, @@ -59,7 +57,6 @@ enum class SortType( */ @SerializedName("Hot") Hot( - R.string.dialogs_hot, R.string.sorttype_hot, R.string.sorttype_hot, Icons.Outlined.LocalFireDepartment, @@ -67,7 +64,6 @@ enum class SortType( @SerializedName("New") New( - R.string.dialogs_new, R.string.sorttype_new, R.string.sorttype_new, Icons.Outlined.BrightnessLow, @@ -78,7 +74,6 @@ enum class SortType( */ @SerializedName("Old") Old( - R.string.dialogs_old, R.string.sorttype_old, R.string.sorttype_old, Icons.Outlined.History, @@ -89,7 +84,6 @@ enum class SortType( */ @SerializedName("Controversial") Controversial( - R.string.dialogs_controversial, R.string.sorttype_controversial, R.string.sorttype_controversial, Icons.Outlined.ThumbsUpDown, @@ -101,7 +95,6 @@ enum class SortType( */ @SerializedName("TopDay") TopDay( - R.string.dialogs_top_day, R.string.sorttype_topday, R.string.dialogs_top_day, Icons.Outlined.BarChart, @@ -112,7 +105,6 @@ enum class SortType( */ @SerializedName("TopWeek") TopWeek( - R.string.dialogs_top_week, R.string.sorttype_topweek, R.string.dialogs_top_week, Icons.Outlined.BarChart, @@ -123,7 +115,6 @@ enum class SortType( */ @SerializedName("TopMonth") TopMonth( - R.string.dialogs_top_month, R.string.sorttype_topmonth, R.string.dialogs_top_month, Icons.Outlined.BarChart, @@ -134,7 +125,6 @@ enum class SortType( */ @SerializedName("TopYear") TopYear( - R.string.dialogs_top_year, R.string.sorttype_topyear, R.string.dialogs_top_year, Icons.Outlined.BarChart, @@ -145,7 +135,6 @@ enum class SortType( */ @SerializedName("TopAll") TopAll( - R.string.dialogs_top_all, R.string.sorttype_topall, R.string.dialogs_top_all, Icons.Outlined.BarChart, @@ -156,7 +145,6 @@ enum class SortType( */ @SerializedName("MostComments") MostComments( - R.string.dialogs_most_comments, R.string.sorttype_mostcomments, R.string.sorttype_mostcomments, Icons.Outlined.FormatListNumbered, @@ -167,7 +155,6 @@ enum class SortType( */ @SerializedName("NewComments") NewComments( - R.string.dialogs_new_comments, R.string.sorttype_newcomments, R.string.sorttype_newcomments, Icons.Outlined.NewReleases, @@ -178,7 +165,6 @@ enum class SortType( */ @SerializedName("TopHour") TopHour( - R.string.dialogs_top_hour, R.string.sorttype_tophour, R.string.dialogs_top_hour, Icons.Outlined.BarChart, @@ -189,7 +175,6 @@ enum class SortType( */ @SerializedName("TopSixHour") TopSixHour( - R.string.dialogs_top_six_hour, R.string.sorttype_topsixhour, R.string.dialogs_top_six_hour, Icons.Outlined.BarChart, @@ -200,7 +185,6 @@ enum class SortType( */ @SerializedName("TopTwelveHour") TopTwelveHour( - R.string.dialogs_top_twelve_hour, R.string.sorttype_toptwelvehour, R.string.dialogs_top_twelve_hour, Icons.Outlined.BarChart, @@ -211,7 +195,6 @@ enum class SortType( */ @SerializedName("TopThreeMonths") TopThreeMonths( - R.string.dialogs_top_three_month, R.string.sorttype_topthreemonths, R.string.dialogs_top_three_month, Icons.Outlined.BarChart, @@ -223,7 +206,6 @@ enum class SortType( */ @SerializedName("TopSixMonths") TopSixMonths( - R.string.dialogs_top_six_month, R.string.sorttype_topsixmonths, R.string.dialogs_top_six_month, Icons.Outlined.BarChart, @@ -235,7 +217,6 @@ enum class SortType( */ @SerializedName("TopNineMonths") TopNineMonths( - R.string.dialogs_top_nine_month, R.string.sorttype_topninemonths, R.string.dialogs_top_nine_month, Icons.Outlined.BarChart, @@ -280,7 +261,7 @@ enum class CommentSortType(val text: Int, val icon: ImageVector? = null, val ver * Posts sorted by controversy rank. */ @SerializedName("Controversial") - Controversial(R.string.dialogs_controversial, Icons.Outlined.ThumbsUpDown, MINIMUM_CONTROVERSIAL_SORT_API_VERSION), + Controversial(R.string.sorttype_controversial, Icons.Outlined.ThumbsUpDown, MINIMUM_CONTROVERSIAL_SORT_API_VERSION), ; companion object { diff --git a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt index 6f48f58ec..f495fb871 100644 --- a/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt +++ b/app/src/main/java/com/jerboa/ui/components/common/Dialogs.kt @@ -142,7 +142,7 @@ fun SortOptionsDialog( Column { SortType.getSupportedSortTypes(siteVersion).filter { !isTopSort(it) }.forEach { IconAndTextDrawerItem( - text = stringResource(it.text), + text = stringResource(it.longForm), icon = it.icon, onClick = { onClickSortType(it) }, highlight = (selectedSortType == it), diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 3f47a5394..8fef64ac1 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -326,6 +326,5 @@ Κορυφαία Εννέα Μηνών Προβολή πηγής Προβολή πρωτότυπου - Αμφιλεγόμενα Αμφιλεγόμενα diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dfccea9ec..7b7d48c34 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -134,7 +134,6 @@ Top Year Top All Old - Controversial Unread Server version (%1$s) is under the minimum supported version (%2$s).\n\nPlease inform your administrator and login to another instance, or sign out and use the default instance. Server version (%1$s) too low. From e6f2f46b9fff1538bd7fd3c1fd6039796326124d Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Wed, 2 Aug 2023 19:35:58 +0300 Subject: [PATCH 08/11] lint --- app/src/main/java/com/jerboa/model/SiteViewModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/jerboa/model/SiteViewModel.kt b/app/src/main/java/com/jerboa/model/SiteViewModel.kt index 8975d66e7..e04d1963e 100644 --- a/app/src/main/java/com/jerboa/model/SiteViewModel.kt +++ b/app/src/main/java/com/jerboa/model/SiteViewModel.kt @@ -124,7 +124,7 @@ class SiteViewModel : ViewModel() { else -> true } } - + fun siteVersion(): String { return when (val res = siteRes) { is ApiState.Success -> res.data.version From 21e26ef7daf203953ebcbcd586d60523bada9c4c Mon Sep 17 00:00:00 2001 From: Pavlos Smith Date: Thu, 3 Aug 2023 18:05:16 +0300 Subject: [PATCH 09/11] Fixed SortType and supported sort type indexes not lining up --- .../ui/components/settings/account/AccountSettings.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/jerboa/ui/components/settings/account/AccountSettings.kt b/app/src/main/java/com/jerboa/ui/components/settings/account/AccountSettings.kt index ff08a6467..3f57e42eb 100644 --- a/app/src/main/java/com/jerboa/ui/components/settings/account/AccountSettings.kt +++ b/app/src/main/java/com/jerboa/ui/components/settings/account/AccountSettings.kt @@ -110,7 +110,9 @@ fun SettingsForm( } var avatar by rememberSaveable { mutableStateOf(luv?.person?.avatar.orEmpty()) } var banner by rememberSaveable { mutableStateOf(luv?.person?.banner.orEmpty()) } - val defaultSortType = rememberIntSettingState(luv?.local_user?.default_sort_type?.ordinal ?: 0) + val supportedSortTypes = remember { SortType.getSupportedSortTypes(siteViewModel.siteVersion()) } + val defaultSortTypeInitial = luv?.local_user?.default_sort_type ?: SortType.Active + val defaultSortType = rememberIntSettingState(supportedSortTypes.indexOf(defaultSortTypeInitial)) val defaultListingType = rememberIntSettingState(luv?.local_user?.default_listing_type?.ordinal ?: 0) val showAvatars = rememberBooleanSettingState(luv?.local_user?.show_avatars ?: false) @@ -123,9 +125,7 @@ fun SettingsForm( rememberBooleanSettingState(luv?.local_user?.show_new_post_notifs ?: false) val sendNotificationsToEmail = rememberBooleanSettingState(luv?.local_user?.send_notifications_to_email ?: false) - val sortTypeNames = remember { - SortType.getSupportedSortTypes(siteViewModel.siteVersion()).map { ctx.getString(it.shortForm) } - } + val sortTypeNames = remember { supportedSortTypes.map { ctx.getString(it.shortForm) } } val form = SaveUserSettings( display_name = displayName, bio = bio.text, @@ -136,7 +136,7 @@ fun SettingsForm( matrix_user_id = matrixUserId, interface_language = interfaceLang, bot_account = botAccount.value, - default_sort_type = SortType.values()[defaultSortType.value], + default_sort_type = supportedSortTypes[defaultSortType.value], send_notifications_to_email = sendNotificationsToEmail.value, show_avatars = showAvatars.value, show_bot_accounts = showBotAccount.value, From 99ba84397e3b71372e898639b6b9e5c871cb9684 Mon Sep 17 00:00:00 2001 From: iByteABit256 Date: Tue, 8 Aug 2023 11:37:52 +0300 Subject: [PATCH 10/11] unused imports --- .../main/java/com/jerboa/ui/components/community/Community.kt | 1 - app/src/main/java/com/jerboa/ui/components/home/Home.kt | 1 - 2 files changed, 2 deletions(-) diff --git a/app/src/main/java/com/jerboa/ui/components/community/Community.kt b/app/src/main/java/com/jerboa/ui/components/community/Community.kt index b64c91f5b..0072cf35f 100644 --- a/app/src/main/java/com/jerboa/ui/components/community/Community.kt +++ b/app/src/main/java/com/jerboa/ui/components/community/Community.kt @@ -17,7 +17,6 @@ import com.jerboa.datatypes.sampleCommunityView import com.jerboa.datatypes.types.CommunityView import com.jerboa.datatypes.types.SortType import com.jerboa.datatypes.types.SubscribedType -import com.jerboa.ui.components.common.IconAndTextDrawerItem import com.jerboa.ui.components.common.LargerCircularIcon import com.jerboa.ui.components.common.MenuItem import com.jerboa.ui.components.common.PictrsBannerImage diff --git a/app/src/main/java/com/jerboa/ui/components/home/Home.kt b/app/src/main/java/com/jerboa/ui/components/home/Home.kt index 58661fea6..646acf743 100644 --- a/app/src/main/java/com/jerboa/ui/components/home/Home.kt +++ b/app/src/main/java/com/jerboa/ui/components/home/Home.kt @@ -43,7 +43,6 @@ import com.jerboa.datatypes.types.ListingType import com.jerboa.datatypes.types.SortType import com.jerboa.datatypes.types.Tagline import com.jerboa.getLocalizedListingTypeName -import com.jerboa.ui.components.common.ListingTypeOptionsDialog import com.jerboa.ui.components.common.MenuItem import com.jerboa.ui.components.common.MyMarkdownText import com.jerboa.ui.components.common.PostViewModeDialog From 53ac0a830e55fee853055d0febfb9a547b9dbe5f Mon Sep 17 00:00:00 2001 From: Dessalines Date: Thu, 24 Aug 2023 11:16:34 -0400 Subject: [PATCH 11/11] Fixing lints. --- app/src/main/java/com/jerboa/model/SiteViewModel.kt | 2 +- .../main/java/com/jerboa/ui/components/community/Community.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/jerboa/model/SiteViewModel.kt b/app/src/main/java/com/jerboa/model/SiteViewModel.kt index 4ca58eb3b..0ae3b56b8 100644 --- a/app/src/main/java/com/jerboa/model/SiteViewModel.kt +++ b/app/src/main/java/com/jerboa/model/SiteViewModel.kt @@ -12,8 +12,8 @@ import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import com.jerboa.api.API import com.jerboa.api.ApiState -import com.jerboa.api.MINIMUM_API_VERSION import com.jerboa.api.DEFAULT_INSTANCE +import com.jerboa.api.MINIMUM_API_VERSION import com.jerboa.api.apiWrapper import com.jerboa.datatypes.types.GetSite import com.jerboa.datatypes.types.GetSiteResponse diff --git a/app/src/main/java/com/jerboa/ui/components/community/Community.kt b/app/src/main/java/com/jerboa/ui/components/community/Community.kt index 5b95aa692..970b80b6f 100644 --- a/app/src/main/java/com/jerboa/ui/components/community/Community.kt +++ b/app/src/main/java/com/jerboa/ui/components/community/Community.kt @@ -137,7 +137,7 @@ fun CommunityHeader( onClickBack: () -> Unit, scrollBehavior: TopAppBarScrollBehavior, siteVersion: String, - isBlocked: Boolean, + isBlocked: Boolean, ) { var showSortOptions by remember { mutableStateOf(false) } var showTopOptions by remember { mutableStateOf(false) }