diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index cb70e306..40f43aa1 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -35,7 +35,7 @@ # 保留我们使用的四大组件,自定义的Application等等这些类不被混淆 # 因为这些子类都有可能被外部调用 -keep public class * extends android.app.Activity --keep public class * extends android.app.Appliction.** +-keep public class * extends android.app.Application.** -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider diff --git a/app/src/main/java/com/github/tvbox/osc/picasso/RoundTransformation.java b/app/src/main/java/com/github/tvbox/osc/picasso/RoundTransformation.java index 6293ed75..ebeb24e0 100644 --- a/app/src/main/java/com/github/tvbox/osc/picasso/RoundTransformation.java +++ b/app/src/main/java/com/github/tvbox/osc/picasso/RoundTransformation.java @@ -87,7 +87,7 @@ public class RoundTransformation implements Transformation { matrix.postScale(scale, scale); mBitmapShader.setLocalMatrix(matrix); } - Bitmap bitmap = Bitmap.createBitmap(viewWidth, viewHeight, Bitmap.Config.ARGB_8888); + Bitmap bitmap = Bitmap.createBitmap(viewWidth, viewHeight, Bitmap.Config.RGB_565); bitmap.setHasAlpha(true); Canvas mCanvas = new Canvas(bitmap); mPaint.setShader(mBitmapShader); diff --git a/app/src/main/java/com/github/tvbox/osc/subtitle/widget/SimpleSubtitleView.java b/app/src/main/java/com/github/tvbox/osc/subtitle/widget/SimpleSubtitleView.java index 23e26338..5c95e8fe 100644 --- a/app/src/main/java/com/github/tvbox/osc/subtitle/widget/SimpleSubtitleView.java +++ b/app/src/main/java/com/github/tvbox/osc/subtitle/widget/SimpleSubtitleView.java @@ -108,7 +108,9 @@ public class SimpleSubtitleView extends TextView text = text.replaceAll("(?:\\r\\n)", "
"); text = text.replaceAll("(?:\\r)", "
"); text = text.replaceAll("(?:\\n)", "
"); - text = text.replaceAll("\\{[\\s\\S]*\\}", ""); + text = text.replaceAll("\\\\N", "
"); + text = text.replaceAll("\\{[\\s\\S]*?\\}", ""); + text = text.replaceAll("^.*?,.*?,.*?,.*?,.*?,.*?,.*?,.*?,.*?,", ""); setText(Html.fromHtml(text)); } diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java index b417613b..98694776 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java @@ -635,6 +635,7 @@ public class DetailActivity extends BaseActivity { .override(AutoSizeUtils.mm2px(mContext, 300), AutoSizeUtils.mm2px(mContext, 400)) .roundRadius(AutoSizeUtils.mm2px(mContext, 10), RoundTransformation.RoundType.ALL)) .placeholder(R.drawable.img_loading_placeholder) + .noFade() .error(R.drawable.img_loading_placeholder) .into(ivThumb); } else { diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java index b7339c63..7287ece6 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java @@ -501,14 +501,15 @@ public class PlayActivity extends BaseActivity { if(autoRetryCount>1 && url.contains(".m3u8")){ url="http://home.jundie.top:666/unBom.php?m3u8="+url;//尝试去bom头再次播放 } - final String[] finalUrl = {url}; + final String finalUrl = url; runOnUiThread(new Runnable() { @Override public void run() { stopParse(); if (mVideoView != null) { mVideoView.release(); - if (finalUrl[0] != null) { + if (finalUrl != null) { + String url =finalUrl; try { int playerType = mVodPlayerCfg.getInt("pl"); if (playerType >= 10) { @@ -517,7 +518,7 @@ public class PlayActivity extends BaseActivity { setTip("调用外部播放器" + PlayerHelper.getPlayerName(playerType) + "进行播放", true, false); boolean callResult = false; long progress = getSavedProgress(progressKey); - callResult = PlayerHelper.runExternalPlayer(playerType, PlayActivity.this, finalUrl[0], playTitle, playSubtitle, headers, progress); + callResult = PlayerHelper.runExternalPlayer(playerType, PlayActivity.this, url, playTitle, playSubtitle, headers, progress); setTip("调用外部播放器" + PlayerHelper.getPlayerName(playerType) + (callResult ? "成功" : "失败"), callResult, !callResult); return; } @@ -525,20 +526,20 @@ public class PlayActivity extends BaseActivity { e.printStackTrace(); } hideTip(); - if (finalUrl[0].startsWith("data:application/dash+xml;base64,")) { + if (url.startsWith("data:application/dash+xml;base64,")) { PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg, 2); - App.getInstance().setDashData(finalUrl[0].split("base64,")[1]); - finalUrl[0] = ControlManager.get().getAddress(true) + "dash/proxy.mpd"; - } else if (finalUrl[0].contains(".mpd") || finalUrl[0].contains("type=mpd")) { + App.getInstance().setDashData(url.split("base64,")[1]); + url = ControlManager.get().getAddress(true) + "dash/proxy.mpd"; + } else if (url.contains(".mpd") || url.contains("type=mpd")) { PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg, 2); } else { PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg); } mVideoView.setProgressKey(progressKey); if (headers != null) { - mVideoView.setUrl(finalUrl[0], headers); + mVideoView.setUrl(url, headers); } else { - mVideoView.setUrl(finalUrl[0]); + mVideoView.setUrl(url); } mVideoView.start(); mController.resetSpeed(); @@ -1157,7 +1158,7 @@ public class PlayActivity extends BaseActivity { LinkedHashMap> jxs = new LinkedHashMap<>(); String extendName = ""; for (ParseBean p : ApiConfig.get().getParseBeanList()) { - HashMap data = new HashMap(); + HashMap data = new HashMap(); data.put("url", p.getUrl()); if (p.getUrl().equals(pb.getUrl())) { extendName = p.getName(); diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java index e46190bc..67b5b48f 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/CollectAdapter.java @@ -55,6 +55,7 @@ public class CollectAdapter extends BaseQuickAdapter .override(AutoSizeUtils.mm2px(mContext, 300), AutoSizeUtils.mm2px(mContext, 400)) .roundRadius(AutoSizeUtils.mm2px(mContext, 10), RoundTransformation.RoundType.ALL)) .placeholder(R.drawable.img_loading_placeholder) + .noFade() .error(R.drawable.img_loading_placeholder) .into(ivThumb); } else { diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/FastSearchAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/FastSearchAdapter.java index 8c4b35c1..720afdfe 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/FastSearchAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/FastSearchAdapter.java @@ -37,11 +37,12 @@ public class FastSearchAdapter extends BaseQuickAdapter= 10) { @@ -530,7 +531,7 @@ public class PlayFragment extends BaseLazyFragment { setTip("调用外部播放器" + PlayerHelper.getPlayerName(playerType) + "进行播放", true, false); boolean callResult = false; long progress = getSavedProgress(progressKey); - callResult = PlayerHelper.runExternalPlayer(playerType, requireActivity(), finalUrl[0], playTitle, playSubtitle, headers, progress); + callResult = PlayerHelper.runExternalPlayer(playerType, requireActivity(), url, playTitle, playSubtitle, headers, progress); setTip("调用外部播放器" + PlayerHelper.getPlayerName(playerType) + (callResult ? "成功" : "失败"), callResult, !callResult); return; } @@ -538,20 +539,20 @@ public class PlayFragment extends BaseLazyFragment { e.printStackTrace(); } hideTip(); - if (finalUrl[0].startsWith("data:application/dash+xml;base64,")) { + if (url.startsWith("data:application/dash+xml;base64,")) { PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg, 2); - App.getInstance().setDashData(finalUrl[0].split("base64,")[1]); - finalUrl[0] = ControlManager.get().getAddress(true) + "dash/proxy.mpd"; - } else if (finalUrl[0].contains(".mpd") || finalUrl[0].contains("type=mpd")) { + App.getInstance().setDashData(url.split("base64,")[1]); + url = ControlManager.get().getAddress(true) + "dash/proxy.mpd"; + } else if (url.contains(".mpd") || url.contains("type=mpd")) { PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg, 2); } else { PlayerHelper.updateCfg(mVideoView, mVodPlayerCfg); } mVideoView.setProgressKey(progressKey); if (headers != null) { - mVideoView.setUrl(finalUrl[0], headers); + mVideoView.setUrl(url, headers); } else { - mVideoView.setUrl(finalUrl[0]); + mVideoView.setUrl(url); } mVideoView.start(); mController.resetSpeed(); @@ -1185,7 +1186,7 @@ public class PlayFragment extends BaseLazyFragment { LinkedHashMap> jxs = new LinkedHashMap<>(); String extendName = ""; for (ParseBean p : ApiConfig.get().getParseBeanList()) { - HashMap data = new HashMap(); + HashMap data = new HashMap(); data.put("url", p.getUrl()); if (p.getUrl().equals(pb.getUrl())) { extendName = p.getName(); diff --git a/app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.java b/app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.java index ce1c94a2..307b9a52 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.java +++ b/app/src/main/java/com/github/tvbox/osc/util/OkGoHelper.java @@ -15,6 +15,8 @@ import com.squareup.picasso.Picasso; import java.io.File; import java.security.cert.CertificateException; import java.util.ArrayList; +import java.util.concurrent.PriorityBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.logging.Level; diff --git a/app/src/main/java/com/github/tvbox/osc/util/thunder/Thunder.java b/app/src/main/java/com/github/tvbox/osc/util/thunder/Thunder.java index 46e2a00b..31f930ef 100644 --- a/app/src/main/java/com/github/tvbox/osc/util/thunder/Thunder.java +++ b/app/src/main/java/com/github/tvbox/osc/util/thunder/Thunder.java @@ -104,7 +104,6 @@ public class Thunder { torrentFileInfoArrayList=new ArrayList<>(); playList=new ArrayList<>(); ed2kList=new ArrayList<>(); - ArrayList jxUrls=new ArrayList<>(); Map urlMap = new HashMap<>(); threadPool.execute(new Runnable() { @Override @@ -116,7 +115,6 @@ public class Thunder { for (Movie.Video.UrlBean.UrlInfo.InfoBean infoBean : urlInfo.beanList) { boolean isParse=false; url=infoBean.url; -// if(jxUrls.contains(url))continue; if (isMagnet(url) || isThunder(url) || isTorrent(url)) { if(isThunder(url) )url=XLDownloadManager.getInstance().parserThunderUrl(url); String link = isThunder(url) ? XLDownloadManager.getInstance().parserThunderUrl(url) : url; @@ -141,7 +139,7 @@ public class Thunder { if (currentTask <= 0) { continue; } - int count = 15; + int count = 30; outerLoop: while (true) { count--; @@ -160,13 +158,12 @@ public class Thunder { TorrentFileInfo[] mSubFileInfo = torrentInfo.mSubFileInfo; if (mSubFileInfo != null) { for (TorrentFileInfo sub : mSubFileInfo) { - if (isMedia(sub.mFileName)) { + if (isMedia(sub.mFileName) && sub.mFileSize > 1048576L * 30) { sub.torrentPath = cache.getAbsolutePath(); playList.add(sub.mFileName + "$tvbox-torrent:" + torrentFileInfoArrayList.size()); torrentFileInfoArrayList.add(sub); } } - jxUrls.add(url); isParse=true; break outerLoop; } @@ -183,7 +180,7 @@ public class Thunder { } } try { - Thread.sleep(200); + Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } diff --git a/app/src/main/res/layout/item_user_hot_vod.xml b/app/src/main/res/layout/item_user_hot_vod.xml index 1bde5764..9798b787 100644 --- a/app/src/main/res/layout/item_user_hot_vod.xml +++ b/app/src/main/res/layout/item_user_hot_vod.xml @@ -24,8 +24,7 @@ android:layout_marginLeft="@dimen/vs_5" android:layout_marginTop="@dimen/vs_5" android:layout_marginRight="@dimen/vs_5" - android:orientation="horizontal" - android:visibility="gone"> + android:orientation="horizontal">