Merge pull request #375 from okcaptain/release

release
pull/378/head
okcaptain 2 years ago committed by GitHub
commit aa602c67ab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      app/build.gradle
  2. 12
      app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuDialog.java
  3. 12
      app/src/leanback/java/com/fongmi/android/tv/ui/dialog/MenuKeyDialog.java
  4. 2
      app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java
  5. 13
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java
  6. 5
      app/src/main/java/com/fongmi/android/tv/utils/M3U8.java
  7. 2
      app/src/main/java/com/fongmi/android/tv/utils/Util.java

@ -10,8 +10,8 @@ android {
applicationId "com.fongmi.android.tv"
minSdk 21
targetSdk 28
versionCode 231
versionName "0329"
versionCode 232
versionName "2.3.2"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]

@ -50,6 +50,14 @@ public class MenuDialog implements MenuAdapter.OnClickListener {
initView();
}
private int getCount() {
return 2;
}
private float getWidth() {
return 0.4f + (getCount() - 1) * 0.2f;
}
private void initView() {
setRecyclerView();
setDialog();
@ -61,14 +69,14 @@ public class MenuDialog implements MenuAdapter.OnClickListener {
binding.recycler.setHasFixedSize(true);
binding.recycler.setItemAnimator(null);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16));
binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), 1));
binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), getCount()));
binding.recycler.post(() -> binding.recycler.scrollToPosition(0));
}
private void setDialog() {
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = (int) (ResUtil.getScreenWidth() * 0.4f);
params.width = (int) (ResUtil.getScreenWidth() * getWidth());
dialog.getWindow().setAttributes(params);
dialog.getWindow().setDimAmount(0);
dialog.show();

@ -45,6 +45,14 @@ public class MenuKeyDialog implements MenuAdapter.OnClickListener {
initView();
}
private int getCount() {
return 3;
}
private float getWidth() {
return 0.4f + (getCount() - 1) * 0.2f;
}
private void initView() {
setRecyclerView();
setDialog();
@ -55,14 +63,14 @@ public class MenuKeyDialog implements MenuAdapter.OnClickListener {
binding.recycler.setHasFixedSize(true);
binding.recycler.setItemAnimator(null);
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16));
binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), 1));
binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), getCount()));
binding.recycler.post(() -> binding.recycler.scrollToPosition(Setting.getHomeMenuKey()));
}
private void setDialog() {
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = (int) (ResUtil.getScreenWidth() * 0.4f);
params.width = (int) (ResUtil.getScreenWidth() * getWidth());
dialog.getWindow().setAttributes(params);
dialog.getWindow().setDimAmount(0);
dialog.show();

@ -177,7 +177,7 @@ public class LiveConfig {
private int[] getKeep(List<Group> items) {
String[] splits = Setting.getKeep().split(AppDatabase.SYMBOL);
if (splits.length < 4 || !home.getName().equals(splits[0])) return new int[]{1, 0};
if (splits.length < 4 || !getHome().getName().equals(splits[0])) return new int[]{1, 0};
for (int i = 0; i < items.size(); i++) {
Group group = items.get(i);
if (group.getName().equals(splits[1])) {

@ -77,6 +77,11 @@ public class CustomWebView extends WebView {
setWebViewClient(webViewClient());
}
private void addView() {
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(1, 1);
if (App.activity() != null) App.activity().addContentView(this, params);
}
public CustomWebView start(String key, String from, Map<String, String> headers, String url, String click, ParseCallback callback, boolean detect) {
App.post(timer, Constant.TIMEOUT_PARSE_WEB);
this.callback = callback;
@ -84,6 +89,7 @@ public class CustomWebView extends WebView {
this.click = click;
this.from = from;
this.key = key;
addView();
start(url, headers);
return this;
}
@ -142,7 +148,7 @@ public class CustomWebView extends WebView {
private void showDialog() {
if (dialog != null || App.activity() == null) return;
if (getParent() != null) ((ViewGroup) getParent()).removeView(this);
removeView();
dialog = new AlertDialog.Builder(App.activity()).setView(this).show();
}
@ -200,8 +206,13 @@ public class CustomWebView extends WebView {
callback = null;
}
private void removeView() {
if (getParent() != null) ((ViewGroup) getParent()).removeView(this);
}
public void stop(boolean error) {
hideDialog();
removeView();
stopLoading();
loadUrl(BLANK);
App.removeCallbacks(timer);

@ -32,7 +32,7 @@ public class M3U8 {
try {
if (TextUtils.isEmpty(url)) return "";
Response response = OkHttp.newCall(url, getHeader(headers)).execute();
if (response.header(HttpHeaders.ACCEPT_RANGES) != null) return "";
if (response.header(HttpHeaders.ACCEPT_RANGES) != null && !url.contains(".m3u8")) return "";
String result = response.body().string();
Matcher matcher = Pattern.compile("#EXT-X-STREAM-INF(.*)\\n?(.*)").matcher(result.replaceAll("\r\n", "\n"));
if (matcher.find() && matcher.groupCount() > 1) return get(UriUtil.resolve(url, matcher.group(2)), headers);
@ -40,8 +40,7 @@ public class M3U8 {
for (String line : result.split("\n")) sb.append(shouldResolve(line) ? resolve(url, line) : line).append("\n");
List<String> ads = Sniffer.getRegex(Uri.parse(url));
return clean(sb.toString(), ads);
} catch (Exception e) {
e.printStackTrace();
} catch (Throwable ignored) {
return "";
}
}

@ -90,7 +90,7 @@ public class Util {
if (TextUtils.isEmpty(id)) throw new NullPointerException();
return id;
} catch (Exception e) {
return "0200000000000000";
return "0000000000000000";
}
}

Loading…
Cancel
Save