From 47dbbe198b35fe5ca70ca568c59eacceeaf22fc6 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 26 Jul 2022 17:53:50 +0800 Subject: [PATCH] Fix play crash bug --- .../java/com/fongmi/bear/player/Players.java | 20 +++++++++++++------ .../bear/ui/activity/SettingActivity.java | 8 ++++---- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/fongmi/bear/player/Players.java b/app/src/main/java/com/fongmi/bear/player/Players.java index c86048783..9685209a6 100644 --- a/app/src/main/java/com/fongmi/bear/player/Players.java +++ b/app/src/main/java/com/fongmi/bear/player/Players.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 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 getPlayHeader(JsonObject object) { + HashMap 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) { diff --git a/app/src/main/java/com/fongmi/bear/ui/activity/SettingActivity.java b/app/src/main/java/com/fongmi/bear/ui/activity/SettingActivity.java index 4890cabe9..a2ef8a73c 100644 --- a/app/src/main/java/com/fongmi/bear/ui/activity/SettingActivity.java +++ b/app/src/main/java/com/fongmi/bear/ui/activity/SettingActivity.java @@ -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; });