LibreTube/app/src/main/res/layout/fragment_player.xml

473 lines
20 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
2022-07-02 21:53:24 +05:30
<com.github.libretube.views.SingleViewTouchableMotionLayout 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:id="@+id/playerMotionLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutDescription="@xml/player_scene"
2022-07-03 22:03:13 +05:30
tools:context=".fragments.PlayerFragment">
<ScrollView
android:id="@+id/player_scrollView"
android:layout_width="match_parent"
android:layout_height="0dp"
2022-05-21 13:52:00 +05:30
android:background="?android:attr/colorBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
2022-05-07 21:52:45 +05:30
app:layout_constraintTop_toBottomOf="@+id/main_container">
<LinearLayout
2021-12-15 15:54:12 +05:30
android:id="@+id/linLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
2022-06-28 20:59:31 +05:30
android:animateLayoutChanges="true"
android:orientation="vertical">
2021-12-14 21:45:53 +05:30
2022-05-07 21:52:45 +05:30
<RelativeLayout
2022-06-13 19:45:02 +05:30
android:id="@+id/player_title_layout"
android:layout_width="match_parent"
2022-05-07 21:52:45 +05:30
android:layout_height="wrap_content"
2022-06-28 20:59:31 +05:30
android:layout_marginTop="5dp"
2022-05-07 21:52:45 +05:30
android:orientation="horizontal">
2022-05-07 21:52:45 +05:30
<TextView
android:id="@+id/player_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
2022-06-13 19:45:02 +05:30
android:layout_centerVertical="true"
2022-05-07 21:52:45 +05:30
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
2022-05-24 14:12:54 +05:30
android:layout_marginEnd="30dp"
2022-05-07 21:52:45 +05:30
android:text="Video Title"
2022-05-24 14:12:54 +05:30
android:textSize="18sp" />
2022-05-07 21:52:45 +05:30
<ImageView
android:id="@+id/player_description_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
2022-07-10 16:31:24 +05:30
android:layout_alignParentEnd="true"
2022-05-07 21:52:45 +05:30
android:layout_centerInParent="true"
2022-05-20 19:12:45 +05:30
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
2022-05-07 21:52:45 +05:30
android:src="@drawable/ic_arrow_down" />
</RelativeLayout>
2022-06-28 20:23:18 +05:30
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/player_views_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="10M views 2 days ago " />
2022-06-28 01:05:06 +05:30
<LinearLayout
2022-06-28 20:23:18 +05:30
android:layout_width="wrap_content"
2022-06-13 19:45:02 +05:30
android:layout_height="wrap_content"
2022-07-10 16:31:24 +05:30
android:layout_marginStart="3dp"
2022-06-28 20:23:18 +05:30
android:layout_marginTop="2dp">
<ImageView
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_gravity="center"
android:src="@drawable/ic_like" />
2022-06-28 01:05:06 +05:30
<TextView
2022-06-28 20:23:18 +05:30
android:id="@+id/textLike"
android:layout_width="wrap_content"
2022-06-28 01:05:06 +05:30
android:layout_height="wrap_content"
2022-06-28 20:23:18 +05:30
android:layout_marginHorizontal="5dp"
android:text="4.2K" />
2022-06-28 01:05:06 +05:30
2022-06-28 20:23:18 +05:30
<ImageView
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_gravity="center"
2022-07-10 16:31:24 +05:30
android:layout_marginStart="5dp"
2022-06-28 20:23:18 +05:30
android:rotation="180"
android:src="@drawable/ic_like" />
<TextView
android:id="@+id/textDislike"
2022-06-28 01:05:06 +05:30
android:layout_width="wrap_content"
android:layout_height="wrap_content"
2022-06-28 20:23:18 +05:30
android:layout_marginHorizontal="5dp"
android:text="1.3K" />
2022-06-28 01:05:06 +05:30
</LinearLayout>
2022-06-13 19:45:02 +05:30
2022-06-28 20:23:18 +05:30
</LinearLayout>
<LinearLayout
android:id="@+id/desc_linLayout"
2022-05-07 21:52:45 +05:30
android:layout_width="match_parent"
android:layout_height="wrap_content"
2022-06-28 20:23:18 +05:30
android:orientation="vertical"
android:visibility="gone">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/chapters_recView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="3dp"
android:layout_marginTop="20dp"
android:nestedScrollingEnabled="false"
android:visibility="gone" />
<TextView
android:id="@+id/player_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:padding="8dp"
android:textIsSelectable="true"
android:textSize="14sp" />
2022-06-28 20:23:18 +05:30
</LinearLayout>
2022-05-07 21:52:45 +05:30
<com.google.android.material.card.MaterialCardView
style="@style/Widget.Material3.CardView.Elevated"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_margin="17dp"
app:cardCornerRadius="27dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
2022-05-07 21:52:45 +05:30
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:gravity="center"
android:orientation="horizontal">
2022-05-07 21:52:45 +05:30
<LinearLayout
android:id="@+id/relPlayer_share"
2022-06-28 20:57:57 +05:30
style="@style/PlayerActionsLayout">
2022-03-15 21:36:42 +05:30
2022-05-07 21:52:45 +05:30
<ImageView
android:layout_width="24dp"
android:layout_height="25dp"
android:src="@drawable/ic_share" />
2022-05-07 21:52:45 +05:30
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/share" />
</LinearLayout>
<LinearLayout
android:id="@+id/relPlayer_download"
2022-06-28 20:57:57 +05:30
style="@style/PlayerActionsLayout">
2022-05-07 21:52:45 +05:30
<ImageView
android:layout_width="24dp"
android:layout_height="25dp"
2022-05-07 22:13:04 +05:30
android:src="@drawable/ic_download" />
2022-05-07 21:52:45 +05:30
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
2022-06-13 19:45:02 +05:30
android:autoSizeTextType="uniform"
2022-05-07 21:52:45 +05:30
android:gravity="center"
2022-06-04 11:22:08 +05:30
android:maxLines="1"
2022-06-13 19:45:02 +05:30
android:text="@string/download" />
2022-05-07 21:52:45 +05:30
</LinearLayout>
2021-12-14 21:45:53 +05:30
2022-05-07 21:52:45 +05:30
<LinearLayout
2022-07-15 13:46:31 +05:30
android:id="@+id/relPlayer_open"
2022-06-28 20:57:57 +05:30
style="@style/PlayerActionsLayout">
2022-05-07 21:52:45 +05:30
<ImageView
android:layout_width="24dp"
android:layout_height="25dp"
android:padding="2dp"
2022-07-17 14:40:46 +05:30
android:src="@drawable/ic_open" />
2022-05-07 21:52:45 +05:30
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
2022-07-06 20:03:50 +05:30
android:text="@string/open" />
2022-05-07 21:52:45 +05:30
</LinearLayout>
<LinearLayout
2022-07-10 21:34:58 +05:30
android:id="@+id/relPlayer_background"
style="@style/PlayerActionsLayout">
<ImageView
android:layout_width="24dp"
android:layout_height="25dp"
android:src="@drawable/ic_headphones" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/audio" />
</LinearLayout>
<LinearLayout
android:id="@+id/relPlayer_save"
2022-06-28 20:57:57 +05:30
style="@style/PlayerActionsLayout">
2022-05-07 21:52:45 +05:30
<ImageView
android:layout_width="24dp"
android:layout_height="25dp"
android:src="@drawable/ic_save" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/save" />
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<RelativeLayout
2022-02-05 00:25:05 +05:30
android:id="@+id/player_channel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
2022-02-13 17:23:04 +05:30
android:layout_marginStart="8dp"
2022-05-07 21:52:45 +05:30
android:layout_marginTop="15dp"
2022-06-13 19:45:02 +05:30
android:layout_marginEnd="8dp"
2022-05-07 21:52:45 +05:30
android:layout_marginBottom="15dp"
android:background="?android:attr/selectableItemBackground"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/player_channelImage"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
2022-02-04 01:47:08 +05:30
android:layout_marginEnd="4dp" />
<TextView
android:id="@+id/player_channelName"
2022-03-16 19:00:47 +05:30
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
2022-07-10 16:31:24 +05:30
android:layout_marginStart="5dp"
2022-03-16 19:00:47 +05:30
android:layout_toStartOf="@+id/player_subscribe"
2022-03-29 22:32:34 +05:30
android:layout_toEndOf="@+id/player_channelImage"
2022-03-16 19:00:47 +05:30
android:ellipsize="end"
2022-03-29 22:32:34 +05:30
android:maxLines="1"
android:text=""
2022-07-15 14:06:33 +05:30
android:textSize="15sp" />
2022-02-13 22:43:26 +05:30
<com.google.android.material.button.MaterialButton
android:id="@+id/player_subscribe"
2022-05-22 04:11:53 +05:30
style="@style/Widget.Material3.Button.ElevatedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
2022-02-04 01:47:08 +05:30
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
2022-05-07 21:52:45 +05:30
android:drawableLeft="@drawable/ic_bell"
android:drawableTint="?android:attr/textColorPrimary"
2022-02-05 00:25:05 +05:30
android:text="@string/subscribe"
android:textColor="?android:attr/textColorPrimary"
2022-07-11 19:55:47 +05:30
android:textSize="12sp"
2022-05-07 21:52:45 +05:30
app:cornerRadius="11dp" />
</RelativeLayout>
2022-05-07 21:52:45 +05:30
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
android:descendantFocusability="blocksDescendants">
2022-05-18 15:21:34 +05:30
<com.google.android.material.card.MaterialCardView
2022-05-08 16:29:44 +05:30
android:id="@+id/comments_toggle"
2022-05-18 15:21:34 +05:30
style="@style/Widget.Material3.CardView.Elevated"
2022-05-08 16:29:44 +05:30
android:layout_width="match_parent"
2022-05-18 15:21:34 +05:30
android:layout_height="wrap_content"
2022-07-03 18:13:29 +05:30
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
2022-06-04 12:01:34 +05:30
app:cardCornerRadius="18dp">
2022-05-08 16:29:44 +05:30
2022-07-15 14:06:33 +05:30
<LinearLayout
2022-05-18 15:21:34 +05:30
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:orientation="horizontal">
<TextView
android:id="@+id/commentsToggle_textView"
2022-07-15 14:06:33 +05:30
android:layout_width="0dp"
2022-05-18 15:21:34 +05:30
android:layout_height="wrap_content"
2022-07-10 16:31:24 +05:30
android:layout_marginStart="8dp"
2022-07-15 14:06:33 +05:30
android:layout_weight="1"
2022-05-18 15:21:34 +05:30
android:text="@string/comments"
2022-07-15 14:06:33 +05:30
android:textSize="17sp" />
2022-05-18 15:21:34 +05:30
<ImageView
android:id="@+id/commentsToggle_imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
2022-07-15 14:06:33 +05:30
android:layout_gravity="center"
2022-07-10 16:31:24 +05:30
android:layout_marginEnd="3dp"
2022-07-15 14:06:33 +05:30
android:src="@drawable/ic_arrow_up_down" />
2022-05-18 15:21:34 +05:30
2022-07-15 14:06:33 +05:30
</LinearLayout>
2022-05-08 16:29:44 +05:30
2022-05-18 15:21:34 +05:30
</com.google.android.material.card.MaterialCardView>
2022-05-07 21:52:45 +05:30
<androidx.recyclerview.widget.RecyclerView
2022-05-08 16:03:01 +05:30
android:id="@+id/comments_recView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
2022-06-13 19:45:02 +05:30
android:layout_below="@id/comments_toggle"
2022-07-04 21:52:21 +05:30
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
2022-05-08 21:55:22 +05:30
android:nestedScrollingEnabled="false"
2022-05-08 16:29:44 +05:30
android:visibility="gone" />
2022-05-08 16:03:01 +05:30
<androidx.recyclerview.widget.RecyclerView
2022-07-01 00:55:40 +05:30
android:id="@+id/related_rec_view"
2022-05-08 16:03:01 +05:30
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/comments_recView"
2022-07-04 21:52:21 +05:30
android:layout_marginStart="10dp"
2022-05-08 16:03:01 +05:30
android:layout_marginTop="10dp"
2022-07-04 21:52:21 +05:30
android:layout_marginEnd="10dp"
2022-05-08 16:03:01 +05:30
android:layout_marginBottom="10dp"
android:nestedScrollingEnabled="false" />
</RelativeLayout>
2022-05-07 21:52:45 +05:30
</LinearLayout>
2022-05-07 21:52:45 +05:30
</ScrollView>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_container"
android:layout_width="match_parent"
2022-02-04 01:42:58 +05:30
android:layout_height="0dp"
2022-05-07 21:52:45 +05:30
android:background="?attr/colorSurface"
app:layout_constraintEnd_toEndOf="parent"
2022-07-14 23:27:53 +05:30
app:layout_constraintHeight_percent="0.275"
app:layout_constraintStart_toStartOf="parent"
2022-05-07 21:52:45 +05:30
app:layout_constraintTop_toTopOf="parent" />
2022-07-02 21:53:24 +05:30
<com.github.libretube.views.CustomExoPlayerView
android:id="@+id/player"
android:layout_width="match_parent"
2022-07-03 16:58:24 +05:30
android:layout_height="match_parent"
2022-07-10 13:47:03 +05:30
android:background="@android:color/black"
app:layout_constraintBottom_toBottomOf="@id/main_container"
app:layout_constraintStart_toStartOf="@id/main_container"
app:layout_constraintTop_toTopOf="@id/main_container"
2022-07-08 22:20:11 +05:30
app:show_buffering="when_playing">
2022-07-08 21:19:32 +05:30
2022-07-09 21:58:10 +05:30
<!-- double tap to rewind/forward overlay -->
<LinearLayout
android:id="@+id/doubleTapOverlayLL"
android:layout_width="match_parent"
2022-07-08 21:48:31 +05:30
android:layout_height="match_parent"
android:layout_marginTop="70dp"
android:layout_marginBottom="60dp">
2022-07-08 21:19:32 +05:30
2022-07-09 21:58:10 +05:30
<!-- double tap rewind btn -->
<FrameLayout
android:id="@+id/rewindFL"
android:layout_width="0dp"
2022-07-08 21:48:31 +05:30
android:layout_height="match_parent"
2022-07-11 20:09:35 +05:30
android:layout_weight=".35">
2022-07-09 21:58:10 +05:30
<ImageButton
android:id="@+id/rewindBTN"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:selectableItemBackgroundBorderless"
android:clickable="false"
android:src="@drawable/ic_rewind"
android:visibility="invisible"
app:tint="@android:color/white" />
2022-07-08 21:19:32 +05:30
2022-07-09 21:58:10 +05:30
</FrameLayout>
2022-07-08 21:19:32 +05:30
2022-07-09 21:58:10 +05:30
<!-- place holder for the center controls -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
2022-07-11 20:09:35 +05:30
android:layout_weight=".30" />
2022-07-08 21:19:32 +05:30
2022-07-09 21:58:10 +05:30
<!-- double tap forward btn -->
<FrameLayout
android:id="@+id/forwardFL"
android:layout_width="0dp"
2022-07-08 21:48:31 +05:30
android:layout_height="match_parent"
2022-07-11 20:09:35 +05:30
android:layout_weight=".35">
2022-07-09 21:58:10 +05:30
<ImageButton
android:id="@+id/forwardBTN"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:selectableItemBackgroundBorderless"
android:clickable="false"
android:src="@drawable/ic_forward"
android:visibility="invisible"
app:tint="@android:color/white" />
</FrameLayout>
2022-07-08 21:19:32 +05:30
2022-07-09 21:58:10 +05:30
</LinearLayout>
2022-07-08 21:19:32 +05:30
</com.github.libretube.views.CustomExoPlayerView>
<ImageView
android:id="@+id/close_imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:alpha="0"
android:src="@drawable/ic_close"
2021-12-14 02:58:17 +05:30
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/main_container"
app:layout_constraintEnd_toEndOf="@id/main_container"
app:layout_constraintTop_toTopOf="@id/main_container" />
<ImageView
android:id="@+id/play_imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:alpha="0"
android:src="@drawable/ic_play"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/close_imageView"
app:layout_constraintEnd_toStartOf="@+id/close_imageView"
app:layout_constraintTop_toTopOf="@+id/close_imageView" />
<TextView
android:id="@+id/title_textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="12dp"
android:alpha="0"
android:ellipsize="end"
android:maxLines="1"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/play_imageView"
app:layout_constraintEnd_toStartOf="@+id/play_imageView"
app:layout_constraintStart_toEndOf="@+id/player"
app:layout_constraintTop_toTopOf="@+id/play_imageView" />
2022-07-02 21:53:24 +05:30
</com.github.libretube.views.SingleViewTouchableMotionLayout>