Fix play crash bug

pull/5/head
FongMi 4 years ago
parent b945bf072d
commit 47dbbe198b
  1. 20
      app/src/main/java/com/fongmi/bear/player/Players.java
  2. 8
      app/src/main/java/com/fongmi/bear/ui/activity/SettingActivity.java

@ -9,6 +9,7 @@ import com.fongmi.bear.ui.custom.CustomWebView;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.util.Util;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
@ -77,18 +78,25 @@ public class Players implements Player.Listener {
}
public void setMediaSource(JsonObject object) {
HashMap<String, String> headers = new HashMap<>();
String parse = object.get("parse").getAsString();
String url = object.get("url").getAsString();
if (object.has("header")) {
JsonObject header = JsonParser.parseString(object.get("header").getAsString()).getAsJsonObject();
for (String key : header.keySet()) headers.put(key, header.get(key).getAsString());
}
if (parse.equals("1")) {
loadWebView(url);
} else {
setMediaSource(headers, url);
setMediaSource(getPlayHeader(object), url);
}
}
private HashMap<String, String> getPlayHeader(JsonObject object) {
HashMap<String, String> headers = new HashMap<>();
if (!object.has("header")) return headers;
String header = object.get("header").getAsString();
JsonElement element = JsonParser.parseString(header);
if (element.isJsonObject()) {
object = element.getAsJsonObject();
for (String key : object.keySet()) headers.put(key, object.get(key).getAsString());
}
return headers;
}
private void loadWebView(String url) {

@ -61,16 +61,16 @@ public class SettingActivity extends BaseActivity {
private void showConfig(View view) {
DialogConfigBinding bindingDialog = DialogConfigBinding.inflate(LayoutInflater.from(this));
bindingDialog.url.setText(Prefers.getUrl());
bindingDialog.url.setSelection(bindingDialog.url.getText().length());
bindingDialog.text.setText(Prefers.getUrl());
bindingDialog.text.setSelection(bindingDialog.text.getText().length());
AlertDialog dialog = Notify.show(this, bindingDialog.getRoot(), (dialogInterface, i) -> {
Prefers.putUrl(bindingDialog.url.getText().toString().trim());
Prefers.putUrl(bindingDialog.text.getText().toString().trim());
mBinding.url.setText(Prefers.getUrl());
Notify.progress(this);
ApiConfig.get().clear();
checkUrl();
});
bindingDialog.url.setOnEditorActionListener((textView, actionId, event) -> {
bindingDialog.text.setOnEditorActionListener((textView, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE) dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
return true;
});

Loading…
Cancel
Save