- long press download button to save it for later and not schedule it. Also works when u try to queue multiple items - change app icon background based on theme - fixed bug when trying to redownload a history item and wanting to use a different type - made the scheduled item auto-update after its queued so the app doesnt have to update when it begins downloading - some fixes with output templates - fixed container and vcodec being saved with translated strings and not constants - added download thumbnail functionality. Click the result card in the middle and use the video player. Also observe running and queued downloads for that item - removed api key - fixed recommendations sometimes not showing in that location - added feature to disable thumbnails on certain screens. U can choose - added feature to convert subs to different formats - added youtube music search provider - made app name have a color depending on the theme - fixed format card not showing a translated string on best and worst strings - added ability to hide the format intent filter from the share menu - fixed app killing active downloads when removing a queued item - fixed filename template not showing uploader on odysee - other small stuff
225 lines
No EOL
9.9 KiB
XML
225 lines
No EOL
9.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<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:layout_width="match_parent"
|
|
android:paddingBottom="20dp"
|
|
android:layout_height="wrap_content">
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:id="@+id/frame_layout"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
app:cardCornerRadius="0dp"
|
|
app:layout_constraintDimensionRatio="H,16:9"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toTopOf="parent">
|
|
|
|
|
|
<androidx.media3.ui.PlayerView
|
|
android:id="@+id/video_view"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
app:layout_constraintTop_toTopOf="parent"
|
|
app:resize_mode="fixed_height"
|
|
app:useDefaultControls="true"
|
|
app:use_controller="true" />
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
android:id="@+id/download_thumb"
|
|
style="@style/Widget.Material3.Button.IconButton"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:icon="@drawable/ic_image"
|
|
app:iconSize="30dp"
|
|
app:iconTint="?android:colorAccent"
|
|
app:layout_constraintTop_toTopOf="@+id/frame_layout"
|
|
app:layout_constraintEnd_toEndOf="@+id/frame_layout" />
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
android:id="@+id/pause"
|
|
android:visibility="gone"
|
|
android:clickable="false"
|
|
app:iconSize="50dp"
|
|
style="@style/Widget.Material3.Button.IconButton"
|
|
app:iconTint="?android:colorAccent"
|
|
app:icon="@drawable/exomedia_ic_play_arrow_white"
|
|
android:layout_width="wrap_content"
|
|
android:indeterminate="true"
|
|
android:translationZ="10dp"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintBottom_toBottomOf="@+id/frame_layout"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<androidx.core.widget.NestedScrollView
|
|
android:orientation="vertical"
|
|
android:layout_width="match_parent"
|
|
android:scrollbars="none"
|
|
app:layout_constraintBottom_toBottomOf="parent"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@+id/frame_layout"
|
|
android:layout_height="wrap_content">
|
|
|
|
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
android:id="@+id/list_section"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:layout_marginVertical="10dp">
|
|
|
|
<TextView
|
|
android:id="@+id/title"
|
|
android:layout_width="0dp"
|
|
android:layout_marginStart="20dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="20dp"
|
|
android:ellipsize="end"
|
|
android:maxLines="2"
|
|
android:singleLine="false"
|
|
android:text="@string/app_name"
|
|
android:textSize="17sp"
|
|
app:layout_constraintEnd_toStartOf="@+id/download_button_layout"
|
|
app:layout_constraintHorizontal_bias="0.0"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<TextView
|
|
android:id="@+id/bottom_info"
|
|
android:layout_width="0dp"
|
|
android:layout_marginStart="20dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:ellipsize="end"
|
|
android:singleLine="false"
|
|
android:text="@string/app_name"
|
|
android:textSize="12sp"
|
|
app:layout_constraintEnd_toStartOf="@+id/download_button_layout"
|
|
app:layout_constraintHorizontal_bias="0.0"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@id/title" />
|
|
|
|
|
|
<LinearLayout
|
|
android:id="@+id/download_button_layout"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="10dp"
|
|
android:layout_marginEnd="20dp"
|
|
android:orientation="horizontal"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintTop_toTopOf="parent">
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
android:id="@+id/download_music"
|
|
style="@style/Widget.Material3.ExtendedFloatingActionButton.Icon.Secondary"
|
|
android:layout_width="55dp"
|
|
android:layout_height="55dp"
|
|
android:layout_marginVertical="5dp"
|
|
android:layout_marginStart="5dp"
|
|
app:icon="@drawable/ic_music" />
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
android:id="@+id/download_video"
|
|
style="@style/Widget.Material3.ExtendedFloatingActionButton.Icon.Secondary"
|
|
android:layout_width="55dp"
|
|
android:layout_height="55dp"
|
|
android:layout_margin="5dp"
|
|
app:icon="@drawable/ic_video" />
|
|
|
|
</LinearLayout>
|
|
|
|
<androidx.constraintlayout.widget.Barrier
|
|
android:id="@+id/title_barrier"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
app:barrierDirection="bottom"
|
|
app:constraint_referenced_ids="bottom_info,download_button_layout" />
|
|
|
|
|
|
<androidx.core.widget.NestedScrollView
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintBottom_toBottomOf="parent"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@id/title_barrier">
|
|
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content">
|
|
|
|
|
|
<TextView
|
|
android:id="@+id/running"
|
|
android:textStyle="bold"
|
|
android:layout_marginHorizontal="20dp"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginVertical="10dp"
|
|
android:text="@string/running"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<androidx.recyclerview.widget.RecyclerView
|
|
android:id="@+id/running_recycler"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@id/running" />
|
|
|
|
|
|
<TextView
|
|
android:id="@+id/queued"
|
|
android:layout_marginHorizontal="20dp"
|
|
android:textStyle="bold"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginVertical="10dp"
|
|
android:text="@string/download_queue"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@id/running_recycler" />
|
|
|
|
|
|
<androidx.recyclerview.widget.RecyclerView
|
|
android:id="@+id/queued_recycler"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@id/queued" />
|
|
|
|
|
|
|
|
<Button
|
|
android:id="@+id/bottom_sheet_link"
|
|
style="@style/Widget.Material3.Button.TextButton.Icon"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginHorizontal="20dp"
|
|
android:layout_marginTop="10dp"
|
|
android:singleLine="true"
|
|
android:text="@string/app_name"
|
|
android:textAlignment="textStart"
|
|
android:textSize="15sp"
|
|
app:icon="@drawable/ic_link"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintStart_toStartOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@id/queued_recycler" />
|
|
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
|
|
</androidx.core.widget.NestedScrollView>
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
|
|
</androidx.core.widget.NestedScrollView>
|
|
</androidx.constraintlayout.widget.ConstraintLayout> |