<FrameLayout 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:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ui.modules.timetable.TimetableFragment"> <androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="50dp"> <com.google.android.material.progressindicator.CircularProgressIndicator android:id="@+id/timetableProgress" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:indeterminate="true" tools:visibility="gone" /> <androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/timetableSwipe" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/timetableRecycler" android:layout_width="match_parent" android:layout_height="match_parent" tools:listitem="@layout/item_timetable" tools:visibility="visible" /> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> <LinearLayout android:id="@+id/timetableEmpty" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:padding="10dp" android:visibility="gone" tools:ignore="UseCompoundDrawables"> <ImageView android:layout_width="100dp" android:layout_height="100dp" app:srcCompat="@drawable/ic_main_timetable" app:tint="?colorOnBackground" tools:ignore="contentDescription" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:gravity="center" android:text="@string/timetable_no_items" android:textSize="20sp" /> <TextView android:id="@+id/timetableEmptyMessage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="24dp" android:gravity="center" android:lineSpacingMultiplier="1.2" android:textColor="?android:textColorSecondary" android:textSize="16sp" tools:maxLines="4" tools:text="@tools:sample/lorem/random" /> </LinearLayout> <LinearLayout android:id="@+id/timetableError" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:visibility="invisible" tools:ignore="UseCompoundDrawables" tools:visibility="invisible"> <ImageView android:layout_width="100dp" android:layout_height="100dp" app:srcCompat="@drawable/ic_error" app:tint="?colorOnBackground" tools:ignore="contentDescription" /> <TextView android:id="@+id/timetableErrorMessage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:gravity="center" android:padding="8dp" android:text="@string/error_unknown" android:textSize="20sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:gravity="center" android:orientation="horizontal"> <com.google.android.material.button.MaterialButton android:id="@+id/timetableErrorDetails" style="@style/Widget.Material3.Button.OutlinedButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:text="@string/all_details" /> <com.google.android.material.button.MaterialButton android:id="@+id/timetableErrorRetry" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/all_retry" /> </LinearLayout> </LinearLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout> <io.github.wulkanowy.ui.widgets.MaterialLinearLayout android:id="@+id/timetableNavContainer" android:layout_width="match_parent" android:layout_height="48dp" android:layout_gravity="bottom" android:gravity="center" android:orientation="horizontal" tools:ignore="UnusedAttribute"> <ImageButton android:id="@+id/timetablePreviousButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="@string/all_prev" android:paddingLeft="12dp" android:paddingTop="8dp" android:paddingRight="12dp" android:paddingBottom="8dp" android:scaleType="fitStart" app:srcCompat="@drawable/ic_chevron_left" app:tint="?colorPrimary" /> <TextView android:id="@+id/timetableNavDate" android:layout_width="wrap_content" android:layout_height="match_parent" android:background="?selectableItemBackgroundBorderless" android:fontFamily="sans-serif" android:gravity="center" android:textSize="16sp" tools:text="@tools:sample/date/ddmmyy" /> <ImageButton android:id="@+id/timetableNextButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="?attr/selectableItemBackgroundBorderless" android:contentDescription="@string/all_next" android:paddingLeft="12dp" android:paddingTop="8dp" android:paddingRight="12dp" android:paddingBottom="8dp" android:scaleType="fitEnd" app:srcCompat="@drawable/ic_chevron_right" app:tint="?colorPrimary" /> </io.github.wulkanowy.ui.widgets.MaterialLinearLayout> </FrameLayout>