From 8f61d8479ac135226ad3699142533766409c72a9 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Thu, 11 Nov 2021 11:47:02 -0700 Subject: [PATCH] style: migrate to Material3 text styling Migrate to 100% Material3 text styling. I had to basically ignore the intended styling here just to get a sensible design here, which is "bad" but I do what I want. The only usage of MaterialComponents left in the project now is the dialog since the new dialog style the worst thing ever. --- .../home/fastscroll/FastScrollRecyclerView.kt | 11 +-- .../auxio/playback/state/PlaybackMode.kt | 16 ++-- .../java/org/oxycblt/auxio/widgets/Forms.kt | 1 + app/src/main/res/layout/dialog_excluded.xml | 2 +- app/src/main/res/layout/fragment_about.xml | 8 +- app/src/main/res/layout/fragment_home.xml | 1 - app/src/main/res/layout/fragment_search.xml | 4 +- app/src/main/res/layout/item_album_song.xml | 2 +- app/src/main/res/layout/item_tab.xml | 2 +- app/src/main/res/layout/widget_default.xml | 2 +- app/src/main/res/values/dimens.xml | 7 -- app/src/main/res/values/styles_android.xml | 22 ++--- app/src/main/res/values/styles_core.xml | 22 ++++- app/src/main/res/values/styles_ui.xml | 50 ++++------- app/src/main/res/values/typography.xml | 90 +++++++++++++++++++ 15 files changed, 161 insertions(+), 79 deletions(-) create mode 100644 app/src/main/res/values/typography.xml diff --git a/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt b/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt index 43d82151d..e4d89e5d2 100644 --- a/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt +++ b/app/src/main/java/org/oxycblt/auxio/home/fastscroll/FastScrollRecyclerView.kt @@ -24,7 +24,6 @@ import android.graphics.Canvas import android.graphics.Rect import android.text.TextUtils import android.util.AttributeSet -import android.util.TypedValue import android.view.Gravity import android.view.MotionEvent import android.view.View @@ -35,6 +34,7 @@ import android.widget.FrameLayout import android.widget.TextView import androidx.appcompat.widget.AppCompatTextView import androidx.core.math.MathUtils +import androidx.core.widget.TextViewCompat import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -149,13 +149,8 @@ class FastScrollRecyclerView @JvmOverloads constructor( includeFontPadding = false isSingleLine = true - setTextColor(android.R.attr.textColorPrimaryInverse.resolveAttr(context)) - setTextSize( - TypedValue.COMPLEX_UNIT_PX, - resources.getDimensionPixelSize( - R.dimen.text_size_insane - ).toFloat() - ) + TextViewCompat.setTextAppearance(this, R.style.TextAppearance_Auxio_HeadlineLarge) + setTextColor(R.attr.colorSurface.resolveAttr(context)) } thumbWidth = thumbDrawable.intrinsicWidth diff --git a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackMode.kt b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackMode.kt index c4809c9ab..512fe598e 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackMode.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/state/PlaybackMode.kt @@ -37,14 +37,20 @@ enum class PlaybackMode { * @return The constant for this mode, */ fun toInt(): Int { - return CONST_ALL_SONGS + ordinal + return when (this) { + ALL_SONGS -> CONST_ALL_SONGS + IN_ALBUM -> CONST_IN_ALBUM + IN_ARTIST -> CONST_IN_ARTIST + IN_GENRE -> CONST_IN_GENRE + } } companion object { - private const val CONST_ALL_SONGS = 0xA103 - private const val CONST_IN_ALBUM = 0xA104 - private const val CONST_IN_ARTIST = 0xA105 - private const val CONST_IN_GENRE = 0xA106 + // Kept in reverse order because of backwards compat, do not re-order these + private const val CONST_ALL_SONGS = 0xA106 + private const val CONST_IN_ALBUM = 0xA105 + private const val CONST_IN_ARTIST = 0xA104 + private const val CONST_IN_GENRE = 0xA103 /** * Get a [PlaybackMode] for an int [constant] diff --git a/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt b/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt index 103865a49..ab2f55d85 100644 --- a/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt +++ b/app/src/main/java/org/oxycblt/auxio/widgets/Forms.kt @@ -154,6 +154,7 @@ fun createWideWidget(context: Context, state: WidgetState): RemoteViews { fun createSmallWidget(context: Context, state: WidgetState): RemoteViews { return createViews(context, R.layout.widget_small) .applyMeta(state) + .applyCover(context, state) .applyControls(context, state) } diff --git a/app/src/main/res/layout/dialog_excluded.xml b/app/src/main/res/layout/dialog_excluded.xml index e3383f47e..7061b2d8f 100644 --- a/app/src/main/res/layout/dialog_excluded.xml +++ b/app/src/main/res/layout/dialog_excluded.xml @@ -28,7 +28,7 @@ android:padding="@dimen/spacing_medium" android:text="@string/lbl_no_dirs" android:textAlignment="center" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" + android:textAppearance="@style/TextAppearance.Auxio.TitleMedium" android:textColor="?android:attr/textColorSecondary" /> diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index 8efb53f61..b95aa2ccf 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -64,7 +64,7 @@ android:layout_marginStart="@dimen/spacing_medium" android:fontFamily="@font/inter_semibold" android:text="@string/info_app_name" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" + android:textAppearance="@style/TextAppearance.Auxio.HeadlineSmall" app:layout_constraintBottom_toBottomOf="@+id/about_auxio_icon" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/about_auxio_icon" @@ -79,7 +79,7 @@ android:paddingStart="@dimen/spacing_small" android:paddingEnd="@dimen/spacing_small" android:text="@string/info_app_desc" - android:textAppearance="@style/TextAppearance.MaterialComponents.Body1" + android:textAppearance="@style/TextAppearance.Auxio.BodyLarge" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/about_auxio_icon" /> @@ -108,7 +108,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/spacing_medium" android:text="@string/lbl_version" - android:textAppearance="@style/TextAppearance.AppCompat.Subhead" + android:textAppearance="@style/TextAppearance.Auxio.BodyLarge" app:layout_constraintBottom_toTopOf="@+id/about_version" app:layout_constraintStart_toEndOf="@+id/about_version_icon" app:layout_constraintTop_toTopOf="@+id/about_version_icon" /> @@ -118,7 +118,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/spacing_medium" - android:textAppearance="@style/TextAppearance.AppCompat.Caption" + android:textAppearance="@style/TextAppearance.Auxio.BodySmall" app:layout_constraintBottom_toBottomOf="@+id/about_version_icon" app:layout_constraintStart_toEndOf="@+id/about_version_icon" app:layout_constraintTop_toBottomOf="@+id/about_version_title" diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 8f592a48b..a762672a1 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -34,7 +34,6 @@ app:tabContentStart="@dimen/spacing_medium" app:tabMode="scrollable" app:tabGravity="start" - app:tabTextAppearance="@style/TextAppearance.Auxio.TabLayout.Label" app:tabTextColor="@color/sel_accented_primary"/> diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index 53f5eb3d9..ce02ed427 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -35,9 +35,11 @@ android:id="@+id/search_edit_text" android:layout_width="match_parent" android:layout_height="wrap_content" + android:textAppearance="@style/TextAppearance.Auxio.BodyLarge" android:background="@android:color/transparent" + android:paddingStart="0dp" + android:paddingEnd="0dp" android:hint="@string/hint_search_library" - android:padding="@dimen/spacing_medium" android:imeOptions="actionSearch|flagNoExtractUi" android:inputType="textFilter" /> diff --git a/app/src/main/res/layout/item_album_song.xml b/app/src/main/res/layout/item_album_song.xml index 81b61db5a..13e0313d9 100644 --- a/app/src/main/res/layout/item_album_song.xml +++ b/app/src/main/res/layout/item_album_song.xml @@ -23,7 +23,7 @@ android:minWidth="@dimen/size_track_number" android:text="@{String.valueOf(song.track)}" android:textAlignment="center" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" + android:textAppearance="@style/TextAppearance.Auxio.TitleMedium" android:textColor="@color/sel_accented_secondary" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/item_tab.xml b/app/src/main/res/layout/item_tab.xml index faaa9bb90..010a79dfb 100644 --- a/app/src/main/res/layout/item_tab.xml +++ b/app/src/main/res/layout/item_tab.xml @@ -19,7 +19,7 @@ android:layout_marginBottom="@dimen/spacing_small" android:clickable="false" android:focusable="false" - android:textSize="@dimen/text_size_small" + android:textAppearance="@style/TextAppearance.Auxio.BodyLarge" android:paddingStart="@dimen/spacing_medium" app:buttonCompat="@null" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/widget_default.xml b/app/src/main/res/layout/widget_default.xml index 82ac305fd..0bd3ddec3 100644 --- a/app/src/main/res/layout/widget_default.xml +++ b/app/src/main/res/layout/widget_default.xml @@ -24,7 +24,7 @@ android:gravity="center" android:padding="@dimen/spacing_medium" android:text="@string/def_playback" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" + android:textAppearance="@style/TextAppearance.Auxio.TitleMedium" android:textColor="?android:attr/textColorPrimary" android:textStyle="bold" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 0b6174105..fec2eef1b 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -26,13 +26,6 @@ 32dp - - 16sp - 18sp - 20sp - 24sp - 34sp - 2dp 4dp diff --git a/app/src/main/res/values/styles_android.xml b/app/src/main/res/values/styles_android.xml index e4f55086a..c24bd60cb 100644 --- a/app/src/main/res/values/styles_android.xml +++ b/app/src/main/res/values/styles_android.xml @@ -2,38 +2,39 @@ - + - @@ -47,15 +48,14 @@ diff --git a/app/src/main/res/values/styles_core.xml b/app/src/main/res/values/styles_core.xml index b0d37af5f..aa0c4b457 100644 --- a/app/src/main/res/values/styles_core.xml +++ b/app/src/main/res/values/styles_core.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/values/styles_ui.xml b/app/src/main/res/values/styles_ui.xml index 7f50a79eb..ca99d2f11 100644 --- a/app/src/main/res/values/styles_ui.xml +++ b/app/src/main/res/values/styles_ui.xml @@ -3,10 +3,10 @@ - @@ -19,11 +19,6 @@ @drawable/ic_down - - - - - diff --git a/app/src/main/res/values/typography.xml b/app/src/main/res/values/typography.xml new file mode 100644 index 000000000..8a25562c3 --- /dev/null +++ b/app/src/main/res/values/typography.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file