Add a secondary control panel to video detail fragment
It is shown when the user expands the description It contains share, open in browser and play in kodi
This commit is contained in:
parent
6277639ded
commit
78a9811fe3
4 changed files with 210 additions and 50 deletions
|
@ -11,6 +11,7 @@ import android.content.pm.ActivityInfo;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
@ -90,6 +91,7 @@ import org.schabi.newpipe.util.Constants;
|
||||||
import org.schabi.newpipe.util.DeviceUtils;
|
import org.schabi.newpipe.util.DeviceUtils;
|
||||||
import org.schabi.newpipe.util.ExtractorHelper;
|
import org.schabi.newpipe.util.ExtractorHelper;
|
||||||
import org.schabi.newpipe.util.ImageDisplayConstants;
|
import org.schabi.newpipe.util.ImageDisplayConstants;
|
||||||
|
import org.schabi.newpipe.util.KoreUtil;
|
||||||
import org.schabi.newpipe.util.ListHelper;
|
import org.schabi.newpipe.util.ListHelper;
|
||||||
import org.schabi.newpipe.util.Localization;
|
import org.schabi.newpipe.util.Localization;
|
||||||
import org.schabi.newpipe.util.NavigationHelper;
|
import org.schabi.newpipe.util.NavigationHelper;
|
||||||
|
@ -193,6 +195,7 @@ public final class VideoDetailFragment
|
||||||
private TabAdapter pageAdapter;
|
private TabAdapter pageAdapter;
|
||||||
|
|
||||||
private ContentObserver settingsContentObserver;
|
private ContentObserver settingsContentObserver;
|
||||||
|
@Nullable
|
||||||
private MainPlayer playerService;
|
private MainPlayer playerService;
|
||||||
private Player player;
|
private Player player;
|
||||||
|
|
||||||
|
@ -452,6 +455,30 @@ public final class VideoDetailFragment
|
||||||
this.openDownloadDialog();
|
this.openDownloadDialog();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case R.id.detail_controls_share:
|
||||||
|
if (currentInfo != null) {
|
||||||
|
ShareUtils.shareText(requireContext(),
|
||||||
|
currentInfo.getName(), currentInfo.getUrl());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case R.id.detail_controls_open_in_browser:
|
||||||
|
if (currentInfo != null) {
|
||||||
|
ShareUtils.openUrlInBrowser(requireContext(), currentInfo.getUrl());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case R.id.detail_controls_play_with_kodi:
|
||||||
|
if (currentInfo != null) {
|
||||||
|
try {
|
||||||
|
NavigationHelper.playWithKore(
|
||||||
|
requireContext(), Uri.parse(currentInfo.getUrl()));
|
||||||
|
} catch (final Exception e) {
|
||||||
|
if (DEBUG) {
|
||||||
|
Log.i(TAG, "Failed to start kore", e);
|
||||||
|
}
|
||||||
|
KoreUtil.showInstallKoreDialog(requireContext());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case R.id.detail_uploader_root_layout:
|
case R.id.detail_uploader_root_layout:
|
||||||
if (isEmpty(currentInfo.getSubChannelUrl())) {
|
if (isEmpty(currentInfo.getSubChannelUrl())) {
|
||||||
if (!isEmpty(currentInfo.getUploaderUrl())) {
|
if (!isEmpty(currentInfo.getUploaderUrl())) {
|
||||||
|
@ -549,6 +576,7 @@ public final class VideoDetailFragment
|
||||||
binding.detailDescriptionView.setFocusable(false);
|
binding.detailDescriptionView.setFocusable(false);
|
||||||
binding.detailToggleDescriptionView.setImageResource(
|
binding.detailToggleDescriptionView.setImageResource(
|
||||||
ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_expand_more));
|
ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_expand_more));
|
||||||
|
binding.detailSecondaryControlPanel.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
binding.detailVideoTitleView.setMaxLines(10);
|
binding.detailVideoTitleView.setMaxLines(10);
|
||||||
binding.detailDescriptionRootLayout.setVisibility(View.VISIBLE);
|
binding.detailDescriptionRootLayout.setVisibility(View.VISIBLE);
|
||||||
|
@ -556,6 +584,7 @@ public final class VideoDetailFragment
|
||||||
binding.detailDescriptionView.setMovementMethod(new LargeTextMovementMethod());
|
binding.detailDescriptionView.setMovementMethod(new LargeTextMovementMethod());
|
||||||
binding.detailToggleDescriptionView.setImageResource(
|
binding.detailToggleDescriptionView.setImageResource(
|
||||||
ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_expand_less));
|
ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_expand_less));
|
||||||
|
binding.detailSecondaryControlPanel.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -582,6 +611,9 @@ public final class VideoDetailFragment
|
||||||
binding.detailControlsBackground.setBackgroundColor(transparent);
|
binding.detailControlsBackground.setBackgroundColor(transparent);
|
||||||
binding.detailControlsPopup.setBackgroundColor(transparent);
|
binding.detailControlsPopup.setBackgroundColor(transparent);
|
||||||
binding.detailControlsDownload.setBackgroundColor(transparent);
|
binding.detailControlsDownload.setBackgroundColor(transparent);
|
||||||
|
binding.detailControlsShare.setBackgroundColor(transparent);
|
||||||
|
binding.detailControlsOpenInBrowser.setBackgroundColor(transparent);
|
||||||
|
binding.detailControlsPlayWithKodi.setBackgroundColor(transparent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -589,21 +621,22 @@ public final class VideoDetailFragment
|
||||||
protected void initListeners() {
|
protected void initListeners() {
|
||||||
super.initListeners();
|
super.initListeners();
|
||||||
|
|
||||||
|
binding.detailTitleRootLayout.setOnClickListener(this);
|
||||||
binding.detailTitleRootLayout.setOnLongClickListener(this);
|
binding.detailTitleRootLayout.setOnLongClickListener(this);
|
||||||
binding.detailUploaderRootLayout.setOnClickListener(this);
|
binding.detailUploaderRootLayout.setOnClickListener(this);
|
||||||
binding.detailUploaderRootLayout.setOnLongClickListener(this);
|
binding.detailUploaderRootLayout.setOnLongClickListener(this);
|
||||||
binding.detailTitleRootLayout.setOnClickListener(this);
|
|
||||||
binding.detailThumbnailRootLayout.setOnClickListener(this);
|
binding.detailThumbnailRootLayout.setOnClickListener(this);
|
||||||
binding.detailControlsBackground.setOnClickListener(this);
|
binding.detailControlsBackground.setOnClickListener(this);
|
||||||
|
binding.detailControlsBackground.setOnLongClickListener(this);
|
||||||
binding.detailControlsPopup.setOnClickListener(this);
|
binding.detailControlsPopup.setOnClickListener(this);
|
||||||
|
binding.detailControlsPopup.setOnLongClickListener(this);
|
||||||
binding.detailControlsPlaylistAppend.setOnClickListener(this);
|
binding.detailControlsPlaylistAppend.setOnClickListener(this);
|
||||||
binding.detailControlsDownload.setOnClickListener(this);
|
binding.detailControlsDownload.setOnClickListener(this);
|
||||||
binding.detailControlsDownload.setOnLongClickListener(this);
|
binding.detailControlsDownload.setOnLongClickListener(this);
|
||||||
|
binding.detailControlsShare.setOnClickListener(this);
|
||||||
binding.detailControlsBackground.setLongClickable(true);
|
binding.detailControlsOpenInBrowser.setOnClickListener(this);
|
||||||
binding.detailControlsPopup.setLongClickable(true);
|
binding.detailControlsPlayWithKodi.setOnClickListener(this);
|
||||||
binding.detailControlsBackground.setOnLongClickListener(this);
|
showHideKodiButton();
|
||||||
binding.detailControlsPopup.setOnLongClickListener(this);
|
|
||||||
|
|
||||||
binding.overlayThumbnail.setOnClickListener(this);
|
binding.overlayThumbnail.setOnClickListener(this);
|
||||||
binding.overlayThumbnail.setOnLongClickListener(this);
|
binding.overlayThumbnail.setOnLongClickListener(this);
|
||||||
|
@ -672,6 +705,12 @@ public final class VideoDetailFragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showHideKodiButton() {
|
||||||
|
// show kodi button if it supports the current service and it is enabled in settings
|
||||||
|
binding.detailControlsPlayWithKodi.setVisibility(KoreUtil.shouldShowPlayWithKodi(
|
||||||
|
requireContext(), serviceId) ? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////////////
|
||||||
// OwnStack
|
// OwnStack
|
||||||
//////////////////////////////////////////////////////////////////////////*/
|
//////////////////////////////////////////////////////////////////////////*/
|
||||||
|
@ -1312,6 +1351,7 @@ public final class VideoDetailFragment
|
||||||
binding.detailDescriptionRootLayout.setVisibility(View.GONE);
|
binding.detailDescriptionRootLayout.setVisibility(View.GONE);
|
||||||
binding.detailToggleDescriptionView.setVisibility(View.GONE);
|
binding.detailToggleDescriptionView.setVisibility(View.GONE);
|
||||||
binding.detailTitleRootLayout.setClickable(false);
|
binding.detailTitleRootLayout.setClickable(false);
|
||||||
|
binding.detailSecondaryControlPanel.setVisibility(View.GONE);
|
||||||
|
|
||||||
if (binding.relatedStreamsLayout != null) {
|
if (binding.relatedStreamsLayout != null) {
|
||||||
if (showRelatedStreams) {
|
if (showRelatedStreams) {
|
||||||
|
@ -1431,6 +1471,7 @@ public final class VideoDetailFragment
|
||||||
ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_expand_more));
|
ThemeHelper.resolveResourceIdFromAttr(requireContext(), R.attr.ic_expand_more));
|
||||||
binding.detailToggleDescriptionView.setVisibility(View.VISIBLE);
|
binding.detailToggleDescriptionView.setVisibility(View.VISIBLE);
|
||||||
binding.detailDescriptionRootLayout.setVisibility(View.GONE);
|
binding.detailDescriptionRootLayout.setVisibility(View.GONE);
|
||||||
|
binding.detailSecondaryControlPanel.setVisibility(View.GONE);
|
||||||
|
|
||||||
if (info.getUploadDate() != null) {
|
if (info.getUploadDate() != null) {
|
||||||
binding.detailUploadDateView.setText(Localization
|
binding.detailUploadDateView.setText(Localization
|
||||||
|
|
|
@ -426,6 +426,7 @@
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<!-- CONTROLS -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/detail_control_panel"
|
android:id="@+id/detail_control_panel"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -433,13 +434,12 @@
|
||||||
android:descendantFocusability="afterDescendants"
|
android:descendantFocusability="afterDescendants"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:padding="6dp">
|
android:padding="@dimen/detail_control_padding">
|
||||||
|
|
||||||
<!-- CONTROLS -->
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_controls_playlist_append"
|
android:id="@+id/detail_controls_playlist_append"
|
||||||
android:layout_width="80dp"
|
android:layout_width="@dimen/detail_control_width"
|
||||||
android:layout_height="55dp"
|
android:layout_height="@dimen/detail_control_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
@ -447,16 +447,15 @@
|
||||||
android:contentDescription="@string/append_playlist"
|
android:contentDescription="@string/append_playlist"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingTop="6dp"
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:text="@string/controls_add_to_playlist_title"
|
android:text="@string/controls_add_to_playlist_title"
|
||||||
android:textSize="12sp"
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
app:drawableTopCompat="?attr/ic_playlist_add" />
|
app:drawableTopCompat="?attr/ic_playlist_add" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_controls_background"
|
android:id="@+id/detail_controls_background"
|
||||||
android:layout_width="80dp"
|
android:layout_width="@dimen/detail_control_width"
|
||||||
android:layout_height="55dp"
|
android:layout_height="@dimen/detail_control_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
@ -464,16 +463,15 @@
|
||||||
android:contentDescription="@string/play_audio"
|
android:contentDescription="@string/play_audio"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingTop="6dp"
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:text="@string/controls_background_title"
|
android:text="@string/controls_background_title"
|
||||||
android:textSize="12sp"
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
app:drawableTopCompat="?attr/ic_headset" />
|
app:drawableTopCompat="?attr/ic_headset" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_controls_popup"
|
android:id="@+id/detail_controls_popup"
|
||||||
android:layout_width="80dp"
|
android:layout_width="@dimen/detail_control_width"
|
||||||
android:layout_height="55dp"
|
android:layout_height="@dimen/detail_control_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
@ -481,16 +479,15 @@
|
||||||
android:contentDescription="@string/open_in_popup_mode"
|
android:contentDescription="@string/open_in_popup_mode"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingTop="6dp"
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:text="@string/controls_popup_title"
|
android:text="@string/controls_popup_title"
|
||||||
android:textSize="12sp"
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
app:drawableTopCompat="?attr/ic_popup" />
|
app:drawableTopCompat="?attr/ic_popup" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_controls_download"
|
android:id="@+id/detail_controls_download"
|
||||||
android:layout_width="80dp"
|
android:layout_width="@dimen/detail_control_width"
|
||||||
android:layout_height="55dp"
|
android:layout_height="@dimen/detail_control_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
@ -498,14 +495,75 @@
|
||||||
android:contentDescription="@string/controls_download_desc"
|
android:contentDescription="@string/controls_download_desc"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingTop="6dp"
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:text="@string/download"
|
android:text="@string/download"
|
||||||
android:textSize="12sp"
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
app:drawableTopCompat="?attr/ic_file_download" />
|
app:drawableTopCompat="?attr/ic_file_download" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- SECONDARY CONTROLS -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/detail_secondary_control_panel"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:descendantFocusability="afterDescendants"
|
||||||
|
android:focusable="true"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="@dimen/detail_control_padding"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/detail_controls_share"
|
||||||
|
android:layout_width="@dimen/detail_control_width"
|
||||||
|
android:layout_height="@dimen/detail_control_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/share"
|
||||||
|
android:focusable="true"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
|
android:text="@string/share"
|
||||||
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
|
app:drawableTopCompat="?attr/ic_share" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/detail_controls_open_in_browser"
|
||||||
|
android:layout_width="@dimen/detail_control_width"
|
||||||
|
android:layout_height="@dimen/detail_control_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/open_in_browser"
|
||||||
|
android:focusable="true"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
|
android:text="@string/open_in_browser"
|
||||||
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
|
app:drawableTopCompat="?attr/ic_language" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/detail_controls_play_with_kodi"
|
||||||
|
android:layout_width="@dimen/detail_control_width"
|
||||||
|
android:layout_height="@dimen/detail_control_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/play_with_kodi_title"
|
||||||
|
android:focusable="true"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
|
android:text="@string/play_with_kodi_title"
|
||||||
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
|
app:drawableTopCompat="?attr/ic_cast" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/detail_meta_info_separator"
|
android:id="@+id/detail_meta_info_separator"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -413,18 +413,18 @@
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<!-- CONTROLS -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/detail_control_panel"
|
android:id="@+id/detail_control_panel"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:padding="6dp">
|
android:padding="@dimen/detail_control_padding">
|
||||||
|
|
||||||
<!-- CONTROLS -->
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_controls_playlist_append"
|
android:id="@+id/detail_controls_playlist_append"
|
||||||
android:layout_width="80dp"
|
android:layout_width="@dimen/detail_control_width"
|
||||||
android:layout_height="55dp"
|
android:layout_height="@dimen/detail_control_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
@ -432,16 +432,15 @@
|
||||||
android:contentDescription="@string/append_playlist"
|
android:contentDescription="@string/append_playlist"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingTop="6dp"
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:text="@string/controls_add_to_playlist_title"
|
android:text="@string/controls_add_to_playlist_title"
|
||||||
android:textSize="12sp"
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
app:drawableTopCompat="?attr/ic_playlist_add" />
|
app:drawableTopCompat="?attr/ic_playlist_add" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_controls_background"
|
android:id="@+id/detail_controls_background"
|
||||||
android:layout_width="80dp"
|
android:layout_width="@dimen/detail_control_width"
|
||||||
android:layout_height="55dp"
|
android:layout_height="@dimen/detail_control_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
@ -449,16 +448,15 @@
|
||||||
android:contentDescription="@string/play_audio"
|
android:contentDescription="@string/play_audio"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingTop="6dp"
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:text="@string/controls_background_title"
|
android:text="@string/controls_background_title"
|
||||||
android:textSize="12sp"
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
app:drawableTopCompat="?attr/ic_headset" />
|
app:drawableTopCompat="?attr/ic_headset" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_controls_popup"
|
android:id="@+id/detail_controls_popup"
|
||||||
android:layout_width="80dp"
|
android:layout_width="@dimen/detail_control_width"
|
||||||
android:layout_height="55dp"
|
android:layout_height="@dimen/detail_control_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
@ -466,16 +464,15 @@
|
||||||
android:contentDescription="@string/open_in_popup_mode"
|
android:contentDescription="@string/open_in_popup_mode"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingTop="6dp"
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:text="@string/controls_popup_title"
|
android:text="@string/controls_popup_title"
|
||||||
android:textSize="12sp"
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
app:drawableTopCompat="?attr/ic_popup" />
|
app:drawableTopCompat="?attr/ic_popup" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_controls_download"
|
android:id="@+id/detail_controls_download"
|
||||||
android:layout_width="80dp"
|
android:layout_width="@dimen/detail_control_width"
|
||||||
android:layout_height="55dp"
|
android:layout_height="@dimen/detail_control_height"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
@ -483,14 +480,73 @@
|
||||||
android:contentDescription="@string/controls_download_desc"
|
android:contentDescription="@string/controls_download_desc"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingTop="6dp"
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:text="@string/download"
|
android:text="@string/download"
|
||||||
android:textSize="12sp"
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
app:drawableTopCompat="?attr/ic_file_download" />
|
app:drawableTopCompat="?attr/ic_file_download" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- SECONDARY CONTROLS -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/detail_secondary_control_panel"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="@dimen/detail_control_padding"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/detail_controls_share"
|
||||||
|
android:layout_width="@dimen/detail_control_width"
|
||||||
|
android:layout_height="@dimen/detail_control_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/share"
|
||||||
|
android:focusable="true"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
|
android:text="@string/share"
|
||||||
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
|
app:drawableTopCompat="?attr/ic_share" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/detail_controls_open_in_browser"
|
||||||
|
android:layout_width="@dimen/detail_control_width"
|
||||||
|
android:layout_height="@dimen/detail_control_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/open_in_browser"
|
||||||
|
android:focusable="true"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
|
android:text="@string/open_in_browser"
|
||||||
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
|
app:drawableTopCompat="?attr/ic_language" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/detail_controls_play_with_kodi"
|
||||||
|
android:layout_width="@dimen/detail_control_width"
|
||||||
|
android:layout_height="@dimen/detail_control_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/play_with_kodi_title"
|
||||||
|
android:focusable="true"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="@dimen/detail_control_padding"
|
||||||
|
android:text="@string/play_with_kodi_title"
|
||||||
|
android:textSize="@dimen/detail_control_text_size"
|
||||||
|
app:drawableTopCompat="?attr/ic_cast" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:id="@+id/detail_meta_info_separator"
|
android:id="@+id/detail_meta_info_separator"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -84,6 +84,11 @@
|
||||||
<!-- Paddings & Margins -->
|
<!-- Paddings & Margins -->
|
||||||
<dimen name="video_item_detail_like_margin">5dp</dimen>
|
<dimen name="video_item_detail_like_margin">5dp</dimen>
|
||||||
<dimen name="video_item_detail_error_panel_margin">50dp</dimen>
|
<dimen name="video_item_detail_error_panel_margin">50dp</dimen>
|
||||||
|
<!-- Control panel -->
|
||||||
|
<dimen name="detail_control_text_size">12sp</dimen>
|
||||||
|
<dimen name="detail_control_width">80dp</dimen>
|
||||||
|
<dimen name="detail_control_height">55dp</dimen>
|
||||||
|
<dimen name="detail_control_padding">6dp</dimen>
|
||||||
<!-- Default screen margins, per the Android Design guidelines. -->
|
<!-- Default screen margins, per the Android Design guidelines. -->
|
||||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||||
|
|
Loading…
Reference in a new issue