Skip to content

Commit a102fc9

Browse files
committed
Use constraint layout for play queue item
Also remove invalid ic_selected attribute
1 parent f6bca68 commit a102fc9

6 files changed

Lines changed: 56 additions & 60 deletions

File tree

app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,10 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
294294
}
295295

296296
private fun showLongTapDialog(selectedItem: ChannelInfoItem) {
297-
val commands = arrayOf(getString(R.string.share), getString(R.string.open_in_browser),
298-
getString(R.string.unsubscribe))
297+
val commands = arrayOf(
298+
getString(R.string.share), getString(R.string.open_in_browser),
299+
getString(R.string.unsubscribe)
300+
)
299301

300302
val actions = DialogInterface.OnClickListener { _, i ->
301303
when (i) {

app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueAdapter.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,10 @@ public int getItemViewType(final int position) {
182182
return ITEM_VIEW_TYPE_ID;
183183
}
184184

185+
@NonNull
185186
@Override
186-
public RecyclerView.ViewHolder onCreateViewHolder(final ViewGroup parent, final int type) {
187+
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull final ViewGroup parent,
188+
final int type) {
187189
switch (type) {
188190
case FOOTER_VIEW_TYPE_ID:
189191
return new HFHolder(footer);
@@ -197,7 +199,8 @@ public RecyclerView.ViewHolder onCreateViewHolder(final ViewGroup parent, final
197199
}
198200

199201
@Override
200-
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
202+
public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder holder,
203+
final int position) {
201204
if (holder instanceof PlayQueueItemHolder) {
202205
final PlayQueueItemHolder itemHolder = (PlayQueueItemHolder) holder;
203206

@@ -207,7 +210,6 @@ public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int pos
207210

208211
// Check if the current item should be selected/highlighted
209212
final boolean isSelected = playQueue.getIndex() == position;
210-
itemHolder.itemSelected.setVisibility(isSelected ? View.VISIBLE : View.INVISIBLE);
211213
itemHolder.itemView.setSelected(isSelected);
212214
} else if (holder instanceof HFHolder && position == playQueue.getStreams().size()
213215
&& footer != null && showFooter) {

app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItemHolder.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public class PlayQueueItemHolder extends RecyclerView.ViewHolder {
3737
public final TextView itemDurationView;
3838
final TextView itemAdditionalDetailsView;
3939

40-
final ImageView itemSelected;
4140
public final ImageView itemThumbnailView;
4241
final ImageView itemHandle;
4342

@@ -49,7 +48,6 @@ public class PlayQueueItemHolder extends RecyclerView.ViewHolder {
4948
itemVideoTitleView = v.findViewById(R.id.itemVideoTitleView);
5049
itemDurationView = v.findViewById(R.id.itemDurationView);
5150
itemAdditionalDetailsView = v.findViewById(R.id.itemAdditionalDetails);
52-
itemSelected = v.findViewById(R.id.itemSelected);
5351
itemThumbnailView = v.findViewById(R.id.itemThumbnailView);
5452
itemHandle = v.findViewById(R.id.itemHandle);
5553
}
Lines changed: 45 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,99 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2+
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto"
44
xmlns:tools="http://schemas.android.com/tools"
55
android:id="@+id/itemRoot"
66
android:layout_width="match_parent"
7-
android:layout_height="48dp"
7+
android:layout_height="wrap_content"
88
android:background="?attr/selector"
99
android:clickable="true"
1010
android:focusable="true"
11-
android:foreground="?attr/selectableItemBackground"
12-
android:paddingTop="6dp"
13-
android:paddingBottom="6dp">
14-
15-
<androidx.appcompat.widget.AppCompatImageView
16-
android:id="@+id/itemSelected"
17-
android:layout_width="10dp"
18-
android:layout_height="10dp"
19-
android:layout_alignParentStart="true"
20-
android:layout_alignParentLeft="true"
21-
android:layout_centerInParent="true"
22-
android:layout_marginLeft="2dp"
23-
android:layout_marginRight="2dp"
24-
android:scaleType="fitXY"
25-
app:srcCompat="?attr/ic_selected"
26-
tools:ignore="ContentDescription,RtlHardcoded" />
11+
android:foreground="?attr/selectableItemBackground">
2712

2813
<ImageView
2914
android:id="@+id/itemThumbnailView"
3015
android:layout_width="@dimen/play_queue_thumbnail_width"
3116
android:layout_height="@dimen/play_queue_thumbnail_height"
32-
android:layout_alignParentTop="true"
33-
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
34-
android:layout_toEndOf="@+id/itemSelected"
35-
android:layout_toRightOf="@+id/itemSelected"
17+
android:layout_marginStart="@dimen/video_item_search_image_right_margin"
18+
android:layout_marginTop="@dimen/video_item_search_image_right_margin"
19+
android:layout_marginBottom="@dimen/video_item_search_image_right_margin"
3620
android:contentDescription="@string/list_thumbnail_view_description"
3721
android:scaleType="centerCrop"
3822
android:src="@drawable/dummy_thumbnail"
39-
tools:ignore="RtlHardcoded" />
40-
41-
<androidx.appcompat.widget.AppCompatImageView
42-
android:id="@+id/itemHandle"
43-
android:layout_width="wrap_content"
44-
android:layout_height="match_parent"
45-
android:layout_alignParentRight="true"
46-
android:layout_gravity="center_vertical"
47-
android:padding="@dimen/video_item_search_image_right_margin"
48-
android:scaleType="center"
49-
app:srcCompat="@drawable/ic_drag_handle"
50-
tools:ignore="ContentDescription,RtlHardcoded" />
23+
app:layout_constraintBottom_toBottomOf="parent"
24+
app:layout_constraintStart_toStartOf="parent"
25+
app:layout_constraintTop_toTopOf="parent" />
5126

5227
<TextView
5328
android:id="@+id/itemDurationView"
5429
android:layout_width="wrap_content"
5530
android:layout_height="wrap_content"
56-
android:layout_alignRight="@id/itemThumbnailView"
31+
android:layout_alignEnd="@id/itemThumbnailView"
5732
android:layout_alignBottom="@id/itemThumbnailView"
58-
android:layout_marginRight="@dimen/video_item_search_duration_margin"
33+
android:layout_marginEnd="@dimen/video_item_search_duration_margin"
5934
android:layout_marginBottom="@dimen/video_item_search_duration_margin"
6035
android:background="@color/duration_background_color"
61-
android:paddingLeft="@dimen/video_item_search_duration_horizontal_padding"
36+
android:paddingStart="@dimen/video_item_search_duration_horizontal_padding"
6237
android:paddingTop="@dimen/video_item_search_duration_vertical_padding"
63-
android:paddingRight="@dimen/video_item_search_duration_horizontal_padding"
38+
android:paddingEnd="@dimen/video_item_search_duration_horizontal_padding"
6439
android:paddingBottom="@dimen/video_item_search_duration_vertical_padding"
6540
android:textAppearance="?android:attr/textAppearanceSmall"
6641
android:textColor="@color/duration_text_color"
6742
android:textSize="@dimen/video_item_search_duration_text_size"
68-
tools:ignore="RtlHardcoded"
43+
app:layout_constraintBottom_toBottomOf="@+id/itemThumbnailView"
44+
app:layout_constraintEnd_toEndOf="@+id/itemThumbnailView"
6945
tools:text="1:09:10" />
7046

7147

7248
<TextView
7349
android:id="@+id/itemVideoTitleView"
74-
android:layout_width="match_parent"
50+
android:layout_width="0dp"
7551
android:layout_height="wrap_content"
7652
android:layout_alignParentTop="true"
53+
android:layout_marginStart="8dp"
7754
android:layout_toStartOf="@id/itemHandle"
78-
android:layout_toLeftOf="@id/itemHandle"
7955
android:layout_toEndOf="@id/itemThumbnailView"
80-
android:layout_toRightOf="@id/itemThumbnailView"
8156
android:ellipsize="end"
8257
android:singleLine="true"
8358
android:textAppearance="?android:attr/textAppearanceLarge"
8459
android:textSize="@dimen/video_item_search_title_text_size"
85-
tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. " />
60+
app:layout_constraintBottom_toTopOf="@+id/itemAdditionalDetails"
61+
app:layout_constraintEnd_toStartOf="@+id/itemHandle"
62+
app:layout_constraintStart_toEndOf="@+id/itemThumbnailView"
63+
app:layout_constraintTop_toTopOf="parent"
64+
app:layout_constraintVertical_chainStyle="packed"
65+
tools:text="Lorem ipsum dolor sit amet, consectetur adipisci elit. " />
8666

8767
<TextView
8868
android:id="@+id/itemAdditionalDetails"
89-
android:layout_width="match_parent"
69+
android:layout_width="0dp"
9070
android:layout_height="wrap_content"
9171
android:layout_alignParentBottom="true"
72+
android:layout_marginStart="8dp"
9273
android:layout_toStartOf="@id/itemHandle"
93-
android:layout_toLeftOf="@id/itemHandle"
9474
android:layout_toEndOf="@id/itemThumbnailView"
95-
android:layout_toRightOf="@id/itemThumbnailView"
9675
android:ellipsize="end"
9776
android:singleLine="true"
9877
android:textAppearance="?android:attr/textAppearanceSmall"
9978
android:textSize="@dimen/video_item_search_upload_date_text_size"
100-
tools:text="Uploader" />
79+
app:layout_constraintBottom_toBottomOf="parent"
80+
app:layout_constraintEnd_toStartOf="@+id/itemHandle"
81+
app:layout_constraintStart_toEndOf="@+id/itemThumbnailView"
82+
app:layout_constraintTop_toBottomOf="@+id/itemVideoTitleView"
83+
tools:text="Uploader uploader uploader uploader uploader · Youtube" />
84+
85+
<androidx.appcompat.widget.AppCompatImageView
86+
android:id="@+id/itemHandle"
87+
android:layout_width="wrap_content"
88+
android:layout_height="0dp"
89+
android:layout_alignParentRight="true"
90+
android:layout_gravity="center_vertical"
91+
android:paddingHorizontal="@dimen/video_item_search_image_right_margin"
92+
android:scaleType="center"
93+
app:layout_constraintBottom_toBottomOf="parent"
94+
app:layout_constraintEnd_toEndOf="parent"
95+
app:layout_constraintTop_toTopOf="parent"
96+
app:srcCompat="@drawable/ic_drag_handle"
97+
tools:ignore="ContentDescription,RtlHardcoded" />
10198

102-
</RelativeLayout>
99+
</androidx.constraintlayout.widget.ConstraintLayout>

app/src/main/res/values/attrs.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
4-
<attr name="ic_selected" format="reference" />
5-
63
<attr name="progress_horizontal_drawable" format="reference" />
74
<!-- Can't refer to colors directly in drawable's xml-->
85
<attr name="toolbar_shadow" format="reference" />

app/src/main/res/values/dimens.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@
114114
<dimen name="playlist_detail_uploader_image_size">24dp</dimen>
115115
<dimen name="playlist_detail_uploader_layout_height">28dp</dimen>
116116

117-
<!-- Play Queue View Dimensions -->
117+
<!-- Play queue thumbnail view dimensions (16:9) -->
118118
<dimen name="play_queue_thumbnail_width">62dp</dimen>
119-
<dimen name="play_queue_thumbnail_height">40dp</dimen>
119+
<dimen name="play_queue_thumbnail_height">35dp</dimen>
120120

121121
<!-- Kiosk view Dimensions-->
122122
<dimen name="kiosk_title_text_size">30sp</dimen>

0 commit comments

Comments
 (0)