Adjust buffer setting

pull/149/head
FongMi 2 years ago
parent e4b2b737e5
commit 3a8cfa7374
  1. 34
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/BufferDialog.java
  2. 45
      app/src/leanback/res/layout/dialog_buffer.xml
  3. 2
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java

@ -1,8 +1,6 @@
package com.fongmi.android.tv.ui.custom.dialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
@ -10,7 +8,7 @@ import androidx.fragment.app.FragmentActivity;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.databinding.DialogBufferBinding;
import com.fongmi.android.tv.impl.BufferCallback;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class BufferDialog {
@ -18,7 +16,6 @@ public class BufferDialog {
private final DialogBufferBinding binding;
private final BufferCallback callback;
private final AlertDialog dialog;
private int value;
public static BufferDialog create(FragmentActivity activity) {
return new BufferDialog(activity);
@ -37,30 +34,23 @@ public class BufferDialog {
}
private void initDialog() {
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = (int) (ResUtil.getScreenWidth() * 0.45f);
dialog.getWindow().setAttributes(params);
dialog.getWindow().setDimAmount(0);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.show();
}
private void initView() {
binding.slider.setValue(value = Setting.getBuffer());
binding.slider.setValue(Setting.getBuffer());
}
private void initEvent() {
binding.positive.setOnClickListener(this::onPositive);
binding.negative.setOnClickListener(this::onNegative);
}
private void onPositive(View view) {
callback.setBuffer((int) binding.slider.getValue());
Setting.putBuffer((int) binding.slider.getValue());
dialog.dismiss();
}
private void onNegative(View view) {
callback.setBuffer(value);
dialog.dismiss();
binding.slider.addOnChangeListener((slider, value, fromUser) -> {
callback.setBuffer((int) value);
Setting.putBuffer((int) value);
});
binding.slider.setOnKeyListener((view, keyCode, event) -> {
boolean enter = Utils.isEnterKey(event);
if (enter) dialog.dismiss();
return enter;
});
}
}

@ -1,17 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
android:padding="48dp">
<com.google.android.material.slider.Slider
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:nextFocusDown="@id/positive"
android:stepSize="1"
android:valueFrom="1"
android:valueTo="30"
@ -19,40 +16,4 @@
app:trackColorActive="@color/blue_500"
app:trackColorInactive="@color/blue_50" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<TextView
android:id="@+id/positive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:background="@drawable/selector_text"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:singleLine="true"
android:text="@string/dialog_positive"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:id="@+id/negative"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/selector_text"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:singleLine="true"
android:text="@string/dialog_negative"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</FrameLayout>

@ -63,7 +63,7 @@ public class ExoUtil {
private static Cache cache;
public static LoadControl buildLoadControl() {
return new DefaultLoadControl.Builder().setBufferDurationsMs(Setting.getBuffer() * 60 * 1000, Setting.getBuffer() * 60 * 1000, DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS, DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS).build();
return new DefaultLoadControl(Setting.getBuffer());
}
public static TrackSelector buildTrackSelector() {

Loading…
Cancel
Save