Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General changes #1334

Merged
merged 2 commits into from
Jan 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,9 @@ ktlint_standard_discouraged-comment-location = disabled
ktlint_standard_if-else-wrapping = disabled
ktlint_standard_no-wildcard-imports = disabled
ktlint_standard_comment-wrapping = disabled
ktlint_function_naming_ignore_when_annotated_with=Composable

[app/src/main/java/com/jerboa/datatypes/**.{kt,kts}]
ktlint = disabled
ktlint_function_naming_ignore_when_annotated_with= Composable
ktlint_standard_multiline-expression-wrapping = disabled
ktlint_standard_string-template-indent = disabled

[app/src/main/java/com/jerboa/DefaultInstances.kt]
ktlint = disabled
Expand Down
101 changes: 35 additions & 66 deletions app/src/main/java/com/jerboa/datatypes/Others.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,15 @@ import androidx.compose.material.icons.outlined.ThumbsUpDown
import androidx.compose.ui.graphics.vector.ImageVector
import com.jerboa.R
import com.jerboa.UnreadOrAll
import com.jerboa.ui.components.inbox.InboxTab
import com.jerboa.ui.components.person.UserTab
import it.vercruysse.lemmyapi.dto.CommentSortType
import it.vercruysse.lemmyapi.dto.ListingType
import it.vercruysse.lemmyapi.dto.PostFeatureType
import it.vercruysse.lemmyapi.dto.SortType
import it.vercruysse.lemmyapi.v0x19.datatypes.Community
import it.vercruysse.lemmyapi.v0x19.datatypes.Person
import kotlinx.serialization.Serializable
import it.vercruysse.lemmyapi.v0x19.datatypes.Post

import kotlinx.serialization.Serializable

data class CommentSortData(
@StringRes val text: Int,
Expand Down Expand Up @@ -56,7 +54,7 @@ val SortType.data: SortData
SortType.Controversial -> SortData(
R.string.sorttype_controversial,
R.string.sorttype_controversial,
Icons.Outlined.ThumbsUpDown
Icons.Outlined.ThumbsUpDown,
)

SortType.TopDay -> SortData(R.string.sorttype_topday, R.string.dialogs_top_day, Icons.Outlined.BarChart)
Expand All @@ -67,131 +65,102 @@ val SortType.data: SortData
SortType.MostComments -> SortData(
R.string.sorttype_mostcomments,
R.string.sorttype_mostcomments,
Icons.Outlined.FormatListNumbered
Icons.Outlined.FormatListNumbered,
)

SortType.NewComments -> SortData(
R.string.sorttype_newcomments,
R.string.sorttype_newcomments,
Icons.Outlined.NewReleases
Icons.Outlined.NewReleases,
)

SortType.TopHour -> SortData(R.string.sorttype_tophour, R.string.dialogs_top_hour, Icons.Outlined.BarChart)
SortType.TopSixHour -> SortData(
R.string.sorttype_topsixhour,
R.string.dialogs_top_six_hour,
Icons.Outlined.BarChart
Icons.Outlined.BarChart,
)

SortType.TopTwelveHour -> SortData(
R.string.sorttype_toptwelvehour,
R.string.dialogs_top_twelve_hour,
Icons.Outlined.BarChart
Icons.Outlined.BarChart,
)

SortType.TopThreeMonths -> SortData(
R.string.sorttype_topthreemonths,
R.string.dialogs_top_three_month,
Icons.Outlined.BarChart
Icons.Outlined.BarChart,
)

SortType.TopSixMonths -> SortData(
R.string.sorttype_topsixmonths,
R.string.dialogs_top_six_month,
Icons.Outlined.BarChart
Icons.Outlined.BarChart,
)

SortType.TopNineMonths -> SortData(
R.string.sorttype_topninemonths,
R.string.dialogs_top_nine_month,
Icons.Outlined.BarChart
Icons.Outlined.BarChart,
)

SortType.Scaled -> SortData(R.string.sorttype_scaled, R.string.sorttype_scaled, Icons.Outlined.Scale)
}


/**
* Returns localized Strings for UserTab Enum
*/
fun getLocalizedStringForUserTab(
ctx: Context,
tab: UserTab,
): String {
val returnString =
when (tab) {
UserTab.About -> ctx.getString(R.string.person_profile_activity_about)
UserTab.Posts -> ctx.getString(R.string.person_profile_activity_posts)
UserTab.Comments -> ctx.getString(R.string.person_profile_activity_comments)
}
return returnString
}
): String =
when (tab) {
UserTab.About -> ctx.getString(R.string.person_profile_activity_about)
UserTab.Posts -> ctx.getString(R.string.person_profile_activity_posts)
UserTab.Comments -> ctx.getString(R.string.person_profile_activity_comments)
}

/**
* Returns localized Strings for ListingType Enum
*/
fun getLocalizedListingTypeName(
ctx: Context,
listingType: ListingType,
): String {
val returnString =
when (listingType) {
ListingType.All -> ctx.getString(R.string.home_all)
ListingType.Local -> ctx.getString(R.string.home_local)
ListingType.Subscribed -> ctx.getString(R.string.home_subscribed)
ListingType.ModeratorView -> ctx.getString(R.string.home_moderator_view)
}
return returnString
}
): String =
when (listingType) {
ListingType.All -> ctx.getString(R.string.home_all)
ListingType.Local -> ctx.getString(R.string.home_local)
ListingType.Subscribed -> ctx.getString(R.string.home_subscribed)
ListingType.ModeratorView -> ctx.getString(R.string.home_moderator_view)
}

/**
* Returns localized Strings for CommentSortType Enum
*/
fun getLocalizedCommentSortTypeName(
ctx: Context,
commentSortType: CommentSortType,
): String {
val returnString =
when (commentSortType) {
CommentSortType.Hot -> ctx.getString(R.string.sorttype_hot)
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.sorttype_controversial)
}
return returnString
}
): String =
when (commentSortType) {
CommentSortType.Hot -> ctx.getString(R.string.sorttype_hot)
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.sorttype_controversial)
}

/**
* Returns localized Strings for UnreadOrAll Enum
*/
fun getLocalizedUnreadOrAllName(
ctx: Context,
unreadOrAll: UnreadOrAll,
): String {
val returnString =
when (unreadOrAll) {
UnreadOrAll.Unread -> ctx.getString(R.string.dialogs_unread)
UnreadOrAll.All -> ctx.getString(R.string.dialogs_all)
}
return returnString
}

/**
* Returns localized Strings for InboxTab Enum
*/
fun getLocalizedStringForInboxTab(
ctx: Context,
tab: InboxTab,
): String {
val returnString =
when (tab) {
InboxTab.Replies -> ctx.getString(R.string.inbox_activity_replies)
InboxTab.Mentions -> ctx.getString(R.string.inbox_activity_mentions)
InboxTab.Messages -> ctx.getString(R.string.inbox_activity_messages)
}
return returnString
}
): String =
when (unreadOrAll) {
UnreadOrAll.Unread -> ctx.getString(R.string.dialogs_unread)
UnreadOrAll.All -> ctx.getString(R.string.dialogs_all)
}

/**
* A container to store extra community ban info
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/com/jerboa/datatypes/SampleData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ val samplePerson =
updated = "2021-10-11T07:14:53.548707",
actor_id = "https://lemmy.ml/u/homeless",
bio =
"This is my bio.\n\nI like trucks, trains, and geese. This is *one* longer line " +
"This is my bio.\n\nI like trucks, trains, and geese. This is *one* longer line " +
"that I have in here. But I'm not sure blah blah blah\n\nI have " +
"**tres ojos**.",
local = true,
Expand Down Expand Up @@ -311,7 +311,7 @@ val sampleComment =
creator_id = 56450,
post_id = 139549,
content =
"This *looks* really cool and similar to Joplin. **Having issues** getting LaTeX to" +
"This *looks* really cool and similar to Joplin. **Having issues** getting LaTeX to" +
" " +
"work" +
".\n\nIts kind of a long comment\n\nbut I don't want...",
Expand Down
1 change: 0 additions & 1 deletion app/src/main/java/com/jerboa/datatypes/Utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@ package com.jerboa.datatypes

import it.vercruysse.lemmyapi.v0x19.datatypes.Person


fun Person.getDisplayName(): String = this.display_name ?: this.name
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import androidx.compose.material.icons.automirrored.outlined.FormatListBulleted
import androidx.compose.material.icons.outlined.Code
import androidx.compose.material.icons.outlined.FormatBold
import androidx.compose.material.icons.outlined.FormatItalic
import androidx.compose.material.icons.outlined.FormatListBulleted
import androidx.compose.material.icons.outlined.FormatQuote
import androidx.compose.material.icons.outlined.FormatStrikethrough
import androidx.compose.material.icons.outlined.Image
Expand Down
56 changes: 0 additions & 56 deletions app/src/main/java/com/jerboa/ui/components/common/Modifiers.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
package com.jerboa.ui.components.common

import android.os.Build
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.pager.PagerState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.TabPosition
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.autofill.Autofill
Expand All @@ -15,11 +12,8 @@ import androidx.compose.ui.draw.blur
import androidx.compose.ui.draw.clip
import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.layout.boundsInWindow
import androidx.compose.ui.layout.layout
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.unit.Constraints
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.lerp
import kotlinx.collections.immutable.ImmutableList

inline fun Modifier.ifDo(
Expand Down Expand Up @@ -72,53 +66,3 @@ fun Modifier.onAutofill(
}
}
}

@OptIn(ExperimentalFoundationApi::class)
fun Modifier.pagerTabIndicatorOffset2(
pagerState: PagerState,
tabPositions: List<TabPosition>,
pageIndexMapping: (Int) -> Int = { it },
): Modifier =
layout { measurable, constraints ->
if (tabPositions.isEmpty()) {
// If there are no pages, nothing to show
layout(constraints.maxWidth, 0) {}
} else {
val currentPage = minOf(tabPositions.lastIndex, pageIndexMapping(pagerState.currentPage))
val currentTab = tabPositions[currentPage]
val previousTab = tabPositions.getOrNull(currentPage - 1)
val nextTab = tabPositions.getOrNull(currentPage + 1)
val fraction = pagerState.currentPageOffsetFraction
val indicatorWidth =
if (fraction > 0 && nextTab != null) {
lerp(currentTab.width, nextTab.width, fraction).roundToPx()
} else if (fraction < 0 && previousTab != null) {
lerp(currentTab.width, previousTab.width, -fraction).roundToPx()
} else {
currentTab.width.roundToPx()
}
val indicatorOffset =
if (fraction > 0 && nextTab != null) {
lerp(currentTab.left, nextTab.left, fraction).roundToPx()
} else if (fraction < 0 && previousTab != null) {
lerp(currentTab.left, previousTab.left, -fraction).roundToPx()
} else {
currentTab.left.roundToPx()
}
val placeable =
measurable.measure(
Constraints(
minWidth = indicatorWidth,
maxWidth = indicatorWidth,
minHeight = 0,
maxHeight = constraints.maxHeight,
),
)
layout(constraints.maxWidth, maxOf(placeable.height, constraints.minHeight)) {
placeable.placeRelative(
indicatorOffset,
maxOf(constraints.minHeight - placeable.height, 0),
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ButtonDefaults
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
Expand Down
Loading