pull/589/head
FongMi 1 year ago
parent aca07aca70
commit 5faec0e19e
  1. 15
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  2. 3
      app/src/main/java/com/fongmi/android/tv/ui/dialog/DanmakuDialog.java
  3. 2
      app/src/main/java/com/fongmi/android/tv/ui/dialog/TrackDialog.java

@ -486,16 +486,17 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call
}
private void setDanmaku(List<Danmaku> items) {
if (items.isEmpty()) danmaku.release();
else setDanmaku(items.get(0));
setDanmaku(items.isEmpty() ? Danmaku.empty() : items.get(0));
}
public void setDanmaku(Danmaku item) {
danmaku.release();
if (danmakus == null) danmakus = new ArrayList<>();
if (!item.isEmpty() && !danmakus.contains(item)) danmakus.add(0, item);
if (!item.isEmpty()) App.execute(() -> danmaku.prepare(new Parser().load(new Loader(item).getDataSource()), context));
for (int i = 0; i < danmakus.size(); i++) danmakus.get(i).setSelected(danmakus.get(i).getUrl().equals(item.getUrl()) && !danmakus.get(i).isSelected());
App.execute(() -> {
danmaku.release();
if (danmakus == null) danmakus = new ArrayList<>();
if (!item.isEmpty() && !danmakus.contains(item)) danmakus.add(0, item);
if (!item.isEmpty()) danmaku.prepare(new Parser().load(new Loader(item).getDataSource()), context);
for (int i = 0; i < danmakus.size(); i++) danmakus.get(i).setSelected(danmakus.get(i).getUrl().equals(item.getUrl()) && !danmakus.get(i).isSelected());
});
}
public void setDanmakuSize(float size) {

@ -13,7 +13,6 @@ import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.bean.Danmaku;
import com.fongmi.android.tv.databinding.DialogDanmakuBinding;
import com.fongmi.android.tv.player.Players;
@ -81,7 +80,7 @@ public final class DanmakuDialog extends BaseDialog implements DanmakuAdapter.On
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK || requestCode != FileChooser.REQUEST_PICK_FILE) return;
App.post(() -> player.setDanmaku(Danmaku.from(FileChooser.getPathFromUri(data.getData()))), 250);
player.setDanmaku(Danmaku.from(FileChooser.getPathFromUri(data.getData())));
dismiss();
}
}

@ -133,7 +133,7 @@ public final class TrackDialog extends BaseDialog implements TrackAdapter.OnClic
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK || requestCode != FileChooser.REQUEST_PICK_FILE) return;
App.post(() -> player.setSub(Sub.from(FileChooser.getPathFromUri(data.getData()))), 250);
player.setSub(Sub.from(FileChooser.getPathFromUri(data.getData())));
dismiss();
}

Loading…
Cancel
Save