Skip to content

Commit

Permalink
fix trending tags for rtl languages (#4889)
Browse files Browse the repository at this point in the history
closes #4887

And some other small improvements like better paddings and font sizes.
Also the `status_info` in `item_status` now looks nicer in rtl mode.
  • Loading branch information
connyduck authored Jan 23, 2025
1 parent 170358f commit 8f8b819
Show file tree
Hide file tree
Showing 9 changed files with 60 additions and 73 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class TrendingTagViewHolder(
binding.totalAccounts.text = formatNumber(totalAccounts, 1000)

binding.currentUsage.text = numberFormat.format(tagViewData.usage.last())
binding.currentAccounts.text = numberFormat.format(tagViewData.usage.last())
binding.currentAccounts.text = numberFormat.format(tagViewData.accounts.last())

itemView.setOnClickListener {
onViewTag(tagViewData.name)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import kotlin.math.abs
import kotlin.math.ln
import kotlin.math.pow

private val numberFormatter: NumberFormat = NumberFormat.getInstance()
private val ln_1k = ln(1000.0)

/**
Expand All @@ -19,6 +18,7 @@ private val ln_1k = ln(1000.0)
* a suffix appropriate to the scaling is appended.
*/
fun formatNumber(num: Long, min: Int = 100000): String {
val numberFormatter: NumberFormat = NumberFormat.getInstance()
val absNum = abs(num)
if (absNum < min) return numberFormatter.format(num)

Expand Down
58 changes: 20 additions & 38 deletions app/src/main/java/com/keylesspalace/tusky/view/GraphView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import android.graphics.Paint
import android.graphics.Path
import android.graphics.PathMeasure
import android.graphics.Rect
import android.text.TextUtils
import android.util.AttributeSet
import android.view.View
import androidx.annotation.ColorInt
Expand All @@ -29,6 +30,7 @@ import androidx.core.content.res.use
import com.google.android.material.R as materialR
import com.google.android.material.color.MaterialColors
import com.keylesspalace.tusky.R
import java.util.Locale
import kotlin.math.max

class GraphView @JvmOverloads constructor(
Expand Down Expand Up @@ -68,63 +70,40 @@ class GraphView @JvmOverloads constructor(
private var primaryLinePath: Path = Path()
private var secondaryLinePath: Path = Path()

private var isRtlLayout: Boolean = false

var maxTrendingValue: Long = 300
var primaryLineData: List<Long> = if (isInEditMode) {
listOf(
30,
60,
70,
80,
130,
190,
80
)
listOf(30, 60, 70, 80, 130, 190, 80)
} else {
listOf(
1,
1,
1,
1,
1,
1,
1
)
listOf(1, 1, 1, 1, 1, 1, 1)
}
set(value) {
field = value.map { max(1, it) }
if (isRtlLayout) {
field = field.reversed()
}
primaryLinePath.reset()
invalidate()
}

var secondaryLineData: List<Long> = if (isInEditMode) {
listOf(
10,
20,
40,
60,
100,
132,
20
)
listOf(10, 20, 40, 60, 100, 132, 20)
} else {
listOf(
1,
1,
1,
1,
1,
1,
1
)
listOf(1, 1, 1, 1, 1, 1, 1)
}
set(value) {
field = value.map { max(1, it) }
if (isRtlLayout) {
field = field.reversed()
}
secondaryLinePath.reset()
invalidate()
}

init {
initFromXML(attrs)
isRtlLayout = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == LAYOUT_DIRECTION_RTL
}

private fun initFromXML(attr: AttributeSet?) {
Expand Down Expand Up @@ -291,7 +270,7 @@ class GraphView @JvmOverloads constructor(
linePath = secondaryLinePath,
linePaint = secondaryLinePaint,
circlePaint = secondaryCirclePaint,
lineThickness = lineWidth
lineThickness = lineWidth,
)
drawLine(
canvas = canvas,
Expand All @@ -317,8 +296,11 @@ class GraphView @JvmOverloads constructor(
)

val pm = PathMeasure(linePath, false)

val dotPosition = if (isRtlLayout) 0f else pm.length

val coord = floatArrayOf(0f, 0f)
pm.getPosTan(pm.length * 1f, coord, null)
pm.getPosTan(dotPosition, coord, null)

drawCircle(coord[0], coord[1], lineThickness * 2f, circlePaint)
}
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/res/color/color_background_transparent_60.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:alpha="0.6" android:color="@color/colorBackground" />
</selector>
<item android:alpha="0.6" android:color="?android:colorBackground" />
</selector>
17 changes: 11 additions & 6 deletions app/src/main/res/layout-land/item_trending_cell.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,13 @@
android:textAlignment="textEnd"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?attr/colorPrimary"
android:textSize="8sp"
android:textSize="12sp"
android:textStyle="normal"
app:layout_constrainedWidth="true"
app:layout_constraintBottom_toTopOf="@id/current_accounts"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/graph"
tools:ignore="RtlSymmetry"
tools:text="12 345" />

<TextView
Expand All @@ -56,12 +57,13 @@
android:textAlignment="textEnd"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/warning_color"
android:textSize="8sp"
android:textSize="12sp"
android:textStyle="normal"
app:layout_constrainedWidth="true"
app:layout_constraintBottom_toBottomOf="@id/graph"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/graph"
tools:ignore="RtlSymmetry"
tools:text="12 345" />

<androidx.constraintlayout.widget.ConstraintLayout
Expand Down Expand Up @@ -112,14 +114,15 @@
android:id="@+id/usageLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginStart="5dp"
android:importantForAccessibility="no"
android:text="@string/total_usage"
android:textAlignment="textEnd"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:textColorTertiary"
app:layout_constrainedWidth="false"
app:layout_constraintBaseline_toBaselineOf="@+id/total_usage"
app:layout_constraintBottom_toBottomOf="@+id/total_usage"
app:layout_constraintTop_toTopOf="@+id/total_usage"
app:layout_constraintStart_toEndOf="@id/barrier2" />

<TextView
Expand All @@ -141,13 +144,14 @@
android:id="@+id/accountsLabel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginStart="5dp"
android:importantForAccessibility="no"
android:text="@string/total_accounts"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:textColorTertiary"
app:layout_constrainedWidth="true"
app:layout_constraintBaseline_toBaselineOf="@+id/total_accounts"
app:layout_constraintBottom_toBottomOf="@+id/total_accounts"
app:layout_constraintTop_toTopOf="@+id/total_accounts"
app:layout_constraintStart_toEndOf="@id/barrier2" />

<androidx.constraintlayout.widget.Barrier
Expand All @@ -157,6 +161,7 @@
app:barrierDirection="end"
app:constraint_referenced_ids="total_usage,total_accounts"
tools:layout_editor_absoluteY="8dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
2 changes: 2 additions & 0 deletions app/src/main/res/layout/item_filtered_notifications_info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
android:id="@+id/notification_policy_summary_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="@string/filtered_notifications"
android:textColor="?android:textColorSecondary"
android:textStyle="normal|bold"
Expand All @@ -23,6 +24,7 @@
android:id="@+id/notification_policy_summary_description"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:textColor="?android:textColorSecondary"
app:layout_constraintEnd_toStartOf="@id/notification_policy_summary_badge"
app:layout_constraintStart_toStartOf="parent"
Expand Down
9 changes: 5 additions & 4 deletions app/src/main/res/layout/item_status.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,22 @@

<TextView
android:id="@+id/status_info"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="@dimen/status_reblogged_bar_padding_top"
android:layout_marginEnd="14dp"
android:drawablePadding="6dp"
android:gravity="center_vertical"
android:gravity="start"
android:importantForAccessibility="no"
android:paddingStart="38dp"
android:textColor="?android:textColorTertiary"
android:textSize="?attr/status_text_medium"
app:drawableStartCompat="@drawable/ic_reblog_18dp"
app:drawableTint="?android:textColorTertiary"
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlSymmetry"
tools:text="ConnyDuck boosted"
Expand Down
38 changes: 18 additions & 20 deletions app/src/main/res/layout/item_trending_cell.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,34 +35,36 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:paddingStart="6dp"
android:paddingStart="8dp"
android:textAlignment="textEnd"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?attr/colorPrimary"
android:textSize="8sp"
android:textSize="12sp"
android:textStyle="normal"
app:layout_constrainedWidth="true"
app:layout_constraintBottom_toTopOf="@id/current_accounts"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintStart_toEndOf="@id/graph"
tools:ignore="RtlSymmetry"
tools:text="12 345" />

<TextView
android:id="@+id/current_accounts"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:paddingStart="6dp"
android:paddingStart="8dp"
android:textAlignment="textEnd"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/warning_color"
android:textSize="8sp"
android:textSize="12sp"
android:textStyle="normal"
app:layout_constrainedWidth="true"
app:layout_constraintBottom_toBottomOf="@id/graph"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintStart_toEndOf="@id/graph"
tools:text="12 345" />
tools:ignore="RtlSymmetry"
tools:text="13" />

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/legend_container"
Expand Down Expand Up @@ -101,8 +103,6 @@
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="?attr/colorPrimary"
android:textStyle="normal|bold"
app:layout_constrainedWidth="false"
app:layout_constraintEnd_toStartOf="@id/usageLabel"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tag"
Expand All @@ -112,16 +112,15 @@
android:id="@+id/usageLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginStart="5dp"
android:importantForAccessibility="no"
android:text="@string/total_usage"
android:textAlignment="textEnd"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:textColorTertiary"
app:layout_constrainedWidth="false"
app:layout_constraintBaseline_toBaselineOf="@+id/total_usage"
app:layout_constraintEnd_toStartOf="@id/total_accounts"
app:layout_constraintStart_toEndOf="@+id/total_usage" />
app:layout_constraintBottom_toBottomOf="@+id/total_usage"
app:layout_constraintStart_toEndOf="@+id/total_usage"
app:layout_constraintTop_toTopOf="@+id/total_usage" />

<TextView
android:id="@+id/total_accounts"
Expand All @@ -134,8 +133,6 @@
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/warning_color"
android:textStyle="normal|bold"
app:layout_constrainedWidth="false"
app:layout_constraintEnd_toStartOf="@+id/accountsLabel"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toEndOf="@id/usageLabel"
app:layout_constraintTop_toBottomOf="@+id/tag"
Expand All @@ -145,14 +142,15 @@
android:id="@+id/accountsLabel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginStart="5dp"
android:importantForAccessibility="no"
android:text="@string/total_accounts"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:textColorTertiary"
app:layout_constrainedWidth="true"
app:layout_constraintBaseline_toBaselineOf="@+id/total_accounts"
app:layout_constraintStart_toEndOf="@id/total_accounts" />
app:layout_constraintBottom_toBottomOf="@+id/total_accounts"
app:layout_constraintStart_toEndOf="@id/total_accounts"
app:layout_constraintTop_toTopOf="@+id/total_accounts" />

</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
1 change: 0 additions & 1 deletion app/src/main/res/layout/item_trending_date.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,5 @@
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textAlignment="textEnd"
android:textColor="?android:textColorTertiary"
tools:text="@string/date_range" />

0 comments on commit 8f8b819

Please sign in to comment.