Fix overlapping fonts and crash on tapping anywhere on video after long-pressing 'Popup' button (#5813)
* Overlapping fonts #5096 issue : #5096 * Overlapping fonts #5096 issue : #5096 changed : - If additional textView is overlapped, only title view shows. * Overlapping fonts #5096 issue : #5096 changed : - Remove treeObserve and hiding logic. - RelativeLayout -> ConstraintLayout. - layout size fixed -> wrap_content. - if text size is bigger, layout height bigger too. * Overlapping fonts #5096 issue : #5096 changed : - remove unusable variable * Crash on tapping anywhere on video after long-pressing 'Popup' button #5804 issue : #5804 changed : - checked null - fixed NullPointerException.
This commit is contained in:
parent
8f0323fb8d
commit
73cfa5499d
|
@ -4,8 +4,6 @@ import android.text.TextUtils;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.preference.PreferenceManager;
|
|
||||||
|
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.extractor.InfoItem;
|
import org.schabi.newpipe.extractor.InfoItem;
|
||||||
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
|
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
|
||||||
|
@ -14,6 +12,8 @@ import org.schabi.newpipe.info_list.InfoItemBuilder;
|
||||||
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
||||||
import org.schabi.newpipe.util.Localization;
|
import org.schabi.newpipe.util.Localization;
|
||||||
|
|
||||||
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
import static org.schabi.newpipe.MainActivity.DEBUG;
|
import static org.schabi.newpipe.MainActivity.DEBUG;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -229,8 +229,10 @@ abstract class BasePlayerGestureListener(
|
||||||
// because the soft input is visible (the draggable area is currently resized).
|
// because the soft input is visible (the draggable area is currently resized).
|
||||||
player.updateScreenSize()
|
player.updateScreenSize()
|
||||||
player.checkPopupPositionBounds()
|
player.checkPopupPositionBounds()
|
||||||
initialPopupX = player.popupLayoutParams!!.x
|
player.popupLayoutParams?.let {
|
||||||
initialPopupY = player.popupLayoutParams!!.y
|
initialPopupX = it.x
|
||||||
|
initialPopupY = it.y
|
||||||
|
}
|
||||||
return super.onDown(e)
|
return super.onDown(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -466,7 +468,7 @@ abstract class BasePlayerGestureListener(
|
||||||
// ///////////////////////////////////////////////////////////////////
|
// ///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
private fun getDisplayPortion(e: MotionEvent): DisplayPortion {
|
private fun getDisplayPortion(e: MotionEvent): DisplayPortion {
|
||||||
return if (player.playerType == MainPlayer.PlayerType.POPUP) {
|
return if (player.playerType == MainPlayer.PlayerType.POPUP && player.popupLayoutParams != null) {
|
||||||
when {
|
when {
|
||||||
e.x < player.popupLayoutParams!!.width / 3.0 -> DisplayPortion.LEFT
|
e.x < player.popupLayoutParams!!.width / 3.0 -> DisplayPortion.LEFT
|
||||||
e.x > player.popupLayoutParams!!.width * 2.0 / 3.0 -> DisplayPortion.RIGHT
|
e.x > player.popupLayoutParams!!.width * 2.0 / 3.0 -> DisplayPortion.RIGHT
|
||||||
|
|
|
@ -1,31 +1,19 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<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"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/itemRoot"
|
android:id="@+id/itemRoot"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/video_item_search_height"
|
android:layout_height="wrap_content"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:padding="@dimen/video_item_search_padding">
|
android:padding="@dimen/video_item_search_padding">
|
||||||
|
|
||||||
<de.hdodenhof.circleimageview.CircleImageView
|
|
||||||
android:id="@+id/itemThumbnailView"
|
|
||||||
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
|
|
||||||
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
|
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:layout_alignParentLeft="true"
|
|
||||||
android:layout_alignParentTop="true"
|
|
||||||
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
|
|
||||||
android:contentDescription="@string/list_thumbnail_view_description"
|
|
||||||
android:src="@drawable/buddy"
|
|
||||||
tools:ignore="RtlHardcoded" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/itemTitleView"
|
android:id="@+id/itemTitleView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentTop="true"
|
|
||||||
android:layout_marginBottom="@dimen/video_item_search_image_right_margin"
|
android:layout_marginBottom="@dimen/video_item_search_image_right_margin"
|
||||||
android:layout_toEndOf="@+id/itemThumbnailView"
|
android:layout_toEndOf="@+id/itemThumbnailView"
|
||||||
android:layout_toRightOf="@+id/itemThumbnailView"
|
android:layout_toRightOf="@+id/itemThumbnailView"
|
||||||
|
@ -33,20 +21,25 @@
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||||
android:textSize="@dimen/video_item_search_title_text_size"
|
android:textSize="@dimen/video_item_search_title_text_size"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/itemChannelDescriptionView"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/itemThumbnailView"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:text="Channel Title, Lorem ipsum" />
|
tools:text="Channel Title, Lorem ipsum" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/itemChannelDescriptionView"
|
android:id="@+id/itemChannelDescriptionView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_above="@+id/itemAdditionalDetails"
|
|
||||||
android:layout_marginBottom="@dimen/channel_item_description_to_details_margin"
|
android:layout_marginBottom="@dimen/channel_item_description_to_details_margin"
|
||||||
android:layout_toEndOf="@+id/itemThumbnailView"
|
|
||||||
android:layout_toRightOf="@+id/itemThumbnailView"
|
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:lines="2"
|
android:lines="2"
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
android:textSize="@dimen/video_item_search_uploader_text_size"
|
android:textSize="@dimen/video_item_search_uploader_text_size"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/itemAdditionalDetails"
|
||||||
|
app:layout_constraintLeft_toLeftOf="@+id/itemTitleView"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/itemTitleView"
|
||||||
tools:text="Channel description, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blandit" />
|
tools:text="Channel description, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blandit" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
@ -59,6 +52,23 @@
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
android:textSize="@dimen/video_item_search_upload_date_text_size"
|
android:textSize="@dimen/video_item_search_upload_date_text_size"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintLeft_toLeftOf="@+id/itemTitleView"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/itemChannelDescriptionView"
|
||||||
tools:text="10M subscribers • 1000 videos" />
|
tools:text="10M subscribers • 1000 videos" />
|
||||||
|
|
||||||
</RelativeLayout>
|
<de.hdodenhof.circleimageview.CircleImageView
|
||||||
|
android:id="@+id/itemThumbnailView"
|
||||||
|
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
|
||||||
|
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
|
||||||
|
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
|
||||||
|
android:contentDescription="@string/list_thumbnail_view_description"
|
||||||
|
android:src="@drawable/buddy"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/itemTitleView"
|
||||||
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:ignore="RtlHardcoded" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<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"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/itemRoot"
|
android:id="@+id/itemRoot"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/video_item_search_height"
|
android:layout_height="wrap_content"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
|
@ -13,21 +14,21 @@
|
||||||
android:id="@+id/itemThumbnailView"
|
android:id="@+id/itemThumbnailView"
|
||||||
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
|
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
|
||||||
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
|
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:layout_alignParentLeft="true"
|
|
||||||
android:layout_alignParentTop="true"
|
|
||||||
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
|
android:layout_marginRight="@dimen/video_item_search_image_right_margin"
|
||||||
android:contentDescription="@string/list_thumbnail_view_description"
|
android:contentDescription="@string/list_thumbnail_view_description"
|
||||||
android:scaleType="centerCrop"
|
android:scaleType="centerCrop"
|
||||||
android:src="@drawable/dummy_thumbnail"
|
android:src="@drawable/dummy_thumbnail"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/itemVideoTitleView"
|
||||||
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
tools:ignore="RtlHardcoded" />
|
tools:ignore="RtlHardcoded" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/itemDurationView"
|
android:id="@+id/itemDurationView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignRight="@id/itemThumbnailView"
|
|
||||||
android:layout_alignBottom="@id/itemThumbnailView"
|
|
||||||
android:layout_marginRight="@dimen/video_item_search_duration_margin"
|
android:layout_marginRight="@dimen/video_item_search_duration_margin"
|
||||||
android:layout_marginBottom="@dimen/video_item_search_duration_margin"
|
android:layout_marginBottom="@dimen/video_item_search_duration_margin"
|
||||||
android:background="@color/duration_background_color"
|
android:background="@color/duration_background_color"
|
||||||
|
@ -39,56 +40,62 @@
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
android:textColor="@color/duration_text_color"
|
android:textColor="@color/duration_text_color"
|
||||||
android:textSize="@dimen/video_item_search_duration_text_size"
|
android:textSize="@dimen/video_item_search_duration_text_size"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@id/itemThumbnailView"
|
||||||
|
app:layout_constraintRight_toRightOf="@id/itemThumbnailView"
|
||||||
tools:ignore="RtlHardcoded"
|
tools:ignore="RtlHardcoded"
|
||||||
tools:text="1:09:10" />
|
tools:text="1:09:10" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/itemVideoTitleView"
|
android:id="@+id/itemVideoTitleView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentTop="true"
|
|
||||||
android:layout_toEndOf="@+id/itemThumbnailView"
|
|
||||||
android:layout_toRightOf="@+id/itemThumbnailView"
|
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:maxLines="2"
|
android:maxLines="2"
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||||
android:textSize="@dimen/video_item_search_title_text_size"
|
android:textSize="@dimen/video_item_search_title_text_size"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/itemThumbnailView"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsum" />
|
tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsumLorem ipsum" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/itemUploaderView"
|
android:id="@+id/itemUploaderView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/itemVideoTitleView"
|
|
||||||
android:layout_toEndOf="@+id/itemThumbnailView"
|
|
||||||
android:layout_toRightOf="@+id/itemThumbnailView"
|
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
android:textSize="@dimen/video_item_search_uploader_text_size"
|
android:textSize="@dimen/video_item_search_uploader_text_size"
|
||||||
|
app:layout_constraintLeft_toLeftOf="@+id/itemVideoTitleView"
|
||||||
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/itemVideoTitleView"
|
||||||
tools:text="Uploader" />
|
tools:text="Uploader" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/itemAdditionalDetails"
|
android:id="@+id/itemAdditionalDetails"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentBottom="true"
|
|
||||||
android:layout_toEndOf="@+id/itemThumbnailView"
|
android:layout_toEndOf="@+id/itemThumbnailView"
|
||||||
android:layout_toRightOf="@+id/itemThumbnailView"
|
android:layout_toRightOf="@+id/itemThumbnailView"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:lines="1"
|
android:lines="1"
|
||||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||||
android:textSize="@dimen/video_item_search_upload_date_text_size"
|
android:textSize="@dimen/video_item_search_upload_date_text_size"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintLeft_toLeftOf="@+id/itemVideoTitleView"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/itemUploaderView"
|
||||||
tools:text="2 years ago • 10M views" />
|
tools:text="2 years ago • 10M views" />
|
||||||
|
|
||||||
<org.schabi.newpipe.views.AnimatedProgressBar
|
<org.schabi.newpipe.views.AnimatedProgressBar
|
||||||
android:id="@+id/itemProgressView"
|
android:id="@+id/itemProgressView"
|
||||||
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="4dp"
|
android:layout_height="4dp"
|
||||||
android:layout_below="@id/itemThumbnailView"
|
android:layout_below="@id/itemThumbnailView"
|
||||||
android:layout_alignStart="@id/itemThumbnailView"
|
|
||||||
android:layout_alignEnd="@id/itemThumbnailView"
|
|
||||||
android:layout_marginTop="-2dp"
|
android:layout_marginTop="-2dp"
|
||||||
android:progressDrawable="?progress_horizontal_drawable" />
|
android:progressDrawable="?progress_horizontal_drawable"
|
||||||
|
app:layout_constraintEnd_toEndOf="@+id/itemThumbnailView"
|
||||||
|
app:layout_constraintStart_toStartOf="@+id/itemThumbnailView"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/itemThumbnailView" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
Loading…
Reference in New Issue