This commit is contained in:
guozhen 2025-05-06 14:06:15 +08:00
parent 2c4a7af616
commit 0c5d7e888b
14 changed files with 1013 additions and 750 deletions

View File

@ -4,8 +4,9 @@ plugins {
// alias(libs.plugins.firebase.crashlytics)
// alias(libs.plugins.firebase.perf)
id("com.google.gms.google-services")
// id("com.google.firebase.crashlytics")
id("com.google.firebase.firebase-perf")
// id("com.google.firebase.crashlytics")
}
@ -120,7 +121,7 @@ dependencies {
// implementation platform(libs.firebase.bom)
implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
implementation("com.google.firebase:firebase-analytics")
// implementation("com.google.firebase:firebase-crashlytics")
// implementation("com.google.firebase:firebase-crashlytics")
implementation("com.google.firebase:firebase-perf")
implementation("com.google.firebase:firebase-messaging:24.0.0")
}

View File

@ -69,7 +69,7 @@ public class GPplicationLoadingdefault extends Application {
@Override
public void onActivityStopped(@NonNull Activity activity) {
activityCount--;
if (activityCount < 0 && !isBackground) {
if (activityCount <= 0 && !isBackground) {
isBackground = true;
EventBus.getDefault().post(ITItem.Constants_AppLeave);
}
@ -91,6 +91,12 @@ public class GPplicationLoadingdefault extends Application {
}
@Override
public void onTerminate() {
EventBus.getDefault().post(ITItem.Constants_AppLeave);
LogUtils.d("onTerminate called");
super.onTerminate();
}
public void initAdjustSdk() {
String appToken = "13rbja4f9jts";

View File

@ -0,0 +1,67 @@
package com.shortdrama.jelly.zyreotv.beginning;
import android.content.Context;
import androidx.annotation.OptIn;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.database.StandaloneDatabaseProvider;
import androidx.media3.datasource.DataSource;
import androidx.media3.datasource.DefaultHttpDataSource;
import androidx.media3.datasource.cache.CacheDataSource;
import androidx.media3.datasource.cache.LeastRecentlyUsedCacheEvictor;
import androidx.media3.datasource.cache.SimpleCache;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class GSExplayCacheUtils {
private static DataSource.Factory cacheFactory = null;
@OptIn(markerClass = UnstableApi.class)
public static DataSource.Factory getCacheFactory(Context ctx) {
Map<String, Boolean> buffer0 = new HashMap<>();
buffer0.put("indentation", true);
buffer0.put("steal", false);
buffer0.put("xuvmvs", true);
buffer0.put("preupdate", true);
while (buffer0.size() > 12) {
break;
}
if (cacheFactory == null) {
long bufferQ = 3816L;
if (bufferQ <= 180L) {
// do nothing
}
File settingClientListen = new File(ctx.getFilesDir(), "videos");
String modityY = "types";
while (modityY.length() > 25) {
break;
}
SimpleCache backgroundTouchSingle = new SimpleCache(
settingClientListen,
new LeastRecentlyUsedCacheEvictor(1024L * 1024L * 512L),
new StandaloneDatabaseProvider(ctx)
);
int progressbarB = 3948;
while (progressbarB > 151) {
break;
}
System.out.println(progressbarB);
cacheFactory = new CacheDataSource.Factory()
.setCache(backgroundTouchSingle)
.setUpstreamDataSourceFactory(new DefaultHttpDataSource.Factory())
.setFlags(CacheDataSource.FLAG_IGNORE_CACHE_ON_ERROR);
}
return cacheFactory;
}
}

View File

@ -0,0 +1,67 @@
package com.shortdrama.jelly.zyreotv.beginning;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import androidx.core.util.Pair;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ImageUtils {
public static Bitmap getRoundedTopCornerBitmap(Bitmap bitmap, float roundPx) {
Bitmap countService = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas prigressApiDetails = new Canvas(countService);
Paint paint = new Paint();
int bufferq = -0xbdbdbe;
Map<String, Float> direHj = new HashMap<>();
direHj.put("fiel", 647.0f);
direHj.put("preset", 849.0f);
direHj.put("codecraw", 529.0f);
direHj.put("opt", 690.0f);
direHj.put("role", 15.0f);
Rect boldTotalRight = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
RectF daysh = new RectF(boldTotalRight);
// daysh.right = roundPx;
// daysh.bottom = roundPx;
Map<String, Float> removeX = new HashMap<>();
removeX.put("announcement", 959.0f);
removeX.put("avatar", 5.0f);
removeX.put("trending", 83.0f);
removeX.put("tapt", 79.0f);
paint.setAntiAlias(true);
prigressApiDetails.drawARGB(0, 0, 0, 0);
paint.setColor(bufferq);
prigressApiDetails.drawRoundRect(daysh, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
prigressApiDetails.drawBitmap(bitmap, boldTotalRight, boldTotalRight, paint);
return countService;
}
}

View File

@ -192,9 +192,9 @@ public interface KGZyreotv {
@GET("getCustomerOrder")
Observable<IMACloseStroke<ZYTCommonListBean<ZYTUserTypeRecordsBean>>> getOrder(@Query("buy_type") String buytype, @Query("current_page") int currentPage, @Query("page_size") int pageSize);
@GET("sendCoinList")
Observable<IMACloseStroke<ZYTCommonListBean<ZYTUserSendCoinsBean>>> getSendOrder(@Query("current_page") int currentPage, @Query("page_size") int pageSize);
@FormUrlEncoded
@POST("sendCoinList")
Observable<IMACloseStroke<ZYTCommonListBean<ZYTUserSendCoinsBean>>> getSendOrder(@Field("current_page") int currentPage, @Field("page_size") int pageSize);
@FormUrlEncoded

View File

@ -717,14 +717,34 @@ public class GXCProgressLogin extends ViewModel {
VZBack.getInstance().enterApp()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
.subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
}
public void leaveApp() {
VZBack.getInstance().leaveApp()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
.subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
}
@ -732,7 +752,17 @@ public class GXCProgressLogin extends ViewModel {
VZBack.getInstance().onLine()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
.subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
}
@ -740,7 +770,17 @@ public class GXCProgressLogin extends ViewModel {
VZBack.getInstance().actionPush(name)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
.subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
}
@ -886,7 +926,17 @@ public class GXCProgressLogin extends ViewModel {
VZBack.getInstance().openNotify()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
.subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
}
public void logoOff() {

View File

@ -110,6 +110,7 @@ public class ZYTWalletActivity extends IDDetailsRoundActivity<ActivityWalletZytB
binding.recyclerviewSelected.setVisibility(GONE);
});
binding.smartrefreshlayoutMywallet.setOnLoadMoreListener(refreshLayout -> {
currentPage++;
requestData();
binding.recyclerviewSelected.setVisibility(GONE);

View File

@ -1203,13 +1203,33 @@ public class XSLockPlaylist extends ViewModel {
VZBack.getInstance().uploadHistorySenconds(lastseconds, shortplayId, videoId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
.subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
}
public void activeAfterWatchingVideo(int shortplayid, int videoid, int activityId) {
VZBack.getInstance().activeAfterWatchingVideo(shortplayid, videoid, activityId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
.subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
}
}

View File

@ -30,6 +30,7 @@ import androidx.media3.datasource.DataSource;
import androidx.media3.datasource.DefaultDataSourceFactory;
import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.exoplayer.hls.HlsMediaSource;
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
import androidx.recyclerview.widget.RecyclerView;
@ -38,7 +39,9 @@ import androidx.viewpager2.widget.ViewPager2;
import com.bumptech.glide.Glide;
import com.shortdrama.jelly.zyreotv.GPplicationLoadingdefault;
import com.shortdrama.jelly.zyreotv.R;
import com.shortdrama.jelly.zyreotv.beginning.GSExplayCacheUtils;
import com.shortdrama.jelly.zyreotv.beginning.ITItem;
import com.shortdrama.jelly.zyreotv.beginning.LogUtils;
import com.shortdrama.jelly.zyreotv.beginning.PAYLoginHeaddefault;
import com.shortdrama.jelly.zyreotv.beginning.REnterCircle;
import com.shortdrama.jelly.zyreotv.beginning.TIndicator;
@ -67,6 +70,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Objects;
public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDimensHeaderBinding> implements
WVideoplay.QUnitActivity, CClickFragment.EONCategory {
@ -122,6 +126,7 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
}
@OptIn(markerClass = UnstableApi.class)
@Override
public void initView() {
viewBinding.avi.smoothToShow();
@ -203,9 +208,7 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
}
});
player = new ExoPlayer.Builder(this).
build();
player = new ExoPlayer.Builder(this).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(this))).build();
viewBinding.viewVideoRecommend.recommendPlayerView.setPlayer(player);
iv_cover_recommend_detail =
viewBinding.viewVideoRecommend.recommendPlayerView.findViewById(R.id.iv_cover_recommend_detail);
@ -417,7 +420,7 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
ITItem.isLock = false;
needRefresh = false;
viewBinding.viewLock.getRoot().setVisibility(View.INVISIBLE);
if (vtGooglePlayerAdapter.getItems() != null && vtGooglePlayerAdapter.getItems().get(currentPosition) != null) {
if (vtGooglePlayerAdapter.getItems().get(currentPosition) != null) {
LSQExampleCloseBean.YPZTestUnselect get = vtGooglePlayerAdapter.getItems().get(currentPosition);
get.setIs_lock(false);
vtGooglePlayerAdapter.notifyItemChanged(currentPosition);
@ -513,9 +516,9 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
}
PAYLoginHeaddefault.revealToast(getString(R.string.google_pay_success), 0);
needRefresh = true;
// LSQExampleCloseBean.YPZTestUnselect item = vtGooglePlayerAdapter.getItems().get(currentPosition);
// vtViewModel.getVideoDetails(item.getShort_play_id(), item.getShort_play_video_id());
userViewModel.getUserInfo();
// LSQExampleCloseBean.YPZTestUnselect item = vtGooglePlayerAdapter.getItems().get(currentPosition);
// vtViewModel.getVideoDetails(item.getShort_play_id(), item.getShort_play_video_id(),activity_id);
}
@ -531,6 +534,7 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
if (data.isIs_vip() && needRefresh) {
detailRefresh();
}
}
}
@ -610,8 +614,7 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
// 假设 pageGoogleExoPlayerView 方法在父类或者其他地方有定义
private BVXHeadView pageGoogleExoPlayerView() {
RecyclerView recyclerView = (RecyclerView) viewBinding.viewPagerVtEpisode.getChildAt(0);
BVXHeadView googleExoPlayerView = (BVXHeadView) recyclerView.getLayoutManager().findViewByPosition(currentPosition);
return googleExoPlayerView;
return (BVXHeadView) Objects.requireNonNull(recyclerView.getLayoutManager()).findViewByPosition(currentPosition);
}
@Subscribe(threadMode = ThreadMode.MAIN)
@ -764,19 +767,23 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
@Override
protected void onDestroy() {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
ITItem.isCanPlay = false;
zytGooglePayUtils.clearInstance();
viewBinding.viewPagerVtEpisode.post(new Runnable() {
@Override
public void run() {
if (pageGoogleExoPlayerView() != null) {
LogUtils.d("pageGoogleExoPlayerView() != null");
pageGoogleExoPlayerView().stop();
pageGoogleExoPlayerView().release();
pageGoogleExoPlayerView().setPlayerNull();
}
player.stop();
player.release();
player = null;
if (pageGoogleExoPlayerView() != null) pageGoogleExoPlayerView().stop();
if (pageGoogleExoPlayerView() != null) pageGoogleExoPlayerView().release();
}
});
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
zytGooglePayUtils.clearInstance();
super.onDestroy();
EventBus.getDefault().unregister(this);
System.gc();

View File

@ -10,6 +10,7 @@ import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import androidx.annotation.OptIn;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatSeekBar;
import androidx.appcompat.widget.AppCompatTextView;
@ -17,12 +18,16 @@ import androidx.media3.common.C;
import androidx.media3.common.MediaItem;
import androidx.media3.common.PlaybackException;
import androidx.media3.common.Player;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
import com.bumptech.glide.Glide;
import com.shortdrama.jelly.zyreotv.GPplicationLoadingdefault;
import com.shortdrama.jelly.zyreotv.R;
import com.shortdrama.jelly.zyreotv.beginning.GSExplayCacheUtils;
import com.shortdrama.jelly.zyreotv.beginning.ITItem;
import com.shortdrama.jelly.zyreotv.beginning.LogUtils;
import com.shortdrama.jelly.zyreotv.beginning.PAYLoginHeaddefault;
import com.shortdrama.jelly.zyreotv.beginning.TimeUtils;
import com.shortdrama.jelly.zyreotv.beginning.XYBGoryShare;
@ -61,9 +66,10 @@ public class BVXHeadView extends FrameLayout {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
@OptIn(markerClass = UnstableApi.class)
public BVXHeadView(Context context, AttributeSet attrs) {
super(context, attrs);
player = new ExoPlayer.Builder(context).build();
player = new ExoPlayer.Builder(context).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(context))).build();
LayoutInflater inflater = LayoutInflater.from(context);
View inflate = inflater.inflate(R.layout.kbv_follow_unit, this, true);
KbvFollowUnitBinding bind = KbvFollowUnitBinding.bind(inflate);
@ -141,7 +147,7 @@ public class BVXHeadView extends FrameLayout {
ivPagePlay.setImageResource(R.mipmap.search_tablist_service);
start();
}
}else{
} else {
EventBus.getDefault().post(ITItem.Constants_Clock_Click);
}
});
@ -161,7 +167,7 @@ public class BVXHeadView extends FrameLayout {
progressRunnable = new Runnable() {
@Override
public void run() {
if (!isDragging) {
if (!isDragging&&player!=null) {
long duration = player.getDuration();
long position = player.getCurrentPosition();
int progress = (int) (position * 100 / (duration == C.TIME_UNSET ? 1 : duration));
@ -264,10 +270,13 @@ public class BVXHeadView extends FrameLayout {
}
public void suspendPlayer() {
player.pause();
ivPagePlay.setImageResource(R.mipmap.cate_playinfo);
isEpisodePlaying = false;
isDragging = true;
if(player!=null){
player.pause();
ivPagePlay.setImageResource(R.mipmap.cate_playinfo);
isEpisodePlaying = false;
isDragging = true;
}
}
private void seekTo(int progress) {
@ -315,7 +324,11 @@ public class BVXHeadView extends FrameLayout {
}
public void release() {
player.release();
stopProgressJob();
player.release();
}
public void setPlayerNull(){
player=null;
}
}

View File

@ -59,10 +59,10 @@ public class ZYTCommonRecordsAdapter<T>
name = typeRecordsBean.getType();
time = typeRecordsBean.getCreated_at();
value = "+" + typeRecordsBean.getValue();
if (name.equals("vip") || name.equals("sub_vip")) {
if (name.equals("vip") || name.equals("sub_vip")||name.equals("Subscribe or Renew")) {
name = "Purchase VIP";
binding.ivMywalletGoldItem.setVisibility(GONE);
value = "+" + typeRecordsBean.getValue() + "Day";
value = "+" + typeRecordsBean.getValue();
}
if (name.equals("buy")) {
name = "Recharge Coins";

View File

@ -2,9 +2,9 @@ package com.shortdrama.jelly.zyreotv.unconfirmedPiecewise;
public class ZYTUserTypeRecordsBean {
private String created_at;
private String type;
private int value;
public String created_at;
public String type;
public String value;
public String getCreated_at() {
return created_at;
@ -22,11 +22,11 @@ public class ZYTUserTypeRecordsBean {
this.type = type;
}
public int getValue() {
public String getValue() {
return value;
}
public void setValue(int value) {
public void setValue(String value) {
this.value = value;
}
}

View File

@ -5,6 +5,6 @@ plugins {
//alias(libs.plugins.firebase.crashlytics) apply false
//alias(libs.plugins.firebase.perf) apply false
id("com.google.gms.google-services") version "4.4.2" apply false
// id("com.google.firebase.crashlytics") version "3.0.3" apply false
// id("com.google.firebase.crashlytics") version "3.0.3" apply false
id("com.google.firebase.firebase-perf") version "1.4.2" apply false
}