diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java index b299852bb..81a259662 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/ConfigDialog.java @@ -9,10 +9,10 @@ import android.view.inputmethod.EditorInfo; import androidx.appcompat.app.AlertDialog; +import com.fongmi.android.tv.R; import com.fongmi.android.tv.databinding.DialogConfigBinding; import com.fongmi.android.tv.event.ServerEvent; import com.fongmi.android.tv.server.Server; -import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.Prefers; import com.fongmi.android.tv.utils.QRCode; import com.fongmi.android.tv.utils.ResUtil; @@ -52,13 +52,14 @@ public class ConfigDialog implements DialogInterface.OnDismissListener { } private void initView() { + String address = Server.get().getAddress(false); binding.text.setText(Prefers.getUrl()); binding.text.setSelection(binding.text.getText().length()); - binding.code.setImageBitmap(QRCode.getBitmap(Server.get().getAddress(false), 150, 0)); + binding.info.setText(ResUtil.getString(R.string.push_info, address)); + binding.code.setImageBitmap(QRCode.getBitmap(address, 160, 0)); } private void initEvent() { - binding.history.setOnClickListener(this::onHistory); binding.positive.setOnClickListener(this::onPositive); binding.negative.setOnClickListener(this::onNegative); binding.text.setOnEditorActionListener((textView, actionId, event) -> { @@ -78,10 +79,6 @@ public class ConfigDialog implements DialogInterface.OnDismissListener { dialog.dismiss(); } - private void onHistory(View view) { - Notify.show("尚未開發"); - } - @Subscribe(threadMode = ThreadMode.MAIN) public void onServerEvent(ServerEvent event) { if (event.getType() != ServerEvent.Type.API) return; diff --git a/app/src/leanback/res/layout/activity_search.xml b/app/src/leanback/res/layout/activity_search.xml index dc298cd86..f27fc673a 100644 --- a/app/src/leanback/res/layout/activity_search.xml +++ b/app/src/leanback/res/layout/activity_search.xml @@ -107,7 +107,7 @@ android:nextFocusLeft="@id/word" android:text="@string/search_clear" android:textColor="@color/white" - android:textSize="18sp" /> + android:textSize="16sp" /> + android:textSize="16sp" /> + android:textSize="16sp" /> diff --git a/app/src/leanback/res/layout/adapter_vod.xml b/app/src/leanback/res/layout/adapter_vod.xml index 270286efd..4eb7640fd 100644 --- a/app/src/leanback/res/layout/adapter_vod.xml +++ b/app/src/leanback/res/layout/adapter_vod.xml @@ -73,15 +73,15 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" - android:background="@color/black_50" + android:background="@color/black_60" android:ellipsize="marquee" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" - android:padding="4dp" + android:padding="6dp" android:scrollHorizontally="true" android:singleLine="true" android:textColor="@color/white" - android:textSize="18sp" + android:textSize="16sp" tools:text="蜘蛛人" /> + + - - + android:textColor="@color/white" + android:textSize="14sp" /> + android:textColor="@color/white" + android:textSize="14sp" /> \ No newline at end of file diff --git a/app/src/leanback/res/layout/view_controller_bottom.xml b/app/src/leanback/res/layout/view_controller_bottom.xml index 236434642..069218123 100644 --- a/app/src/leanback/res/layout/view_controller_bottom.xml +++ b/app/src/leanback/res/layout/view_controller_bottom.xml @@ -40,7 +40,8 @@ android:nextFocusLeft="@id/next" android:nextFocusDown="@id/parse" android:text="@string/play_next" - android:textColor="@color/white" /> + android:textColor="@color/white" + android:textSize="14sp" /> + android:textColor="@color/white" + android:textSize="14sp" /> + android:textColor="@color/white" + android:textSize="14sp" /> + android:textColor="@color/white" + android:textSize="14sp" /> diff --git a/app/src/main/java/com/fongmi/android/tv/bean/ParseResult.java b/app/src/main/java/com/fongmi/android/tv/bean/ParseResult.java deleted file mode 100644 index 07b65d516..000000000 --- a/app/src/main/java/com/fongmi/android/tv/bean/ParseResult.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.fongmi.android.tv.bean; - -import android.text.TextUtils; - -import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.annotations.SerializedName; - -import org.json.JSONObject; - -public class ParseResult { - - @SerializedName("header") - private JsonElement header; - @SerializedName("jxFrom") - private String jxFrom; - @SerializedName("parse") - private Integer parse; - @SerializedName("url") - private String url; - - public static ParseResult objectFrom(JSONObject object) { - try { - return new Gson().fromJson(object.toString(), ParseResult.class); - } catch (Exception e) { - return new ParseResult(); - } - } - - public JsonElement getHeader() { - return header; - } - - public String getJxFrom() { - return TextUtils.isEmpty(jxFrom) ? "" : jxFrom; - } - - public Integer getParse() { - return parse == null ? 0 : parse; - } - - public String getUrl() { - return TextUtils.isEmpty(url) ? "" : url; - } - - public boolean hasHeader() { - return getHeader() != null; - } -} diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Result.java b/app/src/main/java/com/fongmi/android/tv/bean/Result.java index d4ec39538..6e7e754e2 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Result.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Result.java @@ -12,10 +12,10 @@ import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; -import com.google.gson.JsonParser; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; +import org.json.JSONObject; import org.simpleframework.xml.ElementList; import org.simpleframework.xml.Path; import org.simpleframework.xml.Root; @@ -45,28 +45,28 @@ public class Result { @SerializedName("filters") private LinkedHashMap> filters; + @SerializedName("header") + private JsonElement header; @SerializedName("playUrl") private String playUrl; - @SerializedName("header") - private String header; - @SerializedName("flag") - private String flag; - @SerializedName("url") - private String url; + @SerializedName("jxFrom") + private String jxFrom; @SerializedName("parse") private Integer parse; @SerializedName("jx") private Integer jx; + @SerializedName("flag") + private String flag; + @SerializedName("url") + private String url; public static Result fromJson(String str) { try { - Type type = new TypeToken>>() { - }.getType(); + Type type = new TypeToken>>() {}.getType(); Gson gson = new GsonBuilder().registerTypeAdapter(type, new FiltersAdapter()).create(); Result result = gson.fromJson(str, Result.class); return result == null ? new Result() : result; } catch (Exception e) { - e.printStackTrace(); return new Result(); } } @@ -75,13 +75,20 @@ public class Result { try { return new Persister().read(Result.class, str); } catch (Exception e) { - e.printStackTrace(); return new Result(); } } + public static Result fromObject(JSONObject object) { + return objectFrom(object.toString()); + } + public static Result objectFrom(String str) { - return new Gson().fromJson(str, Result.class); + try { + return new Gson().fromJson(str, Result.class); + } catch (Exception e) { + return new Result(); + } } public List getTypes() { @@ -104,6 +111,10 @@ public class Result { return filters == null ? new LinkedHashMap<>() : filters; } + private JsonElement getHeader() { + return header; + } + public String getPlayUrl() { return TextUtils.isEmpty(playUrl) ? "" : playUrl; } @@ -112,8 +123,8 @@ public class Result { this.playUrl = playUrl; } - public String getHeader() { - return TextUtils.isEmpty(header) ? "" : header; + public String getJxFrom() { + return TextUtils.isEmpty(jxFrom) ? "" : jxFrom; } public Integer getParse() { @@ -124,6 +135,10 @@ public class Result { this.parse = parse; } + public Integer getJx() { + return jx == null ? 0 : jx; + } + public String getFlag() { return TextUtils.isEmpty(flag) ? "" : flag; } @@ -132,10 +147,6 @@ public class Result { this.flag = flag; } - public Integer getJx() { - return jx == null ? 0 : jx; - } - public String getUrl() { return TextUtils.isEmpty(url) ? "" : url; } @@ -144,10 +155,12 @@ public class Result { this.url = url; } + public boolean hasHeader() { + return getHeader() != null; + } + public Map getHeaders() { - HashMap headers = new HashMap<>(); - if (getHeader().isEmpty()) return headers; - return Json.toMap(JsonParser.parseString(getHeader())); + return hasHeader() ? Json.toMap(getHeader()) : new HashMap<>(); } @NonNull diff --git a/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java b/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java index 22bf7632e..430581ceb 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ParseTask.java @@ -5,7 +5,6 @@ import android.os.Looper; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.bean.Parse; -import com.fongmi.android.tv.bean.ParseResult; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.net.OKHttp; import com.fongmi.android.tv.utils.Json; @@ -86,13 +85,13 @@ public class ParseTask { private void jsonExtend(String webUrl) { LinkedHashMap jxs = new LinkedHashMap<>(); for (Parse item : ApiConfig.get().getParses()) if (item.getType() == 1) jxs.put(item.getName(), item.mixUrl()); - ParseResult result = ParseResult.objectFrom(ApiConfig.get().jsonExt(parse.getUrl(), jxs, webUrl)); + Result result = Result.fromObject(ApiConfig.get().jsonExt(parse.getUrl(), jxs, webUrl)); if (result.getUrl().isEmpty()) { onParseError(); } else if (result.getParse() == 1) { handler.post(() -> Players.get().web().start(result.getUrl(), callback)); } else { - onParseSuccess(result.hasHeader() ? Json.toMap(result.getHeader()) : new HashMap<>(), result.getUrl()); + onParseSuccess(result.getHeaders(), result.getUrl()); } } @@ -105,13 +104,13 @@ public class ParseTask { map.put("url", item.getUrl()); jxs.put(item.getName(), map); } - ParseResult result = ParseResult.objectFrom(ApiConfig.get().jsonExtMix(flag + "@", parse.getUrl(), parse.getName(), jxs, webUrl)); + Result result = Result.fromObject(ApiConfig.get().jsonExtMix(flag + "@", parse.getUrl(), parse.getName(), jxs, webUrl)); if (result.getUrl().isEmpty()) { onParseError(); } else if (result.getParse() == 1) { handler.post(() -> Players.get().web().start(result.getUrl(), callback)); } else { - onParseSuccess(result.hasHeader() ? Json.toMap(result.getHeader()) : new HashMap<>(), result.getUrl()); + onParseSuccess(result.getHeaders(), result.getUrl()); } } diff --git a/app/src/main/res/layout/view_empty.xml b/app/src/main/res/layout/view_empty.xml index 6df736c5f..2f42f4afd 100644 --- a/app/src/main/res/layout/view_empty.xml +++ b/app/src/main/res/layout/view_empty.xml @@ -19,7 +19,6 @@ android:layout_marginTop="16dp" android:text="@string/error_empty" android:textColor="@color/white" - android:textSize="20sp" - android:textStyle="bold" /> + android:textSize="20sp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/view_error.xml b/app/src/main/res/layout/view_error.xml index aa14c0e54..ea197d109 100644 --- a/app/src/main/res/layout/view_error.xml +++ b/app/src/main/res/layout/view_error.xml @@ -20,7 +20,7 @@ android:layout_height="wrap_content" android:layout_marginTop="16dp" android:textColor="@color/white" - android:textSize="18sp" - tools:text="@string/error_play" /> + android:textSize="16sp" + tools:text="@string/error_play_format" /> \ No newline at end of file