You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
375 lines
17 KiB
375 lines
17 KiB
<?xml version="1.0" encoding="utf-8"?>
|
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
xmlns:vlc="http://schemas.android.com/apk/res-auto">
|
|
|
|
<data>
|
|
|
|
<import type="android.view.View" />
|
|
|
|
<import type="android.text.TextUtils" />
|
|
|
|
<variable
|
|
name="media"
|
|
type="org.videolan.medialibrary.media.MediaLibraryItem" />
|
|
|
|
<variable
|
|
name="isNetwork"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="isOTG"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="isSD"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="isPresent"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="isFavorite"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="showProgress"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="showItemProgress"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="inSelection"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="selected"
|
|
type="boolean" />
|
|
|
|
<variable
|
|
name="seen"
|
|
type="long" />
|
|
|
|
<variable
|
|
name="time"
|
|
type="String" />
|
|
|
|
<variable
|
|
name="resolution"
|
|
type="String" />
|
|
|
|
<variable
|
|
name="max"
|
|
type="int" />
|
|
|
|
<variable
|
|
name="progress"
|
|
type="int" />
|
|
|
|
<variable
|
|
name="bgColor"
|
|
type="int" />
|
|
|
|
<variable
|
|
name="cover"
|
|
type="android.graphics.drawable.BitmapDrawable" />
|
|
|
|
<variable
|
|
name="scaleType"
|
|
type="android.widget.ImageView.ScaleType" />
|
|
|
|
<variable
|
|
name="holder"
|
|
type="org.videolan.vlc.gui.video.VideoListAdapter.ViewHolder" />
|
|
</data>
|
|
|
|
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
selected="@{selected}"
|
|
android:background="?attr/video_card_background"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:longClickable="true"
|
|
android:paddingStart="8dp"
|
|
android:paddingEnd="8dp"
|
|
android:paddingTop="8dp"
|
|
android:clipToPadding="false"
|
|
vlc:mediaContentDescription="@{media}"
|
|
android:onClick="@{holder::onClick}"
|
|
android:onLongClick="@{holder::onLongClick}">
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
android:id="@+id/container"
|
|
style="@style/VLCCardView"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:importantForAccessibility="no"
|
|
android:foreground="?android:attr/selectableItemBackground"
|
|
android:longClickable="true"
|
|
android:onClick="@{holder::onClick}"
|
|
android:onLongClick="@{holder::onLongClick}"
|
|
vlc:layout_constraintDimensionRatio="16:10"
|
|
vlc:layout_constraintEnd_toEndOf="parent"
|
|
vlc:layout_constraintStart_toStartOf="parent"
|
|
vlc:layout_constraintTop_toTopOf="parent">
|
|
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent">
|
|
|
|
<ImageView
|
|
android:id="@+id/ml_item_thumbnail"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:scaleType="centerCrop"
|
|
android:src="@{cover}"
|
|
tools:src="@tools:sample/backgrounds/scenic"
|
|
vlc:layout_constraintEnd_toEndOf="parent"
|
|
vlc:layout_constraintStart_toStartOf="parent"
|
|
vlc:layout_constraintTop_toTopOf="parent"
|
|
vlc:media="@{media}" />
|
|
<View
|
|
android:id="@+id/network_off_overlay"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:visibility="@{!selected && !isPresent ? View.VISIBLE : View.GONE}"
|
|
android:background="?attr/disabled_overlay_color"
|
|
vlc:layout_constraintBottom_toBottomOf="@+id/ml_item_thumbnail"
|
|
vlc:layout_constraintEnd_toEndOf="@+id/ml_item_thumbnail"
|
|
vlc:layout_constraintStart_toStartOf="@+id/ml_item_thumbnail"
|
|
vlc:layout_constraintTop_toTopOf="@+id/ml_item_thumbnail" />
|
|
|
|
<ImageView
|
|
android:id="@+id/ml_item_overlay"
|
|
android:layout_width="0dp"
|
|
android:layout_height="0dp"
|
|
android:scaleType="fitXY"
|
|
android:src="@drawable/video_overlay_gradient"
|
|
vlc:layout_constraintBottom_toBottomOf="@+id/ml_item_thumbnail"
|
|
vlc:layout_constraintEnd_toEndOf="@+id/ml_item_thumbnail"
|
|
vlc:layout_constraintHorizontal_bias="0.0"
|
|
vlc:layout_constraintStart_toStartOf="@+id/ml_item_thumbnail"
|
|
vlc:layout_constraintTop_toTopOf="@+id/ml_item_thumbnail"
|
|
vlc:layout_constraintVertical_bias="0.0" />
|
|
|
|
<TextView
|
|
android:id="@+id/ml_item_resolution"
|
|
style="@style/VLC.TextViewDescription"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="4dp"
|
|
android:layout_marginTop="4dp"
|
|
android:background="@drawable/rounded_corners_black_more_transparent"
|
|
android:paddingStart="4dp"
|
|
android:paddingTop="2dp"
|
|
android:paddingEnd="4dp"
|
|
android:paddingBottom="2dp"
|
|
android:text="@{resolution}"
|
|
android:textColor="@color/white"
|
|
android:textSize="10sp"
|
|
android:visibility="@{TextUtils.isEmpty(resolution) ? View.GONE : View.VISIBLE, default=gone}"
|
|
tools:text="HD"
|
|
tools:visibility="visible"
|
|
vlc:layout_constraintStart_toStartOf="parent"
|
|
vlc:layout_constraintTop_toTopOf="parent" />
|
|
|
|
<ImageView
|
|
android:id="@+id/media_favorite"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="8dp"
|
|
android:layout_marginBottom="4dp"
|
|
android:background="@drawable/rounded_corners_black_more_transparent"
|
|
android:padding="3dp"
|
|
android:visibility="@{isFavorite ? View.VISIBLE : View.GONE}"
|
|
vlc:layout_constraintBottom_toTopOf="@+id/ml_item_progress"
|
|
vlc:layout_constraintStart_toStartOf="@+id/ml_item_thumbnail"
|
|
vlc:layout_goneMarginBottom="4dp"
|
|
vlc:srcCompat="@drawable/ic_emoji_favorite_white" />
|
|
|
|
<ImageView
|
|
android:id="@+id/network_media"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="8dp"
|
|
android:layout_marginBottom="4dp"
|
|
android:background="@drawable/rounded_corners_black_more_transparent"
|
|
android:padding="3dp"
|
|
android:visibility="@{isNetwork && isPresent ? View.VISIBLE : View.GONE}"
|
|
vlc:layout_constraintBottom_toTopOf="@+id/ml_item_progress"
|
|
vlc:layout_constraintStart_toEndOf="@+id/media_favorite"
|
|
vlc:layout_goneMarginBottom="4dp"
|
|
vlc:srcCompat="@drawable/ic_emoji_network"
|
|
vlc:tint="@color/white" />
|
|
|
|
|
|
<ImageView
|
|
android:id="@+id/otg_media"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="8dp"
|
|
android:layout_marginBottom="4dp"
|
|
android:background="@drawable/rounded_corners_black_more_transparent"
|
|
android:padding="3dp"
|
|
android:visibility="@{isOTG && isPresent ? View.VISIBLE : View.GONE}"
|
|
vlc:layout_constraintBottom_toTopOf="@+id/ml_item_progress"
|
|
vlc:layout_constraintStart_toEndOf="@+id/media_favorite"
|
|
vlc:layout_goneMarginBottom="4dp"
|
|
vlc:srcCompat="@drawable/ic_emoji_otg"
|
|
vlc:tint="@color/white" />
|
|
|
|
<ImageView
|
|
android:id="@+id/sd_media"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="8dp"
|
|
android:layout_marginBottom="4dp"
|
|
android:background="@drawable/rounded_corners_black_more_transparent"
|
|
android:padding="3dp"
|
|
android:visibility="@{isSD && isPresent ? View.VISIBLE : View.GONE}"
|
|
vlc:layout_constraintBottom_toTopOf="@+id/ml_item_progress"
|
|
vlc:layout_constraintStart_toEndOf="@+id/media_favorite"
|
|
vlc:layout_goneMarginBottom="4dp"
|
|
vlc:srcCompat="@drawable/ic_emoji_sd"
|
|
vlc:tint="@color/white" />
|
|
|
|
<ImageView
|
|
android:id="@+id/absent_media"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="8dp"
|
|
android:layout_marginBottom="4dp"
|
|
android:background="@drawable/rounded_corners_black_more_transparent"
|
|
android:padding="3dp"
|
|
android:visibility="@{!isPresent ? View.VISIBLE : View.GONE}"
|
|
vlc:layout_constraintBottom_toTopOf="@+id/ml_item_progress"
|
|
vlc:layout_constraintStart_toEndOf="@+id/media_favorite"
|
|
vlc:layout_goneMarginBottom="4dp"
|
|
vlc:srcCompat="@drawable/ic_emoji_absent"
|
|
vlc:tint="@color/white" />
|
|
|
|
<ImageView
|
|
android:id="@+id/ml_item_seen"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="8dp"
|
|
android:layout_marginTop="4dp"
|
|
android:background="@drawable/rounded_corners_black_more_transparent"
|
|
android:padding="3dp"
|
|
android:visibility="@{seen == 0L ? View.GONE : View.VISIBLE, default=gone}"
|
|
tools:visibility="visible"
|
|
vlc:layout_constraintStart_toEndOf="@+id/ml_item_resolution"
|
|
vlc:layout_constraintTop_toTopOf="parent"
|
|
vlc:layout_goneMarginStart="4dp"
|
|
vlc:srcCompat="@drawable/ic_check"
|
|
vlc:tint="@color/white" />
|
|
|
|
<ImageView
|
|
android:id="@+id/item_more"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:contentDescription="@string/more_actions"
|
|
android:onClick="@{holder::onMoreClick}"
|
|
android:scaleType="fitEnd"
|
|
android:importantForAccessibility="yes"
|
|
android:visibility="@{isPresent && !inSelection ? View.VISIBLE : View.GONE}"
|
|
vlc:layout_constraintEnd_toEndOf="parent"
|
|
vlc:layout_constraintTop_toTopOf="parent"
|
|
vlc:srcCompat="@drawable/ic_more_w" />
|
|
|
|
<ImageView
|
|
android:id="@+id/selected_check"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:layout_marginEnd="4dp"
|
|
android:visibility="@{selected ? View.VISIBLE : View.GONE}"
|
|
vlc:layout_constraintEnd_toEndOf="parent"
|
|
vlc:layout_constraintTop_toTopOf="@+id/ml_item_thumbnail"
|
|
vlc:srcCompat="@drawable/ic_video_grid_check" />
|
|
|
|
<ProgressBar
|
|
android:id="@+id/ml_item_progress"
|
|
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:background="@color/transparent"
|
|
android:focusable="false"
|
|
android:indeterminate="false"
|
|
android:max="@{max}"
|
|
android:maxHeight="4dip"
|
|
android:minHeight="4dip"
|
|
android:progress="@{progress}"
|
|
android:layoutDirection="ltr"
|
|
android:progressDrawable="@drawable/gridview_progressbar"
|
|
android:secondaryProgress="0"
|
|
android:visibility="@{progress == 0 || !showItemProgress ? View.GONE : View.VISIBLE}"
|
|
vlc:layout_constraintBottom_toBottomOf="parent"
|
|
vlc:layout_constraintEnd_toEndOf="parent"
|
|
vlc:layout_constraintStart_toStartOf="parent" />
|
|
|
|
<ProgressBar
|
|
android:id="@+id/thumb_progress"
|
|
style="?android:attr/progressBarStyle"
|
|
android:layout_width="32dp"
|
|
android:layout_height="32dp"
|
|
android:visibility="@{showProgress ? View.VISIBLE : View.GONE}"
|
|
vlc:layout_constraintBottom_toBottomOf="parent"
|
|
vlc:layout_constraintStart_toStartOf="parent"
|
|
vlc:layout_constraintTop_toTopOf="parent"
|
|
vlc:layout_constraintEnd_toEndOf="parent" />
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
|
|
<!-- Image loading is handled by org.videolan.vlc.gui.helpers.ImageLoader.loadImage() -->
|
|
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
|
|
<TextView
|
|
android:id="@+id/ml_item_title"
|
|
style="@style/VLC.TextViewTitle"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginTop="4dp"
|
|
android:ellipsize="end"
|
|
android:lineSpacingMultiplier="1"
|
|
android:maxLines="1"
|
|
android:text="@{media.title}"
|
|
android:textSize="16sp"
|
|
tools:targetApi="jelly_bean"
|
|
tools:text="Star wars Episode 1"
|
|
android:enabled="@{isPresent}"
|
|
vlc:layout_constraintEnd_toEndOf="@+id/container"
|
|
vlc:layout_constraintStart_toStartOf="parent"
|
|
vlc:layout_constraintTop_toBottomOf="@+id/container" />
|
|
|
|
<TextView
|
|
android:id="@+id/ml_item_time"
|
|
style="@style/VLC.TextViewDescription"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginBottom="8dp"
|
|
android:ellipsize="end"
|
|
android:gravity="start"
|
|
vlc:presenceDescription="@{time}"
|
|
android:enabled="@{isPresent}"
|
|
android:textSize="12sp"
|
|
android:visibility="@{TextUtils.isEmpty(time) ? View.GONE : View.VISIBLE}"
|
|
tools:text="32:55"
|
|
vlc:layout_constraintBottom_toBottomOf="parent"
|
|
vlc:layout_constraintStart_toStartOf="parent"
|
|
vlc:layout_constraintTop_toBottomOf="@+id/ml_item_title" />
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
</layout>
|
|
|