mirror of
https://github.com/MaintainTeam/LastPipeBender.git
synced 2025-03-04 15:28:21 +03:00
-Added seek time display to player binding activity. -Added button effect for all image buttons on player binding activity. -Added click to scroll to current selected on metadata layout for player binding activity. -Refactored player utilities and preference getters into PlayerHelper. -Refactored player caching into CacheFactory. -Refactored player audio related methods into AudioReactor. -Refactored player locks into LockManager. -Refactored player loading and buffering mechanics into LoadController. -Fixed outdated names for background player.
278 lines
No EOL
11 KiB
XML
278 lines
No EOL
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
android:id="@+id/main_content"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:fitsSystemWindows="true"
|
|
tools:context="org.schabi.newpipe.player.BackgroundPlayerActivity">
|
|
|
|
<android.support.design.widget.AppBarLayout
|
|
android:id="@+id/appbar"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:paddingTop="@dimen/appbar_padding_top"
|
|
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
|
|
app:popupTheme="@style/ThemeOverlay.AppCompat.ActionBar">
|
|
|
|
<android.support.v7.widget.Toolbar
|
|
android:id="@+id/toolbar"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="?attr/actionBarSize"
|
|
android:layout_weight="1"
|
|
android:background="?attr/colorPrimary"
|
|
app:layout_scrollFlags="scroll|enterAlways"
|
|
app:title="@string/app_name"/>
|
|
|
|
</android.support.design.widget.AppBarLayout>
|
|
|
|
<android.support.v7.widget.RecyclerView
|
|
android:id="@+id/play_queue"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:layout_below="@id/appbar"
|
|
android:layout_above="@id/center"
|
|
android:scrollbars="vertical"
|
|
app:layoutManager="LinearLayoutManager"
|
|
tools:listitem="@layout/play_queue_item"/>
|
|
|
|
<RelativeLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:id="@+id/center"
|
|
android:layout_above="@+id/progress_bar">
|
|
|
|
<LinearLayout
|
|
android:id="@+id/metadata"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="8dp"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:background="?attr/selectableItemBackground"
|
|
tools:ignore="RtlHardcoded,RtlSymmetry">
|
|
|
|
<TextView
|
|
android:id="@+id/song_name"
|
|
style="@android:style/TextAppearance.StatusBar.EventContent.Title"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:ellipsize="end"
|
|
android:maxLines="3"
|
|
android:textSize="14sp"
|
|
android:textColor="?attr/colorAccent"
|
|
tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec aliquam augue, eget cursus est. Ut id tristique enim, ut scelerisque tellus. Sed ultricies ipsum non mauris ultricies, commodo malesuada velit porta."
|
|
/>
|
|
|
|
<TextView
|
|
android:id="@+id/artist_name"
|
|
style="@android:style/TextAppearance.StatusBar.EventContent"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:ellipsize="end"
|
|
android:maxLines="1"
|
|
android:textSize="12sp"
|
|
tools:text="Duis posuere arcu condimentum lobortis mattis."/>
|
|
</LinearLayout>
|
|
|
|
<TextView
|
|
android:id="@+id/seek_display"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_centerInParent="true"
|
|
android:background="#c0000000"
|
|
android:paddingBottom="5dp"
|
|
android:paddingLeft="30dp"
|
|
android:paddingRight="30dp"
|
|
android:paddingTop="5dp"
|
|
android:textColor="@android:color/white"
|
|
android:textSize="22sp"
|
|
android:textStyle="bold"
|
|
android:visibility="gone"
|
|
tools:ignore="RtlHardcoded"
|
|
tools:text="1:06:29"
|
|
tools:visibility="visible"/>
|
|
</RelativeLayout>
|
|
|
|
<LinearLayout
|
|
android:id="@+id/progress_bar"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_above="@+id/playback_controls"
|
|
android:gravity="center"
|
|
android:orientation="horizontal"
|
|
android:paddingLeft="16dp"
|
|
android:paddingRight="16dp">
|
|
|
|
<TextView
|
|
android:id="@+id/current_time"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="match_parent"
|
|
android:gravity="center"
|
|
android:minHeight="40dp"
|
|
android:text="-:--:--"
|
|
android:textColor="?attr/colorAccent"
|
|
tools:ignore="HardcodedText"
|
|
tools:text="1:06:29"/>
|
|
|
|
|
|
<android.support.v7.widget.AppCompatSeekBar
|
|
android:id="@+id/seek_bar"
|
|
style="@style/Widget.AppCompat.SeekBar"
|
|
android:layout_width="0dp"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="1"
|
|
android:paddingBottom="4dp"
|
|
android:paddingTop="8dp"
|
|
tools:progress="25"
|
|
tools:secondaryProgress="50"/>
|
|
|
|
<TextView
|
|
android:id="@+id/end_time"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="match_parent"
|
|
android:gravity="center"
|
|
android:text="-:--:--"
|
|
android:textColor="?attr/colorAccent"
|
|
tools:ignore="HardcodedText"
|
|
tools:text="1:23:49"/>
|
|
</LinearLayout>
|
|
|
|
<RelativeLayout
|
|
android:id="@+id/playback_controls"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="60dp"
|
|
android:paddingTop="10dp"
|
|
android:layout_alignParentBottom="true"
|
|
android:orientation="horizontal"
|
|
android:background="@drawable/player_controls_bg"
|
|
tools:ignore="RtlHardcoded">
|
|
|
|
<TextView
|
|
android:id="@+id/control_playback_speed"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="35dp"
|
|
android:layout_marginLeft="2dp"
|
|
android:layout_marginRight="2dp"
|
|
android:layout_centerVertical="true"
|
|
android:layout_toLeftOf="@+id/control_repeat"
|
|
android:gravity="center"
|
|
android:minWidth="50dp"
|
|
android:text="1x"
|
|
android:textColor="@android:color/white"
|
|
android:textStyle="bold"
|
|
android:background="?attr/selectableItemBackground"
|
|
tools:ignore="HardcodedText,RtlHardcoded"/>
|
|
|
|
<ImageButton
|
|
android:id="@+id/control_repeat"
|
|
android:layout_width="25dp"
|
|
android:layout_height="25dp"
|
|
android:layout_toLeftOf="@+id/control_backward"
|
|
android:layout_centerVertical="true"
|
|
android:layout_marginLeft="5dp"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:scaleType="fitXY"
|
|
android:src="@drawable/ic_repeat_white"
|
|
tools:ignore="ContentDescription"/>
|
|
|
|
<ImageButton
|
|
android:id="@+id/control_backward"
|
|
android:layout_width="40dp"
|
|
android:layout_height="match_parent"
|
|
android:layout_centerVertical="true"
|
|
android:layout_marginLeft="5dp"
|
|
android:layout_toLeftOf="@+id/control_play_pause"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:padding="2dp"
|
|
android:scaleType="fitCenter"
|
|
android:src="@drawable/exo_controls_previous"
|
|
tools:ignore="ContentDescription"/>
|
|
|
|
<ImageButton
|
|
android:id="@+id/control_play_pause"
|
|
android:layout_width="50dp"
|
|
android:layout_height="match_parent"
|
|
android:layout_centerVertical="true"
|
|
android:layout_centerHorizontal="true"
|
|
android:layout_centerInParent="true"
|
|
android:layout_marginLeft="5dp"
|
|
android:layout_marginRight="5dp"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:padding="2dp"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:scaleType="fitCenter"
|
|
android:src="@drawable/ic_pause_white"
|
|
tools:ignore="ContentDescription"/>
|
|
|
|
<ProgressBar
|
|
android:id="@+id/control_progress_bar"
|
|
style="?android:attr/progressBarStyleLargeInverse"
|
|
android:layout_width="50dp"
|
|
android:layout_height="match_parent"
|
|
android:layout_centerVertical="true"
|
|
android:layout_centerHorizontal="true"
|
|
android:layout_centerInParent="true"
|
|
android:layout_marginLeft="5dp"
|
|
android:layout_marginRight="5dp"
|
|
android:background="#00000000"
|
|
android:padding="2dp"
|
|
android:clickable="false"
|
|
android:scaleType="fitCenter"
|
|
android:indeterminate="true"
|
|
android:visibility="invisible"/>
|
|
|
|
<ImageButton
|
|
android:id="@+id/control_forward"
|
|
android:layout_width="40dp"
|
|
android:layout_height="match_parent"
|
|
android:layout_centerVertical="true"
|
|
android:layout_marginRight="5dp"
|
|
android:layout_toRightOf="@+id/control_play_pause"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:padding="2dp"
|
|
android:scaleType="fitCenter"
|
|
android:src="@drawable/exo_controls_next"
|
|
tools:ignore="ContentDescription"/>
|
|
|
|
<ImageButton
|
|
android:id="@+id/control_shuffle"
|
|
android:layout_width="25dp"
|
|
android:layout_height="25dp"
|
|
android:layout_toRightOf="@+id/control_forward"
|
|
android:layout_centerVertical="true"
|
|
android:layout_marginRight="5dp"
|
|
android:background="?attr/selectableItemBackgroundBorderless"
|
|
android:clickable="true"
|
|
android:focusable="true"
|
|
android:scaleType="fitXY"
|
|
android:src="@drawable/ic_shuffle_white_24dp"
|
|
tools:ignore="ContentDescription"/>
|
|
|
|
<TextView
|
|
android:id="@+id/control_playback_pitch"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="35dp"
|
|
android:layout_marginLeft="2dp"
|
|
android:layout_marginRight="2dp"
|
|
android:layout_centerVertical="true"
|
|
android:layout_toRightOf="@+id/control_shuffle"
|
|
android:gravity="center"
|
|
android:minWidth="50dp"
|
|
android:text="100%"
|
|
android:textColor="@android:color/white"
|
|
android:textStyle="bold"
|
|
android:background="?attr/selectableItemBackground"
|
|
tools:ignore="HardcodedText,RtlHardcoded"/>
|
|
</RelativeLayout>
|
|
|
|
</RelativeLayout> |