Fix customization menu navigation and layout issues: - Fix D-pad navigation between theme and block skin selectors - Prevent word wrapping in customization title - Add ThemeManager for theme color management - Improve menu item highlighting and focus handling

This commit is contained in:
cmclark00 2025-03-31 16:02:30 -04:00
parent a8f095cf42
commit 71a8efff91
6 changed files with 555 additions and 114 deletions

View file

@ -421,22 +421,23 @@
android:src="@drawable/ic_volume_up"
android:contentDescription="@string/music" />
</LinearLayout>
<!-- Theme Selector -->
<com.mintris.ui.ThemeSelector
android:id="@+id/inPauseThemeSelector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_marginBottom="16dp" />
<!-- Block Skin Selector -->
<com.mintris.ui.BlockSkinSelector
android:id="@+id/inPauseBlockSkinSelector"
android:layout_width="match_parent"
<!-- Customization Button -->
<Button
android:id="@+id/customizationButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" />
android:background="@color/transparent"
android:text="@string/customization"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:fontFamily="sans-serif"
android:textAllCaps="false"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="true" />
</LinearLayout>
</ScrollView>
</LinearLayout>
@ -623,4 +624,97 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent">
</LinearLayout>
<!-- Customization Menu overlay -->
<LinearLayout
android:id="@+id/customizationContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
android:orientation="vertical"
android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_marginTop="32dp"
android:layout_marginBottom="32dp">
<TextView
android:id="@+id/customizationTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/customization"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:fontFamily="sans-serif"
android:layout_marginEnd="16dp"
android:textAllCaps="false"
android:singleLine="true" />
<com.mintris.ui.LevelBadge
android:id="@+id/customizationLevelBadge"
android:layout_width="48dp"
android:layout_height="48dp" />
</LinearLayout>
<ScrollView
android:id="@+id/customizationMenuScrollView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scrollbars="none"
android:overScrollMode="never"
android:fillViewport="true"
android:paddingBottom="32dp"
android:focusable="true"
android:focusableInTouchMode="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:paddingTop="16dp"
android:paddingBottom="32dp">
<!-- Theme Selector -->
<com.mintris.ui.ThemeSelector
android:id="@+id/customizationThemeSelector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:focusable="true"
android:focusableInTouchMode="true" />
<!-- Block Skin Selector -->
<com.mintris.ui.BlockSkinSelector
android:id="@+id/customizationBlockSkinSelector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true" />
<!-- Back Button -->
<Button
android:id="@+id/customizationBackButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:background="@color/transparent"
android:text="@string/back"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold"
android:fontFamily="sans-serif"
android:textAllCaps="false"
android:focusable="true"
android:focusableInTouchMode="true" />
</LinearLayout>
</ScrollView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>