From 79a074aca327ae22e6a27cb871b31d556aeefdfe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=BA=8E=E4=BF=8A?= <215613905@qq.com>
Date: Wed, 31 Aug 2022 15:46:26 +0800
Subject: [PATCH] =?UTF-8?q?1=E8=A7=A3=E5=86=B3=E9=83=A8=E5=88=86=E5=97=85?=
=?UTF-8?q?=E6=8E=A2=E7=AC=AC=E4=BA=8C=E6=AC=A1=E6=89=93=E5=BC=80=E5=97=85?=
=?UTF-8?q?=E6=8E=A2=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=982?=
=?UTF-8?q?=E5=97=85=E6=8E=A2=E5=A2=9E=E5=8A=A0=E4=BC=A0=E9=80=92=E5=A6=82?=
=?UTF-8?q?referer=E7=AD=89=E5=85=B6=E4=BB=96header=E5=8F=82=E6=95=B03?=
=?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=AD=9B=E9=80=89=E5=88=86=E7=B1=BB=E4=B8=AA?=
=?UTF-8?q?=E5=88=AB=E6=89=8B=E6=9C=BA=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8?=
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=984=E9=A6=96=E9=A1=B5=E8=81=9A?=
=?UTF-8?q?=E6=90=9C=EF=BC=885=E5=B0=9D=E8=AF=95=E8=A7=A3=E5=86=B3?=
=?UTF-8?q?=E6=8B=89=E8=B5=B7=E8=BD=AF=E9=94=AE=E7=9B=98=E5=A4=B1=E8=B4=A5?=
=?UTF-8?q?=E9=97=AE=E9=A2=98,=E5=B0=9D=E8=AF=95=E8=A7=A3=E5=86=B3?=
=?UTF-8?q?=E8=AF=A6=E6=83=85=E9=BB=98=E8=AE=A4=E7=84=A6=E7=82=B9=E4=B8=BA?=
=?UTF-8?q?=E6=92=AD=E6=94=BE=E5=9C=B0=E5=9D=80=E9=97=AE=E9=A2=98:?=
=?UTF-8?q?=E8=87=AA=E8=A1=8C=E6=B5=8B=E8=AF=95=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/misc.xml | 11 +++++++
.../com/github/tvbox/osc/bean/AbsXml.java | 2 ++
.../tvbox/osc/ui/activity/DetailActivity.java | 25 +++++++++-------
.../tvbox/osc/ui/activity/PlayActivity.java | 30 +++++++++++++------
.../tvbox/osc/ui/activity/SearchActivity.java | 18 +++++++++--
.../tvbox/osc/ui/fragment/GridFragment.java | 13 +++++++-
.../tvbox/osc/ui/fragment/PlayFragment.java | 28 +++++++++++------
.../tvbox/osc/ui/fragment/UserFragment.java | 15 ++++++++--
.../main/res/layout/dialog_api_history.xml | 2 +-
.../main/res/layout/dialog_grid_filter.xml | 1 +
app/src/main/res/layout/dialog_select.xml | 2 +-
.../res/layout/item_grid_filter_value.xml | 2 +-
12 files changed, 111 insertions(+), 38 deletions(-)
diff --git a/.idea/misc.xml b/.idea/misc.xml
index efd482e5..97edd0fc 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -18,10 +18,21 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/github/tvbox/osc/bean/AbsXml.java b/app/src/main/java/com/github/tvbox/osc/bean/AbsXml.java
index ebcbbeae..332b6ebd 100644
--- a/app/src/main/java/com/github/tvbox/osc/bean/AbsXml.java
+++ b/app/src/main/java/com/github/tvbox/osc/bean/AbsXml.java
@@ -13,4 +13,6 @@ import java.io.Serializable;
public class AbsXml implements Serializable {
@XStreamAlias("list")
public Movie movie;
+ @XStreamAlias("msg")
+ public String msg;
}
\ No newline at end of file
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 06394016..b8e2570c 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
@@ -178,6 +178,8 @@ public class DetailActivity extends BaseActivity {
getSupportFragmentManager().beginTransaction().show(playFragment).commitAllowingStateLoss();
tvPlay.setText("全屏");
}
+ //禁用播放地址焦点
+ tvPlayUrl.setFocusable(false);
tvSort.setOnClickListener(new View.OnClickListener() {
@SuppressLint("NotifyDataSetChanged")
@Override
@@ -209,16 +211,6 @@ public class DetailActivity extends BaseActivity {
}
});
- tvPlayUrl.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- //获取剪切板管理器
- ClipboardManager cm = (ClipboardManager)getSystemService(mContext.CLIPBOARD_SERVICE);
- //设置内容到剪切板
- cm.setPrimaryClip(ClipData.newPlainText(null, tvPlayUrl.getText().toString().replace("播放地址:","")));
- Toast.makeText(DetailActivity.this, "已复制", Toast.LENGTH_SHORT).show();
- }
- });
tvQuickSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -265,6 +257,16 @@ public class DetailActivity extends BaseActivity {
}
}
});
+ tvPlayUrl.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //获取剪切板管理器
+ ClipboardManager cm = (ClipboardManager)getSystemService(mContext.CLIPBOARD_SERVICE);
+ //设置内容到剪切板
+ cm.setPrimaryClip(ClipData.newPlainText(null, tvPlayUrl.getText().toString().replace("播放地址: ","")));
+ Toast.makeText(DetailActivity.this, "已复制", Toast.LENGTH_SHORT).show();
+ }
+ });
mGridView.setOnItemListener(new TvRecyclerView.OnItemListener() {
@Override
public void onItemPreSelected(TvRecyclerView parent, View itemView, int position) {
@@ -529,7 +531,7 @@ public class DetailActivity extends BaseActivity {
flag.selected = false;
}
//设置播放地址
- setTextShow(tvPlayUrl, "播放地址:", vodInfo.seriesMap.get(vodInfo.playFlag).get(0).url);
+ setTextShow(tvPlayUrl, "播放地址: ", vodInfo.seriesMap.get(vodInfo.playFlag).get(0).url);
seriesFlagAdapter.setNewData(vodInfo.seriesFlags);
mGridViewFlag.scrollToPosition(flagScrollTo);
@@ -551,6 +553,7 @@ public class DetailActivity extends BaseActivity {
llPlayerFragmentContainer.setVisibility(View.GONE);
llPlayerFragmentContainerBlock.setVisibility(View.GONE);
}
+ if(absXml != null && absXml.msg != null && !absXml.msg.isEmpty())Toast.makeText(DetailActivity.this, absXml.msg, Toast.LENGTH_SHORT).show();
}
});
}
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 38ae9c6e..d16edbf5 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
@@ -288,6 +288,7 @@ public class PlayActivity extends BaseActivity {
String url = info.getString("url");
HashMap headers = null;
webUserAgent = null;
+ webHeaderMap = null;
if (info.has("header")) {
try {
JSONObject hds = new JSONObject(info.getString("header"));
@@ -302,6 +303,7 @@ public class PlayActivity extends BaseActivity {
webUserAgent = hds.getString(key).trim();
}
}
+ webHeaderMap = headers;
} catch (Throwable th) {
}
@@ -508,6 +510,7 @@ public class PlayActivity extends BaseActivity {
private String parseFlag;
private String webUrl;
private String webUserAgent;
+ private Map webHeaderMap;
private void initParse(String flag, boolean useParse, String playUrl, final String url) {
parseFlag = flag;
@@ -850,22 +853,31 @@ public class PlayActivity extends BaseActivity {
@Override
public void run() {
// webUserAgent = "Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36";
- String ua = webUserAgent;
if (mXwalkWebView != null) {
mXwalkWebView.stopLoading();
- if(ua != null) {
- mXwalkWebView.getSettings().setUserAgentString(ua);
+ Map map = new HashMap() ;
+
+ if(webUserAgent != null) {
+ mXwalkWebView.getSettings().setUserAgentString(webUserAgent);
}
//mXwalkWebView.clearCache(true);
- mXwalkWebView.loadUrl(url);
+ if(webHeaderMap != null){
+ mXwalkWebView.loadUrl(url,webHeaderMap);
+ }else {
+ mXwalkWebView.loadUrl(url);
+ }
}
if (mSysWebView != null) {
mSysWebView.stopLoading();
- if(ua != null) {
- mSysWebView.getSettings().setUserAgentString(ua);
+ if(webUserAgent != null) {
+ mSysWebView.getSettings().setUserAgentString(webUserAgent);
}
//mSysWebView.clearCache(true);
- mSysWebView.loadUrl(url);
+ if(webHeaderMap != null){
+ mSysWebView.loadUrl(url,webHeaderMap);
+ }else {
+ mSysWebView.loadUrl(url);
+ }
}
}
});
@@ -987,7 +999,7 @@ public class PlayActivity extends BaseActivity {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
// settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
- settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
+ settings.setCacheMode(WebSettings.LOAD_DEFAULT);
/* 添加webView配置 */
//设置编码
settings.setDefaultTextEncodingName("utf-8");
@@ -1148,7 +1160,7 @@ public class PlayActivity extends BaseActivity {
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(false);
// settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
- settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
+ settings.setCacheMode(WebSettings.LOAD_DEFAULT);
// settings.setUserAgentString(ANDROID_UA);
webView.setBackgroundColor(Color.BLACK);
diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java
index b8aa8b53..e9665332 100644
--- a/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java
+++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/SearchActivity.java
@@ -1,6 +1,7 @@
package com.github.tvbox.osc.ui.activity;
import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
@@ -8,6 +9,7 @@ import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -82,6 +84,8 @@ public class SearchActivity extends BaseActivity {
return R.layout.activity_search;
}
+
+ private static Boolean hasKeyBoard;
@Override
protected void init() {
disableKeyboard(SearchActivity.this);
@@ -95,6 +99,7 @@ public class SearchActivity extends BaseActivity {
* @param activity Activity
*/
public static void disableKeyboard(Activity activity) {
+ hasKeyBoard = false;
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
@@ -103,9 +108,15 @@ public class SearchActivity extends BaseActivity {
* @param activity Activity
*/
public static void enableKeyboard(Activity activity) {
+ hasKeyBoard = true;
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}
+ public void openSystemKeyBoard() {
+ InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.showSoftInput(this.getCurrentFocus(), InputMethodManager.SHOW_FORCED);
+ }
+
private List pauseRunnable = null;
@Override
@@ -196,7 +207,8 @@ public class SearchActivity extends BaseActivity {
@Override
public void onClick(View v) {
// Toast.makeText(mContext,"点击",Toast.LENGTH_SHORT).show();
- enableKeyboard(SearchActivity.this);
+ if(!hasKeyBoard)enableKeyboard(SearchActivity.this);
+ openSystemKeyBoard();//再次尝试拉起键盘
SearchActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
});
@@ -429,8 +441,8 @@ public class SearchActivity extends BaseActivity {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
int keyCode = event.getKeyCode();
if (keyCode == KeyEvent.KEYCODE_MENU) {
-// Toast.makeText(mContext,"菜单键",Toast.LENGTH_SHORT).show();
- enableKeyboard(SearchActivity.this);
+ if(!hasKeyBoard)enableKeyboard(SearchActivity.this);
+ openSystemKeyBoard();//再次尝试拉起键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
} else if (event.getAction() == KeyEvent.ACTION_UP) {
diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java
index 25713dbd..adc67a13 100644
--- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java
+++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java
@@ -30,6 +30,8 @@ import com.owen.tvrecyclerview.widget.V7GridLayoutManager;
import com.owen.tvrecyclerview.widget.V7LinearLayoutManager;
import java.util.Stack;
import android.view.ViewGroup;
+import android.widget.Toast;
+
/**
* @author pj567
* @date :2020/12/21
@@ -202,7 +204,11 @@ public class GridFragment extends BaseLazyFragment {
else if(homeSourceBean.isQuickSearch() && Hawk.get(HawkConfig.FAST_SEARCH_MODE, false) && enableFastSearch()){
jumpActivity(FastSearchActivity.class, bundle);
}else{
- jumpActivity(DetailActivity.class, bundle);
+ if(video.id == null || video.id.isEmpty()){
+ jumpActivity(SearchActivity.class, bundle);
+ }else {
+ jumpActivity(DetailActivity.class, bundle);
+ }
}
}
@@ -233,7 +239,11 @@ public class GridFragment extends BaseLazyFragment {
if(page == 1){
showEmpty();
}
+ if(page > maxPage){
+ Toast.makeText(getContext(), "没有更多了", Toast.LENGTH_SHORT).show();
+ }
}
+ if(absXml != null && absXml.msg != null && !absXml.msg.isEmpty())Toast.makeText(getContext(), absXml.msg, Toast.LENGTH_SHORT).show();
if (page > maxPage) {
gridAdapter.loadMoreEnd();
} else {
@@ -250,6 +260,7 @@ public class GridFragment extends BaseLazyFragment {
private void initData() {
showLoading();
isLoad = false;
+ scrollTop();
sourceViewModel.getList(sortData, page);
}
diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java
index 7cebffd3..ac10b3ff 100644
--- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java
+++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java
@@ -286,6 +286,7 @@ public class PlayFragment extends BaseLazyFragment {
String url = info.getString("url");
HashMap headers = null;
webUserAgent = null;
+ webHeaderMap = null;
if (info.has("header")) {
try {
JSONObject hds = new JSONObject(info.getString("header"));
@@ -300,6 +301,7 @@ public class PlayFragment extends BaseLazyFragment {
webUserAgent = hds.getString(key).trim();
}
}
+ webHeaderMap = headers;
} catch (Throwable th) {
}
@@ -520,6 +522,7 @@ public class PlayFragment extends BaseLazyFragment {
private String parseFlag;
private String webUrl;
private String webUserAgent;
+ private Map webHeaderMap;
private void initParse(String flag, boolean useParse, String playUrl, final String url) {
parseFlag = flag;
@@ -864,22 +867,29 @@ public class PlayFragment extends BaseLazyFragment {
@Override
public void run() {
// webUserAgent = "Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36";
- String ua = webUserAgent;
if (mXwalkWebView != null) {
mXwalkWebView.stopLoading();
- if(ua != null) {
- mXwalkWebView.getSettings().setUserAgentString(ua);
+ if(webUserAgent != null) {
+ mXwalkWebView.getSettings().setUserAgentString(webUserAgent);
}
//mXwalkWebView.clearCache(true);
- mXwalkWebView.loadUrl(url);
+ if(webHeaderMap != null){
+ mXwalkWebView.loadUrl(url,webHeaderMap);
+ }else {
+ mXwalkWebView.loadUrl(url);
+ }
}
if (mSysWebView != null) {
mSysWebView.stopLoading();
- if(ua != null) {
- mSysWebView.getSettings().setUserAgentString(ua);
+ if(webUserAgent != null) {
+ mSysWebView.getSettings().setUserAgentString(webUserAgent);
}
//mSysWebView.clearCache(true);
- mSysWebView.loadUrl(url);
+ if(webHeaderMap != null){
+ mSysWebView.loadUrl(url,webHeaderMap);
+ }else {
+ mSysWebView.loadUrl(url);
+ }
}
}
});
@@ -1001,7 +1011,7 @@ public class PlayFragment extends BaseLazyFragment {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
// settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
- settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
+ settings.setCacheMode(WebSettings.LOAD_DEFAULT);
/* 添加webView配置 */
//设置编码
settings.setDefaultTextEncodingName("utf-8");
@@ -1162,7 +1172,7 @@ public class PlayFragment extends BaseLazyFragment {
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(false);
// settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
- settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
+ settings.setCacheMode(WebSettings.LOAD_DEFAULT);
// settings.setUserAgentString(ANDROID_UA);
webView.setBackgroundColor(Color.BLACK);
diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java
index 21546595..38edfde1 100644
--- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java
+++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java
@@ -16,6 +16,7 @@ import com.github.tvbox.osc.cache.RoomDataManger;
import com.github.tvbox.osc.event.ServerEvent;
import com.github.tvbox.osc.ui.activity.CollectActivity;
import com.github.tvbox.osc.ui.activity.DetailActivity;
+import com.github.tvbox.osc.ui.activity.FastSearchActivity;
import com.github.tvbox.osc.ui.activity.HistoryActivity;
import com.github.tvbox.osc.ui.activity.LivePlayActivity;
import com.github.tvbox.osc.ui.activity.PushActivity;
@@ -128,9 +129,19 @@ public class UserFragment extends BaseLazyFragment implements View.OnClickListen
Bundle bundle = new Bundle();
bundle.putString("id", vod.id);
bundle.putString("sourceKey", vod.sourceKey);
- jumpActivity(DetailActivity.class, bundle);
+ if(Hawk.get(HawkConfig.HOME_REC, 0)==1 && Hawk.get(HawkConfig.FAST_SEARCH_MODE, false)){
+ bundle.putString("title", vod.name);
+ jumpActivity(FastSearchActivity.class, bundle);
+ }else {
+ jumpActivity(DetailActivity.class, bundle);
+ }
} else {
- Intent newIntent = new Intent(mContext, SearchActivity.class);
+ Intent newIntent;
+ if(Hawk.get(HawkConfig.FAST_SEARCH_MODE, false)){
+ newIntent = new Intent(mContext, FastSearchActivity.class);
+ }else {
+ newIntent = new Intent(mContext, SearchActivity.class);
+ }
newIntent.putExtra("title", vod.name);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
mActivity.startActivity(newIntent);
diff --git a/app/src/main/res/layout/dialog_api_history.xml b/app/src/main/res/layout/dialog_api_history.xml
index cdf231f6..d4ecbd95 100644
--- a/app/src/main/res/layout/dialog_api_history.xml
+++ b/app/src/main/res/layout/dialog_api_history.xml
@@ -35,7 +35,7 @@
android:paddingLeft="@dimen/vs_30"
android:paddingRight="@dimen/vs_30"
app:layout_constrainedHeight="true"
- app:layout_constraintHeight_max="@dimen/vs_480"
+ app:layout_constraintHeight_max="@dimen/vs_410"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title"
diff --git a/app/src/main/res/layout/dialog_grid_filter.xml b/app/src/main/res/layout/dialog_grid_filter.xml
index a55e6ac7..6b45d2ff 100644
--- a/app/src/main/res/layout/dialog_grid_filter.xml
+++ b/app/src/main/res/layout/dialog_grid_filter.xml
@@ -1,6 +1,7 @@
+ android:textSize="@dimen/ts_20" />