[mobile] update control ui

pull/123/head
FongMi 3 years ago
parent 461e33dc6a
commit a5e4f83af4
  1. 2
      app/src/main/java/com/fongmi/android/tv/Constant.java
  2. 54
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  3. 10
      app/src/mobile/res/drawable/ic_control_next.xml
  4. 10
      app/src/mobile/res/drawable/ic_control_pause.xml
  5. 10
      app/src/mobile/res/drawable/ic_control_play.xml
  6. 10
      app/src/mobile/res/drawable/ic_control_prev.xml
  7. 5
      app/src/mobile/res/layout/view_control_seek.xml
  8. 141
      app/src/mobile/res/layout/view_control_vod.xml
  9. 2
      app/src/mobile/res/layout/view_widget_vod.xml
  10. 11
      app/src/mobile/res/values/styles.xml

@ -4,7 +4,7 @@ public class Constant {
//快進時間單位
public static final int INTERVAL_SEEK = 10 * 1000;
//控件隱藏時間
public static final int INTERVAL_HIDE = 5 * 1000;
public static final int INTERVAL_HIDE = 3 * 1000;
//網路偵測間隔
public static final int INTERVAL_TRAFFIC = 500;
//點播爬蟲時間

@ -450,8 +450,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void checkPlay() {
setR1Callback();
checkPlayImg(!mPlayers.isPlaying());
if (mPlayers.isPlaying()) onPause(false);
else onPlay();
if (mPlayers.isPlaying()) mPlayers.pause();
else mPlayers.play();
}
private void checkNext() {
@ -572,7 +572,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void enterFullscreen() {
mBinding.video.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
mBinding.control.getRoot().setPadding(ResUtil.dp2px(24), ResUtil.dp2px(16), ResUtil.dp2px(24), 0);
getIjk().getSubtitleView().setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
mBinding.control.full.setImageResource(R.drawable.ic_control_full_off);
@ -583,7 +582,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void exitFullscreen() {
mBinding.control.getRoot().setPadding(ResUtil.dp2px(16), ResUtil.dp2px(16), ResUtil.dp2px(16), 0);
getIjk().getSubtitleView().setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
mBinding.control.full.setImageResource(R.drawable.ic_control_full_on);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
@ -617,20 +615,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.widget.error.setVisibility(View.GONE);
}
private void showPosition(int resId) {
showPosition(resId, 0);
}
private void showPosition(int resId, long time) {
mBinding.widget.action.setImageResource(resId);
mBinding.widget.position.setVisibility(View.VISIBLE);
mBinding.widget.time.setText(mPlayers.getPositionTime(time));
}
private void hidePosition() {
mBinding.widget.position.setVisibility(View.GONE);
}
private void showControl() {
mBinding.control.parse.setVisibility(isFullscreen() && isUseParse() ? View.VISIBLE : View.GONE);
mBinding.control.rotate.setVisibility(isFullscreen() && !isLock() ? View.VISIBLE : View.GONE);
@ -711,7 +695,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void checkPlayImg(boolean playing) {
mBinding.control.play.setImageResource(playing ? R.drawable.ic_control_pause : R.drawable.ic_control_play);
mBinding.control.play.setImageResource(playing ? com.google.android.exoplayer2.ui.R.drawable.exo_ic_pause_circle_filled : com.google.android.exoplayer2.ui.R.drawable.exo_ic_play_circle_filled);
}
private void checkLockImg() {
@ -764,6 +748,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mPlayers.reset();
setDefaultTrack();
setTrackVisible(true);
checkPlayImg(mPlayers.isPlaying());
mBinding.control.size.setText(mPlayers.getSizeText());
break;
case Player.STATE_ENDED:
@ -906,16 +891,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
getDetail(vod);
}
private void onPause(boolean visible) {
if (visible) showPosition(R.drawable.ic_control_play);
mPlayers.pause();
}
private void onPlay() {
mPlayers.play();
hidePosition();
}
private boolean isFullscreen() {
return fullscreen;
}
@ -1028,15 +1003,18 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
public void onSeek(int time) {
showPosition(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind, time);
mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind);
mBinding.widget.seek.setVisibility(View.VISIBLE);
mBinding.widget.time.setText(mPlayers.getPositionTime(time));
hideProgress();
}
@Override
public void onSeekEnd(int time) {
mBinding.widget.seek.setVisibility(View.GONE);
mPlayers.seekTo(time);
mPlayers.play();
showProgress();
onPlay();
}
@Override
@ -1047,9 +1025,13 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
public void onDoubleTap() {
if (mPlayers.isPlaying()) onPause(true);
else onPlay();
hideControl();
if (mPlayers.isPlaying()) {
mPlayers.pause();
showControl();
} else {
mPlayers.play();
hideControl();
}
}
@Override
@ -1086,14 +1068,14 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
protected void onStart() {
super.onStart();
mPlayers.play();
setStop(false);
onPlay();
}
@Override
protected void onStop() {
super.onStop();
onPause(false);
mPlayers.pause();
setStop(true);
}

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M6,18l8.5,-6L6,6v12zM16,6v12h2V6h-2z" />
</vector>

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z" />
</vector>

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FFFFFF"
android:pathData="M8,5v14l11,-7z" />
</vector>

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M6,6h2v12L6,18zM9.5,12l8.5,6L18,6z" />
</vector>

@ -22,11 +22,6 @@
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:focusable="true"
android:focusableInTouchMode="true"
android:nextFocusLeft="@+id/timeBar"
android:nextFocusRight="@+id/timeBar"
android:nextFocusDown="@+id/timeBar"
app:buffered_color="@color/blue_200"
app:played_color="@color/blue_500"
app:scrubber_color="@color/blue_500"

@ -3,15 +3,13 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black_20"
android:paddingStart="16dp"
android:paddingTop="16dp"
android:paddingEnd="16dp">
android:background="@color/black_20">
<LinearLayout
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:orientation="horizontal">
<LinearLayout
@ -40,7 +38,7 @@
</LinearLayout>
<ImageView
<ImageButton
android:id="@+id/keep"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -48,7 +46,7 @@
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_control_keep_off" />
<ImageView
<ImageButton
android:id="@+id/share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -56,7 +54,7 @@
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_control_share" />
<ImageView
<ImageButton
android:id="@+id/setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -73,28 +71,25 @@
android:gravity="center"
android:orientation="horizontal">
<ImageView
<ImageButton
android:id="@+id/prev"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_control_prev" />
style="@style/ExoStyledControls.Button.Center.Previous"
android:layout_width="36dp"
android:layout_height="36dp" />
<ImageView
<ImageButton
android:id="@+id/play"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_control_pause" />
style="@style/ExoStyledControls.Button.Center.PlayPause"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" />
<ImageView
<ImageButton
android:id="@+id/next"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_control_next" />
style="@style/ExoStyledControls.Button.Center.Next"
android:layout_width="36dp"
android:layout_height="36dp" />
</LinearLayout>
@ -104,17 +99,18 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="24dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
<ImageButton
android:id="@+id/lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_control_lock_off" />
<ImageView
<ImageButton
android:id="@+id/rotate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -129,22 +125,28 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical"
android:paddingBottom="8dp">
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/parse"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginBottom="8dp"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingStart="16dp"
android:paddingEnd="16dp"
tools:itemCount="1"
tools:listitem="@layout/adapter_parse" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:gravity="center_vertical"
android:orientation="horizontal">
android:orientation="horizontal"
android:paddingStart="16dp"
android:paddingEnd="16dp">
<com.fongmi.android.tv.ui.custom.CustomSeekView
android:id="@+id/seek"
@ -166,9 +168,14 @@
android:id="@+id/action"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="16dp"
android:clipChildren="false"
android:clipToPadding="false"
android:fillViewport="true"
android:scrollbars="none">
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:scrollbars="none"
android:visibility="visible">
<LinearLayout
android:layout_width="wrap_content"
@ -179,67 +186,32 @@
<TextView
android:id="@+id/player"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:textColor="@color/white"
android:textSize="14sp"
style="@style/Control.Action"
tools:text="EXO" />
<TextView
android:id="@+id/decode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:textColor="@color/white"
android:textSize="14sp"
style="@style/Control.Action"
tools:text="硬解" />
<TextView
android:id="@+id/speed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:textColor="@color/white"
android:textSize="14sp"
style="@style/Control.Action"
tools:text="速度" />
<TextView
android:id="@+id/scale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:textColor="@color/white"
android:textSize="14sp"
style="@style/Control.Action"
tools:text="縮放" />
<TextView
android:id="@+id/opening"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:textColor="@color/white"
android:textSize="14sp"
style="@style/Control.Action"
tools:text="片頭" />
<TextView
android:id="@+id/ending"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
android:textColor="@color/white"
android:textSize="14sp"
style="@style/Control.Action"
tools:text="片尾" />
<View
@ -249,41 +221,26 @@
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="4dp"
style="@style/Control.Action"
android:tag="3"
android:text="@string/play_track_text"
android:textColor="@color/white"
android:textSize="14sp"
android:visibility="gone"
tools:visibility="visible" />
<TextView
android:id="@+id/audio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
style="@style/Control.Action"
android:tag="1"
android:text="@string/play_track_audio"
android:textColor="@color/white"
android:textSize="14sp"
android:visibility="gone"
tools:visibility="visible" />
<TextView
android:id="@+id/video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="?attr/selectableItemBackgroundBorderless"
style="@style/Control.Action"
android:layout_marginEnd="0dp"
android:tag="2"
android:text="@string/play_track_video"
android:textColor="@color/white"
android:textSize="14sp"
android:visibility="gone"
tools:visibility="visible" />

@ -57,7 +57,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/position"
android:id="@+id/seek"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center"

@ -18,4 +18,15 @@
<item name="bottomSheetDialogTheme">@style/BottomSheetDialog</item>
</style>
<style name="Control" />
<style name="Control.Action">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">?attr/selectableItemBackgroundBorderless</item>
<item name="android:layout_marginEnd">16dp</item>
<item name="android:textColor">@color/white</item>
<item name="android:textSize">14sp</item>
</style>
</resources>

Loading…
Cancel
Save