0.2.66 - End Credits improvements / Gateway: 0.1.47 - End credits redesign
This commit is contained in:
@@ -11,6 +11,17 @@
|
||||
So the left half of this layout is empty on purpose: it is a hole for the picture that
|
||||
is already there to show through.
|
||||
|
||||
Three things sit on it, and the arrangement is the design: what is *ending* in the top
|
||||
left, how long until it hands over in the top right, and what is *next* in the panel
|
||||
down the right-hand side. The two corners are deliberately opposite each other — they
|
||||
are the two facts a viewer wants at a glance, and putting either inside the panel buries
|
||||
it in prose the eye has already finished reading.
|
||||
|
||||
Nothing here says how fast the picture is running. A chip stating "2× speed" was the
|
||||
only thing on screen that ever mentioned it, and it explained a mechanism rather than
|
||||
answering a question: the countdown opposite already says the thing a viewer actually
|
||||
wants to know, and it stays true whatever speed the stream turned out to sustain.
|
||||
|
||||
There is no scrim and no card behind the picture. It sits on somebody's film, and the
|
||||
only lit surface is the button under focus. -->
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
@@ -21,33 +32,92 @@
|
||||
android:focusable="false"
|
||||
android:visibility="gone">
|
||||
|
||||
<!-- Why the picture is running fast. Without it a viewer who looks up mid-roll has a
|
||||
sped-up image and no stated reason for it, which reads as the stream misbehaving.
|
||||
It sits under the picture's left half rather than in the panel, because it is a
|
||||
label on the video and not part of what is on next.
|
||||
<!-- What is playing, top left, above the shrunken picture.
|
||||
|
||||
The logo rather than the title because it is the show's own treatment and the one
|
||||
thing on this screen that is unmistakably *this* programme — the panel opposite is
|
||||
entirely about the next episode, so without this the screen says what is coming and
|
||||
never what is ending. The start margin is the shrunken picture's own left edge,
|
||||
which CREDITS_VIDEO_SCALE and CREDITS_VIDEO_SHIFT_X put at ~34dp on a 16:9 set, so
|
||||
it reads as belonging to the picture beneath it.
|
||||
|
||||
The text fallback under it is not optional decoration: transparent Emby logos are
|
||||
commonly black, and a black title treatment on this near-black screen is an
|
||||
invisible heading — the same trap `ui/TitleLogo.kt` exists for. Exactly one of the
|
||||
two is ever shown. -->
|
||||
<ImageView
|
||||
android:id="@+id/player_end_credits_logo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="46dp"
|
||||
android:layout_gravity="top|start"
|
||||
android:layout_marginStart="34dp"
|
||||
android:layout_marginTop="42dp"
|
||||
android:adjustViewBounds="true"
|
||||
android:contentDescription="@null"
|
||||
android:maxWidth="260dp"
|
||||
android:scaleType="fitStart"
|
||||
android:visibility="gone"
|
||||
tools:ignore="ContentDescription"
|
||||
tools:visibility="visible" />
|
||||
|
||||
The start margin is aligned with the shrunken picture's own left edge, which
|
||||
CREDITS_VIDEO_SCALE and CREDITS_VIDEO_SHIFT_X put at ~34dp on a 16:9 set, so it reads
|
||||
as a caption on the credits rather than as something floating in the black beside
|
||||
them. The bottom margin is the seek chip's, for the same reason: it is the height
|
||||
this app already puts a chip at. -->
|
||||
<TextView
|
||||
android:id="@+id/player_end_credits_speed"
|
||||
android:id="@+id/player_end_credits_logo_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|start"
|
||||
android:layout_gravity="top|start"
|
||||
android:layout_marginStart="34dp"
|
||||
android:layout_marginBottom="104dp"
|
||||
android:background="@drawable/time_remaining_cue_background"
|
||||
android:letterSpacing="0.06"
|
||||
android:paddingStart="14dp"
|
||||
android:paddingTop="7dp"
|
||||
android:paddingEnd="14dp"
|
||||
android:paddingBottom="7dp"
|
||||
android:textColor="#FF69CD61"
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="42dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:maxWidth="260dp"
|
||||
android:textColor="#E6FFFFFF"
|
||||
android:textSize="21sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="2×" />
|
||||
android:visibility="gone"
|
||||
tools:text="Love Story"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<!-- The countdown, top right, opposite the logo.
|
||||
|
||||
It is the one number on the screen that changes, and it answers the only question a
|
||||
viewer has while the credits run: how long until the next episode takes over. Out
|
||||
here rather than in the panel because the panel is a block of description that the
|
||||
eye reads once, and a figure counting down inside it drags attention back to prose
|
||||
somebody has already finished with.
|
||||
|
||||
Gone rather than blank until the last minute — the pane can open several minutes
|
||||
before the file ends, and a countdown reading "4:12" would be the most prominent
|
||||
thing on screen for most of its life. -->
|
||||
<LinearLayout
|
||||
android:id="@+id/player_end_credits_countdown_group"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="top|end"
|
||||
android:layout_marginTop="42dp"
|
||||
android:layout_marginEnd="72dp"
|
||||
android:gravity="end"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:letterSpacing="0.14"
|
||||
android:text="@string/end_credits_next_in_label"
|
||||
android:textColor="#FF69CD61"
|
||||
android:textSize="11sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/player_end_credits_countdown"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="3dp"
|
||||
android:textColor="#FFFFFFFF"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="0:28" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -111,21 +181,6 @@
|
||||
android:textSize="13sp"
|
||||
tools:text="S02E05 · Northbound" />
|
||||
|
||||
<!-- Gone rather than blank until the last minute. The pane opens minutes before
|
||||
the file ends, and a countdown that sat there reading "starting in 4:12"
|
||||
would be the most prominent thing on it for most of its life. -->
|
||||
<TextView
|
||||
android:id="@+id/player_end_credits_countdown"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="14dp"
|
||||
android:textColor="#FF69CD61"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone"
|
||||
tools:text="Starting in 28s"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -91,7 +91,10 @@
|
||||
credits rather than as dismissing a panel: it is the only thing this button does,
|
||||
and somebody pressing it is asking to watch them. -->
|
||||
<string name="end_credits_watch">Watch credits</string>
|
||||
<string name="end_credits_speed">%1$s speed</string>
|
||||
<!-- The eyebrow over the credits countdown. The figure below it is a clock value rather
|
||||
than a count of seconds, because the pane can open with minutes still to run and
|
||||
"in 128" is not a time anybody reads. -->
|
||||
<string name="end_credits_next_in_label">NEXT EPISODE STARTING IN</string>
|
||||
<string name="next_up_starting_now">Starting now…</string>
|
||||
<string name="app_name">Memby</string>
|
||||
<string name="app_updated_to_version">Memby has been updated to version %1$s.</string>
|
||||
|
||||
Reference in New Issue
Block a user