Merge pull request #402 from okcaptain/dev

Dev
pull/403/head^2
okcaptain 2 years ago committed by GitHub
commit 7fb8655ef9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      app/build.gradle
  2. 27
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  3. 2
      app/src/leanback/res/layout/adapter_type.xml
  4. 1
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java
  5. 6
      app/src/main/java/com/fongmi/android/tv/utils/Util.java
  6. 15
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  7. 11
      app/src/mobile/res/drawable/ic_battery_00.xml
  8. 9
      app/src/mobile/res/drawable/ic_battery_25.xml
  9. 9
      app/src/mobile/res/drawable/ic_battery_50.xml
  10. 9
      app/src/mobile/res/drawable/ic_battery_75.xml
  11. 9
      app/src/mobile/res/drawable/ic_battery_full.xml
  12. 31
      app/src/mobile/res/layout/view_control_vod.xml
  13. 1
      catvod/build.gradle
  14. 4
      catvod/src/main/java/com/github/catvod/net/OkCookieJar.java

@ -11,7 +11,7 @@ android {
minSdk 21
targetSdk 28
versionCode 233
versionName "2.3.3"
versionName "0502"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
@ -124,7 +124,7 @@ dependencies {
implementation 'com.github.bumptech.glide:okhttp3-integration:4.16.0'
implementation 'com.github.ctiao:DanmakuFlameMaster:0.9.25'
implementation 'com.github.jahirfiquitiva:TextDrawable:1.0.3'
implementation('com.github.TeamNewPipe:NewPipeExtractor:v0.23.1') { exclude group: 'org.jsoup', module: 'jsoup' }
implementation('com.github.teamnewpipe:NewPipeExtractor:v0.23.1') { exclude group: 'org.jsoup', module: 'jsoup' }
implementation 'com.github.thegrizzlylabs:sardine-android:0.9'
implementation 'com.google.android.material:material:1.11.0'
implementation 'com.google.net.cronet:cronet-okhttp:0.1.0'

@ -145,7 +145,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private boolean initAuto;
private boolean autoMode;
private boolean useParse;
private int currentFlag;
private int toggleCount;
private int groupSize;
private Runnable mR1;
@ -250,13 +249,18 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private Flag getFlag() {
return (Flag) mFlagAdapter.get(mBinding.flag.getSelectedPosition());
return (Flag) mFlagAdapter.get(getFlagPosition());
}
private Episode getEpisode() {
return (Episode) mEpisodeAdapter.get(getEpisodePosition());
}
private int getFlagPosition() {
for (int i = 0; i < mFlagAdapter.size(); i++) if (((Flag) mFlagAdapter.get(i)).isActivated()) return i;
return 0;
}
private int getEpisodePosition() {
for (int i = 0; i < mEpisodeAdapter.size(); i++) if (((Episode) mEpisodeAdapter.get(i)).isActivated()) return i;
return 0;
@ -699,13 +703,12 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
public void setEpisodeActivated(Episode item) {
int flagPosition = getFlagPosition();
if (shouldEnterFullscreen(item)) return;
setCurrentFlag(mBinding.flag.getSelectedPosition());
for (int i = 0; i < mFlagAdapter.size(); i++) ((Flag) mFlagAdapter.get(i)).toggle(getCurrentFlag() == i, item);
if (isFullscreen()) Notify.show(getString(R.string.play_ready, item.getName()));
for (int i = 0; i < mFlagAdapter.size(); i++) ((Flag) mFlagAdapter.get(i)).toggle(flagPosition == i, item);
setEpisodeSelectedPosition(getEpisodePosition());
notifyItemChanged(getEpisodeView(), mEpisodeAdapter);
if (mEpisodeAdapter.size() == 0) return;
if (isFullscreen()) Notify.show(getString(R.string.play_ready, item.getName()));
onRefresh();
}
@ -824,7 +827,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mBinding.video.requestFocus();
mBinding.video.setForeground(null);
mBinding.video.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
mBinding.flag.setSelectedPosition(getCurrentFlag());
mBinding.flag.setSelectedPosition(getFlagPosition());
mDanmakuContext.setScaleTextSize(1.2f * Setting.getDanmuSize());
setSubtitle(Setting.getSubtitle());
mKeyDown.setFull(true);
@ -1431,7 +1434,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void checkFlag() {
int position = isGone(mBinding.flag) ? -1 : mBinding.flag.getSelectedPosition();
int position = isGone(mBinding.flag) ? -1 : getFlagPosition();
if (position == mFlagAdapter.size() - 1) checkSearch(false);
else nextFlag(position);
}
@ -1582,14 +1585,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
this.useParse = useParse;
}
public int getCurrentFlag() {
return currentFlag;
}
public void setCurrentFlag(int currentFlag) {
this.currentFlag = currentFlag;
}
public int getToggleCount() {
return toggleCount;
}

@ -9,5 +9,5 @@
android:focusableInTouchMode="true"
android:gravity="center"
android:textColor="@color/white"
android:textSize="18sp"
android:textSize="16sp"
tools:text="電影" />

@ -14,7 +14,6 @@ import com.tencent.smtt.export.external.interfaces.SslError;
import com.tencent.smtt.export.external.interfaces.SslErrorHandler;
import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
import com.tencent.smtt.export.external.interfaces.WebResourceResponse;
import com.tencent.smtt.sdk.CookieManager;
import com.tencent.smtt.sdk.QbSdk;
import com.tencent.smtt.sdk.WebChromeClient;
import com.tencent.smtt.sdk.WebView;

@ -10,6 +10,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
import android.os.BatteryManager;
import android.os.Build;
import android.os.IBinder;
import android.os.Parcelable;
@ -180,4 +181,9 @@ public class Util {
return false;
}
public static int batteryLevel() {
BatteryManager batteryManager = (BatteryManager) App.get().getSystemService(Context.BATTERY_SERVICE);
return batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
}
}

@ -107,6 +107,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@ -310,7 +311,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mObserveSearch = this::setSearch;
mDialogs = new ArrayList<>();
mBroken = new ArrayList<>();
mClock = Clock.create(mBinding.display.time);
mClock = Clock.create(Arrays.asList(mBinding.display.time, mBinding.control.time));
mR0 = this::stopService;
mR1 = this::hideControl;
mR2 = this::setTraffic;
@ -1029,6 +1030,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.danmu.setVisibility(isLock() || !mBinding.danmaku.isPrepared() ? View.GONE : View.VISIBLE);
mBinding.control.danmuSetting.setVisibility(isLock() || !Setting.isDanmuLoad() || !isVisible(mBinding.danmaku) ? View.GONE : View.VISIBLE);
mBinding.control.setting.setVisibility(mHistory == null || isFullscreen() ? View.GONE : View.VISIBLE);
mBinding.control.batteryInfo.setVisibility(isFullscreen() ? View.VISIBLE : View.GONE);
mBinding.control.right.rotate.setVisibility(isFullscreen() && !isLock() ? View.VISIBLE : View.GONE);
mBinding.control.keep.setVisibility(mHistory == null ? View.GONE : View.VISIBLE);
mBinding.control.right.back.setVisibility(isFullscreen() && !isLock() ? View.VISIBLE : View.GONE);
@ -1043,6 +1045,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.getRoot().setVisibility(View.VISIBLE);
showDisplayInfo();
checkPlayImg(mPlayers.isPlaying());
checkBatteryImg();
setR1Callback();
}
@ -1173,6 +1176,16 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.danmu.setImageResource(Setting.isDanmu() ? R.drawable.ic_control_danmu_on : R.drawable.ic_control_danmu_off);
}
private void checkBatteryImg() {
int batteryLevel = Util.batteryLevel();
int resId = R.drawable.ic_battery_00;
if (batteryLevel >= 90) resId = R.drawable.ic_battery_full;
else if (batteryLevel >= 60) resId = R.drawable.ic_battery_75;
else if (batteryLevel >= 40) resId = R.drawable.ic_battery_50;
else if (batteryLevel >= 10) resId = R.drawable.ic_battery_25;
mBinding.control.battery.setImageResource(resId);
}
private void createKeep() {
Keep keep = new Keep();
keep.setKey(getHistoryKey());

@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="#ffffff"
android:pathData="M938.7,426.7l0,-85.3c0,-46.9 -38.4,-85.3 -85.3,-85.3L128,256c-46.9,0 -85.3,38.4 -85.3,85.3l0,341.3c0,46.9 38.4,85.3 85.3,85.3l725.3,0c46.9,0 85.3,-38.4 85.3,-85.3l0,-85.3c23.5,0 42.7,-19.2 42.7,-42.7l0,-85.3C981.3,445.9 962.1,426.7 938.7,426.7zM896,469.3l0,85.3 0,128c0,23.5 -19.2,42.7 -42.7,42.7L128,725.3c-23.5,0 -42.7,-19.2 -42.7,-42.7L85.3,341.3c0,-23.5 19.2,-42.7 42.7,-42.7l725.3,0c23.5,0 42.7,19.2 42.7,42.7L896,469.3z" />
</vector>

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M128,682.7l213.3,0L341.3,341.3 128,341.3 128,682.7zM938.7,426.7l0,-85.3c0,-46.9 -38.4,-85.3 -85.3,-85.3L128,256c-46.9,0 -85.3,38.4 -85.3,85.3l0,341.3c0,46.9 38.4,85.3 85.3,85.3l725.3,0c46.9,0 85.3,-38.4 85.3,-85.3l0,-85.3c23.5,0 42.7,-19.2 42.7,-42.7l0,-85.3C981.3,445.9 962.1,426.7 938.7,426.7zM896,682.7c0,23.5 -19.2,42.7 -42.7,42.7L128,725.3c-23.5,0 -42.7,-19.2 -42.7,-42.7L85.3,341.3c0,-23.5 19.2,-42.7 42.7,-42.7l725.3,0c23.5,0 42.7,19.2 42.7,42.7L896,682.7z"
android:fillColor="#ffffff"/>
</vector>

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M938.7,426.7l0,-85.3c0,-46.9 -38.4,-85.3 -85.3,-85.3L128,256c-46.9,0 -85.3,38.4 -85.3,85.3l0,341.3c0,46.9 38.4,85.3 85.3,85.3l725.3,0c46.9,0 85.3,-38.4 85.3,-85.3l0,-85.3c23.5,0 42.7,-19.2 42.7,-42.7l0,-85.3C981.3,445.9 962.1,426.7 938.7,426.7zM896,682.7c0,23.5 -19.2,42.7 -42.7,42.7L128,725.3c-23.5,0 -42.7,-19.2 -42.7,-42.7L85.3,341.3c0,-23.5 19.2,-42.7 42.7,-42.7l725.3,0c23.5,0 42.7,19.2 42.7,42.7L896,682.7zM128,682.7l384,0L512,341.3 128,341.3 128,682.7z"
android:fillColor="#ffffff"/>
</vector>

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M938.7,426.7l0,-85.3c0,-46.9 -38.4,-85.3 -85.3,-85.3L128,256c-46.9,0 -85.3,38.4 -85.3,85.3l0,341.3c0,46.9 38.4,85.3 85.3,85.3l725.3,0c46.9,0 85.3,-38.4 85.3,-85.3l0,-85.3c23.5,0 42.7,-19.2 42.7,-42.7l0,-85.3C981.3,445.9 962.1,426.7 938.7,426.7zM896,469.3l0,85.3 0,128c0,23.5 -19.2,42.7 -42.7,42.7L128,725.3c-23.5,0 -42.7,-19.2 -42.7,-42.7L85.3,341.3c0,-23.5 19.2,-42.7 42.7,-42.7l725.3,0c23.5,0 42.7,19.2 42.7,42.7L896,469.3zM128,682.7l554.7,0L682.7,341.3 128,341.3 128,682.7z"
android:fillColor="#ffffff"/>
</vector>

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M128,682.7l725.3,0L853.3,341.3 128,341.3 128,682.7zM938.7,426.7l0,-85.3c0,-46.9 -38.4,-85.3 -85.3,-85.3L128,256c-46.9,0 -85.3,38.4 -85.3,85.3l0,341.3c0,46.9 38.4,85.3 85.3,85.3l725.3,0c46.9,0 85.3,-38.4 85.3,-85.3l0,-85.3c23.5,0 42.7,-19.2 42.7,-42.7l0,-85.3C981.3,445.9 962.1,426.7 938.7,426.7zM896,469.3l0,85.3 0,128c0,23.5 -19.2,42.7 -42.7,42.7L128,725.3c-23.5,0 -42.7,-19.2 -42.7,-42.7L85.3,341.3c0,-23.5 19.2,-42.7 42.7,-42.7l725.3,0c23.5,0 42.7,19.2 42.7,42.7L896,469.3z"
android:fillColor="#ffffff"/>
</vector>

@ -79,6 +79,37 @@
android:padding="8dp"
android:src="@drawable/ic_control_setting" />
<LinearLayout
android:id="@+id/batteryInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="8dp"
android:orientation="vertical">
<ImageView
android:id="@+id/battery"
android:layout_width="22dp"
android:layout_height="16dp"
android:layout_gravity="center"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_battery_full" />
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:layout_gravity="center"
android:textSize="8sp"
android:maxLength="5"
android:layout_marginTop="-4dp"
android:background="?attr/selectableItemBackgroundBorderless"
tools:text="20:00:00" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

@ -20,4 +20,5 @@ dependencies {
api 'com.squareup.okhttp3:okhttp:' + okhttpVersion
api 'com.squareup.okhttp3:okhttp-dnsoverhttps:' + okhttpVersion
api 'org.nanohttpd:nanohttpd:2.3.1'
api 'com.tencent.tbs:tbssdk:44286'
}

@ -1,8 +1,8 @@
package com.github.catvod.net;
import android.text.TextUtils;
import android.webkit.CookieManager;
import android.webkit.WebView;
import com.tencent.smtt.sdk.CookieManager;
import com.tencent.smtt.sdk.WebView;
import androidx.annotation.NonNull;

Loading…
Cancel
Save