[leanback] support oped fine-tuning

pull/137/head
FongMi 3 years ago
parent ee2e2a854a
commit 7a90d95607
  1. 42
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 59
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomOpEdView.java
  3. 4
      app/src/leanback/res/layout/view_control_vod.xml

@ -230,6 +230,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.control.text.setOnClickListener(this::onTrack);
mBinding.control.audio.setOnClickListener(this::onTrack);
mBinding.control.video.setOnClickListener(this::onTrack);
mBinding.control.ending.setAddListener(this::onEndingAdd);
mBinding.control.ending.setSubListener(this::onEndingSub);
mBinding.control.opening.setAddListener(this::onOpeningAdd);
mBinding.control.opening.setSubListener(this::onOpeningSub);
mBinding.control.loop.setOnClickListener(view -> onLoop());
mBinding.control.next.setOnClickListener(view -> checkNext());
mBinding.control.prev.setOnClickListener(view -> checkPrev());
@ -591,30 +595,52 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current < 0 || current > duration / 2) return;
mHistory.setOpening(current);
mBinding.control.opening.setText(mPlayers.stringToTime(mHistory.getOpening()));
setOpening(current);
}
private void onOpeningAdd() {
setOpening(Math.min(mHistory.getOpening() + 1000, mPlayers.getDuration() / 2));
}
private void onOpeningSub() {
setOpening(Math.max(0, mHistory.getOpening() - 1000));
}
private boolean onOpeningReset() {
mHistory.setOpening(0);
mBinding.control.opening.setText(R.string.play_op);
setOpening(0);
return true;
}
private void setOpening(long opening) {
mHistory.setOpening(opening);
mBinding.control.opening.setText(opening == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening()));
}
private void onEnding() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current < 0 || current < duration / 2) return;
mHistory.setEnding(duration - current);
mBinding.control.ending.setText(mPlayers.stringToTime(mHistory.getEnding()));
setEnding(duration - current);
}
private void onEndingAdd() {
setEnding(Math.min(mPlayers.getDuration() / 2, mHistory.getEnding() + 1000));
}
private void onEndingSub() {
setEnding(Math.max(0, mHistory.getEnding() - 1000));
}
private boolean onEndingReset() {
mHistory.setEnding(0);
mBinding.control.ending.setText(R.string.play_ed);
setEnding(0);
return true;
}
private void setEnding(long ending) {
mHistory.setEnding(ending);
mBinding.control.ending.setText(ending == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding()));
}
private void onPlayer() {
mPlayers.togglePlayer();
Prefers.putPlayer(mPlayers.getPlayer());

@ -0,0 +1,59 @@
package com.fongmi.android.tv.ui.custom;
import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import com.fongmi.android.tv.utils.Utils;
public class CustomOpEdView extends AppCompatTextView {
private AddListener addListener;
private SubListener subListener;
public CustomOpEdView(@NonNull Context context) {
super(context);
}
public CustomOpEdView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public void setAddListener(AddListener addListener) {
this.addListener = addListener;
}
public void setSubListener(SubListener subListener) {
this.subListener = subListener;
}
private boolean hasEvent(KeyEvent event) {
return event.getAction() == KeyEvent.ACTION_DOWN && (Utils.isUpKey(event) || Utils.isDownKey(event));
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (hasEvent(event)) return onKeyDown(event);
else return super.dispatchKeyEvent(event);
}
private boolean onKeyDown(KeyEvent event) {
if (Utils.isUpKey(event)) addListener.onAdd();
if (Utils.isDownKey(event)) subListener.onSud();
return true;
}
public interface AddListener {
void onAdd();
}
public interface SubListener {
void onSud();
}
}

@ -174,7 +174,7 @@
android:visibility="gone"
tools:visibility="visible" />
<TextView
<com.fongmi.android.tv.ui.custom.CustomOpEdView
android:id="@+id/opening"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -186,7 +186,7 @@
android:textSize="14sp"
tools:text="00:00" />
<TextView
<com.fongmi.android.tv.ui.custom.CustomOpEdView
android:id="@+id/ending"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

Loading…
Cancel
Save