Skip to content

Commit

Permalink
Use ConstraintLayout on date selector to fix large font size issue
Browse files Browse the repository at this point in the history
  • Loading branch information
irfano committed Mar 13, 2024
1 parent 2e25f58 commit 40d102d
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 50 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package org.wordpress.android.ui.stats.refresh.utils

import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.isVisible
import org.wordpress.android.R
import org.wordpress.android.databinding.StatsListFragmentBinding
import org.wordpress.android.ui.stats.refresh.StatsViewModel.DateSelectorUiModel

Expand All @@ -28,7 +30,17 @@ fun StatsListFragmentBinding.drawDateSelector(dateSelectorUiModel: DateSelectorU
nextDateButton.isEnabled = enableNextButton
}
granularitySpinner.isVisible = dateSelectorUiModel?.isGranularitySpinnerVisible == true
granularitySpace.isVisible = dateSelectorUiModel?.isGranularitySpinnerVisible == true
dateSpace.isVisible = dateSelectorUiModel?.isGranularitySpinnerVisible != true

if (dateSelectorUiModel?.isGranularitySpinnerVisible != true) {
// StatsTrafficTabFeatureConfig is disabled.
with(selectedDateTextView.layoutParams as ConstraintLayout.LayoutParams) {
horizontalBias = 0f
marginStart = selectedDateTextView.resources.getDimensionPixelSize(R.dimen.margin_small)
}
with(currentSiteTimeZone.layoutParams as ConstraintLayout.LayoutParams) {
horizontalBias = 0f
marginStart = selectedDateTextView.resources.getDimensionPixelSize(R.dimen.margin_small)
}
}
}
}
97 changes: 49 additions & 48 deletions WordPress/src/main/res/layout/stats_date_selector.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/date_selector_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:minHeight="52dp"
android:orientation="horizontal"
android:paddingEnd="@dimen/margin_extra_large"
android:paddingStart="@dimen/margin_large"
android:paddingVertical="@dimen/margin_extra_small"
tools:ignore="RtlSymmetry">

Expand All @@ -18,62 +17,64 @@
android:layout_height="wrap_content"
android:minHeight="@dimen/min_touch_target_sz"
android:overlapAnchor="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:popupTheme="@style/ThemeOverlay.AppCompat.DayNight" />

<Space
android:id="@+id/granularity_space"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />

<LinearLayout
<ImageButton
android:id="@+id/nextDateButton"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical">

<org.wordpress.android.widgets.MaterialTextViewWithNumerals
android:id="@+id/selectedDateTextView"
style="@style/StatsDateSelectorTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/unknown" />

<com.google.android.material.textview.MaterialTextView
android:id="@+id/currentSiteTimeZone"
style="@style/StatsDateTimeZone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/unknown"
android:visibility="gone" />
</LinearLayout>

<Space
android:id="@+id/date_space"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="gone" />
android:layout_height="@dimen/min_touch_target_sz"
android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/stats_select_next_period_description"
android:src="@drawable/ic_chevron_right_white_24dp"
android:tintMode="src_in"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="@color/on_surface_disabled_selector" />

<ImageButton
android:id="@+id/previousDateButton"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/margin_medium"
android:layout_height="@dimen/min_touch_target_sz"
android:layout_marginEnd="@dimen/margin_large"
android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/stats_select_previous_period_description"
android:src="@drawable/ic_chevron_left_white_24dp"
android:tintMode="src_in"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/nextDateButton"
app:layout_constraintTop_toTopOf="parent"
app:tint="@color/on_surface_disabled_selector" />

<ImageButton
android:id="@+id/nextDateButton"
<org.wordpress.android.widgets.MaterialTextViewWithNumerals
android:id="@+id/selectedDateTextView"
style="@style/StatsDateSelectorTitle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/margin_medium"
android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/stats_select_next_period_description"
android:src="@drawable/ic_chevron_right_white_24dp"
android:tintMode="src_in"
app:tint="@color/on_surface_disabled_selector" />
</LinearLayout>
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_medium"
android:text="@string/unknown"
app:layout_constraintBottom_toTopOf="@id/currentSiteTimeZone"
app:layout_constraintEnd_toStartOf="@id/previousDateButton"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintStart_toEndOf="@id/granularity_spinner"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth="wrap_content_constrained" />

<com.google.android.material.textview.MaterialTextView
android:id="@+id/currentSiteTimeZone"
style="@style/StatsDateTimeZone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_medium"
android:text="@string/unknown"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/previousDateButton"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintStart_toEndOf="@id/granularity_spinner"
app:layout_constraintTop_toBottomOf="@id/selectedDateTextView"
app:layout_constraintWidth="wrap_content_constrained" />
</androidx.constraintlayout.widget.ConstraintLayout>

0 comments on commit 40d102d

Please sign in to comment.