mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-20 03:35:46 +00:00
Built-in landscape searchbar & status bar fixes (#154)
android layout: landscape: moves the searchbar to top bar's free space, increasing room for gamelist; minor fixes: landscape: avoid settings button getting beneath android navbar; portrait: avoid top bar's getting beneath android status bar. Co-authored-by: Allison Cunha <allisonbzk@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/154 Co-authored-by: xbzk <xbzk@noreply.localhost> Co-committed-by: xbzk <xbzk@noreply.localhost>
This commit is contained in:
parent
4cc39b98d6
commit
d2364ae1f7
2 changed files with 226 additions and 0 deletions
|
@ -454,6 +454,7 @@ class GamesFragment : Fragment() {
|
|||
|
||||
val leftInsets = barInsets.left + cutoutInsets.left
|
||||
val rightInsets = barInsets.right + cutoutInsets.right
|
||||
val topInsets = barInsets.top + cutoutInsets.top
|
||||
val mlpSwipe = binding.swipeRefresh.layoutParams as ViewGroup.MarginLayoutParams
|
||||
if (view.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) {
|
||||
mlpSwipe.leftMargin = leftInsets
|
||||
|
@ -464,6 +465,12 @@ class GamesFragment : Fragment() {
|
|||
}
|
||||
binding.swipeRefresh.layoutParams = mlpSwipe
|
||||
|
||||
val mlpHeader = binding.header.layoutParams as ViewGroup.MarginLayoutParams
|
||||
mlpHeader.leftMargin += leftInsets
|
||||
mlpHeader.rightMargin += rightInsets
|
||||
mlpHeader.topMargin += if (!isLandscape) topInsets else 0
|
||||
binding.header.layoutParams = mlpHeader
|
||||
|
||||
binding.noticeText.updatePadding(bottom = spacingNavigation)
|
||||
binding.header.updatePadding(top = cutoutInsets.top + resources.getDimensionPixelSize(R.dimen.spacing_large) + if (isLandscape) barInsets.top else 0)
|
||||
binding.gridGames.updatePadding(
|
||||
|
|
219
src/android/app/src/main/res/layout-land/fragment_games.xml
Normal file
219
src/android/app/src/main/res/layout-land/fragment_games.xml
Normal file
|
@ -0,0 +1,219 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
>
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/app_name"
|
||||
android:textAppearance="@style/TextAppearance.Material3.HeadlineLarge"
|
||||
android:textSize="27sp"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/frame_search"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="15dp"
|
||||
android:layout_weight="1"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/header"
|
||||
>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/search_background"
|
||||
style="?attr/materialCardViewFilledStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dp"
|
||||
app:cardCornerRadius="21dp"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/search_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="18dp"
|
||||
android:layout_marginEnd="42dp"
|
||||
android:orientation="horizontal"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="21dp"
|
||||
android:layout_height="21dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="18dp"
|
||||
android:src="@drawable/ic_search"
|
||||
app:tint="?attr/colorOnSurfaceVariant"
|
||||
/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/search_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@android:color/transparent"
|
||||
android:hint="@string/home_search_games"
|
||||
android:inputType="text"
|
||||
android:maxLines="1"
|
||||
android:imeOptions="flagNoFullscreen"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/clear_button"
|
||||
android:layout_width="18dp"
|
||||
android:layout_height="18dp"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
android:layout_marginEnd="18dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:src="@drawable/ic_clear"
|
||||
android:visibility="invisible"
|
||||
app:tint="?attr/colorOnSurfaceVariant"
|
||||
/>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/view_button"
|
||||
style="?attr/materialCardViewFilledStyle"
|
||||
android:layout_width="42dp"
|
||||
android:layout_height="42dp"
|
||||
app:cardCornerRadius="21dp"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="18dp"
|
||||
android:layout_height="18dp"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/ic_eye"
|
||||
app:tint="?attr/colorOnSurfaceVariant"
|
||||
/>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<Space
|
||||
android:layout_width="15dp"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/filter_button"
|
||||
style="?attr/materialCardViewFilledStyle"
|
||||
android:layout_width="42dp"
|
||||
android:layout_height="42dp"
|
||||
app:cardCornerRadius="21dp"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="18dp"
|
||||
android:layout_height="18dp"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/ic_filter"
|
||||
app:tint="?attr/colorOnSurfaceVariant"
|
||||
/>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<Space
|
||||
android:layout_width="15dp"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/settings_button"
|
||||
style="?attr/materialCardViewFilledStyle"
|
||||
android:layout_width="42dp"
|
||||
android:layout_height="42dp"
|
||||
app:cardCornerRadius="21dp"
|
||||
>
|
||||
|
||||
<ImageView
|
||||
android:layout_width="18dp"
|
||||
android:layout_height="18dp"
|
||||
android:layout_gravity="center"
|
||||
android:src="@drawable/ic_settings"
|
||||
app:tint="?attr/colorOnSurfaceVariant"
|
||||
/>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:id="@+id/swipe_refresh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="8dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/header"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
>
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/notice_text"
|
||||
style="@style/TextAppearance.Material3.BodyLarge"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:padding="@dimen/spacing_large"
|
||||
android:text="@string/empty_gamelist"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/grid_games"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clipToPadding="false"
|
||||
android:scrollbarStyle="outsideOverlay"
|
||||
android:scrollbars="vertical"
|
||||
android:fadeScrollbars="true"
|
||||
android:paddingHorizontal="4dp"
|
||||
android:paddingVertical="4dp"
|
||||
/>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||
|
||||
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||
android:id="@+id/add_directory"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="16dp"
|
||||
android:contentDescription="Select_game_folder"
|
||||
android:text="@string/folder"
|
||||
app:icon="@drawable/ic_cartridge_outline"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:textColor="?attr/colorOnPrimaryContainer"
|
||||
app:backgroundTint="?attr/colorPrimaryContainer"
|
||||
app:iconTint="?attr/colorOnPrimaryContainer"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Add table
Add a link
Reference in a new issue