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