修改商店UI,视频详情充值UI,修改time-zone,新增ffmpeg aar

This commit is contained in:
guozhen 2025-06-19 10:38:28 +08:00
parent a0ae51cc2a
commit 1e80a91833
52 changed files with 1842 additions and 1022 deletions

View File

@ -86,7 +86,8 @@ android {
} }
dependencies { dependencies {
//implementation fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar")))
implementation fileTree(include: ["*.jar", "*.aar"], dir: 'libs')
implementation libs.appcompat implementation libs.appcompat
implementation libs.material implementation libs.material
implementation libs.constraintlayout implementation libs.constraintlayout

Binary file not shown.

View File

@ -13,7 +13,7 @@ public class LogUtils {
} }
// public static boolean isDebug = ApiService.isDebug;// 是否需要打印bug可以在application的onCreate函数里面初始化 // public static boolean isDebug = ApiService.isDebug;// 是否需要打印bug可以在application的onCreate函数里面初始化
public static boolean isDebug = true; public static boolean isDebug = false;
// public static boolean isDebug = false;// 是否需要打印bug可以在application的onCreate函数里面初始化 // public static boolean isDebug = false;// 是否需要打印bug可以在application的onCreate函数里面初始化
private static final String TAG = "GleeStreamLog"; private static final String TAG = "GleeStreamLog";

View File

@ -34,6 +34,10 @@ public class TimeUtils {
} }
builder.append(sign); builder.append(sign);
appendNumber(builder, 2, offsetMinutes / 60); appendNumber(builder, 2, offsetMinutes / 60);
if (includeMinuteSeparatori) {
builder.append(':');
}
appendNumber(builder, 2, offsetMinutes % 60);
return builder.toString(); return builder.toString();
} }

View File

@ -38,7 +38,7 @@ public class PVideoplayRules implements Interceptor {
.addHeader("device-id", FZHeaderSingle.getUniqueId(GPplicationLoadingdefault.getAppContext())) .addHeader("device-id", FZHeaderSingle.getUniqueId(GPplicationLoadingdefault.getAppContext()))
.addHeader("system-type", "android") .addHeader("system-type", "android")
.addHeader("app-name", GPplicationLoadingdefault.getAppContext().getString(R.string.app_name)) .addHeader("app-name", GPplicationLoadingdefault.getAppContext().getString(R.string.app_name))
.addHeader("time_zone", TimeUtils.getCurrentTimeZone()) .addHeader("time-zone", TimeUtils.getCurrentTimeZone())
.addHeader("app-version", AppUtils.getPackageVersionName(GPplicationLoadingdefault.getAppContext())) .addHeader("app-version", AppUtils.getPackageVersionName(GPplicationLoadingdefault.getAppContext()))
.addHeader("model", Build.MODEL) .addHeader("model", Build.MODEL)
// .addHeader("security","false") // .addHeader("security","false")

View File

@ -28,6 +28,7 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View; import android.view.View;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
@ -817,4 +818,13 @@ public class AExtractionActivity extends IDDetailsRoundActivity<TManifestService
} }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
} }

View File

@ -66,14 +66,34 @@ public class GSAppViewModel extends ViewModel {
VZBack.getInstance().firebaseToken(token) VZBack.getInstance().firebaseToken(token)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(); .subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
} }
public void sendReport(String messageId,String title){ public void sendReport(String messageId,String title){
VZBack.getInstance().sendReport(messageId,title) VZBack.getInstance().sendReport(messageId,title)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(); .subscribe(new RREStyles<IMACloseStroke>() {
@Override
public void onSuccess(IMACloseStroke o) {
}
@Override
public void onError(int code, String msg) {
}
});
} }
} }

View File

@ -141,6 +141,7 @@ public class GSMyVipActivity extends IDDetailsRoundActivity<ActivityVipZytBindin
subVipAdapter = new ZYTStoreSubVipAdapter(); subVipAdapter = new ZYTStoreSubVipAdapter();
binding.recyclerviewMyVip.setAdapter(subVipAdapter); binding.recyclerviewMyVip.setAdapter(subVipAdapter);
subVipAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { subVipAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
subVipAdapter.setCurrentPosition(i);
ZYTPaySettingBean.Vip vip = subVipAdapter.getItem(i); ZYTPaySettingBean.Vip vip = subVipAdapter.getItem(i);
android_template_id = vip.getAndroid_template_id(); android_template_id = vip.getAndroid_template_id();
current_price = vip.getPrice(); current_price = vip.getPrice();

View File

@ -32,6 +32,7 @@ import com.shortdrama.jelly.zyreotv.beginning.ZYTGooglePayUtils;
import com.shortdrama.jelly.zyreotv.databinding.ActivityStoreBinding; import com.shortdrama.jelly.zyreotv.databinding.ActivityStoreBinding;
import com.shortdrama.jelly.zyreotv.dlsym.IMACloseStroke; import com.shortdrama.jelly.zyreotv.dlsym.IMACloseStroke;
import com.shortdrama.jelly.zyreotv.topics.abslRwgt.pragma.IDDetailsRoundActivity; import com.shortdrama.jelly.zyreotv.topics.abslRwgt.pragma.IDDetailsRoundActivity;
import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreCoinsRechargeLargeAdapter;
import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreGoldRechargeAdapter; import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreGoldRechargeAdapter;
import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreSubVipAdapter; import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreSubVipAdapter;
import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.GSGooglePayInfo; import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.GSGooglePayInfo;
@ -65,6 +66,7 @@ public class ZYTStoreActivity extends IDDetailsRoundActivity<ActivityStoreBindin
ZYTGooglePayUtils zytGooglePayUtils; ZYTGooglePayUtils zytGooglePayUtils;
ZYTStoreGoldRechargeAdapter coinAdapter; ZYTStoreGoldRechargeAdapter coinAdapter;
ZYTStoreCoinsRechargeLargeAdapter coinLargerAdapter;
ZYTStoreSubVipAdapter subVipAdapter; ZYTStoreSubVipAdapter subVipAdapter;
boolean isConnect = false; boolean isConnect = false;
@ -106,8 +108,9 @@ public class ZYTStoreActivity extends IDDetailsRoundActivity<ActivityStoreBindin
if (translates != null) { if (translates != null) {
binding.layoutStoreActionbar.tvToptitle.setText(translates.getGleestream_store()); binding.layoutStoreActionbar.tvToptitle.setText(translates.getGleestream_store());
binding.layoutStoreActionbar.tvToptitleRight.setText(translates.getGleestream_restore()); binding.layoutStoreActionbar.tvToptitleRight.setText(translates.getGleestream_restore());
binding.layoutStoreRoot.tvStoreCoinsepisode.setText(translates.getGleestream_coins()); binding.layoutStoreRoot.tvStoreVip.setText(translates.getVip() + " | " + translates.getGleestream_vip_subintroduce());
binding.layoutStoreRoot.tvStoreMembership.setText(translates.getGleestream_membership()); binding.layoutStoreRoot.tvStoreCoinsepisode.setText(translates.getGleestream_coins_recharge());
// binding.layoutStoreRoot.tvStoreMembership.setText(translates.getGleestream_membership());
binding.layoutStoreRoot.layoutVipIntroduct.tvMembershipIntroduce01.setText(translates.getGleestream_vip_introduct1()); binding.layoutStoreRoot.layoutVipIntroduct.tvMembershipIntroduce01.setText(translates.getGleestream_vip_introduct1());
binding.layoutStoreRoot.layoutVipIntroduct.tvMembershipIntroduce02.setText(translates.getGleestream_vip_introduct2()); binding.layoutStoreRoot.layoutVipIntroduct.tvMembershipIntroduce02.setText(translates.getGleestream_vip_introduct2());
binding.layoutStoreRoot.layoutVipIntroduct.tvMembershipIntroduce03.setText(translates.getGleestream_vip_introduct3()); binding.layoutStoreRoot.layoutVipIntroduct.tvMembershipIntroduce03.setText(translates.getGleestream_vip_introduct3());
@ -202,8 +205,8 @@ public class ZYTStoreActivity extends IDDetailsRoundActivity<ActivityStoreBindin
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {
coinAdapter.submitList(list); coinLargerAdapter.submitList(listCoins(list, "big"));
coinAdapter.submitList(listCoins(list, "small"));
} }
}); });
} }
@ -225,15 +228,32 @@ public class ZYTStoreActivity extends IDDetailsRoundActivity<ActivityStoreBindin
}); });
vtUserViewModel.getPaySetting(0, 0); vtUserViewModel.getPaySetting(0, 0);
zytGooglePayUtils.startConnection(connect -> isConnect = connect); zytGooglePayUtils.startConnection(connect -> isConnect = connect);
GridLayoutManager layoutManager = new GridLayoutManager(this, 2); GridLayoutManager layoutManager = new GridLayoutManager(this, 3);
binding.layoutStoreRoot.recyclerviewStore.setLayoutManager(layoutManager); GridLayoutManager layoutManagerBig = new GridLayoutManager(this, 2);
binding.layoutStoreRoot.recyclerviewStoreSmall.setLayoutManager(layoutManager);
binding.layoutStoreRoot.recyclerviewStoreLarge.setLayoutManager(layoutManagerBig);
binding.layoutStoreRoot.recyclerviewStoreVip.setLayoutManager(new LinearLayoutManager(this)); binding.layoutStoreRoot.recyclerviewStoreVip.setLayoutManager(new LinearLayoutManager(this));
binding.layoutStoreActionbar.ivTopback.setOnClickListener(v -> finish()); binding.layoutStoreActionbar.ivTopback.setOnClickListener(v -> finish());
coinLargerAdapter = new ZYTStoreCoinsRechargeLargeAdapter();
binding.layoutStoreRoot.recyclerviewStoreLarge.setAdapter(coinLargerAdapter);
coinAdapter = new ZYTStoreGoldRechargeAdapter(); coinAdapter = new ZYTStoreGoldRechargeAdapter();
binding.layoutStoreRoot.recyclerviewStore.setAdapter(coinAdapter); binding.layoutStoreRoot.recyclerviewStoreSmall.setAdapter(coinAdapter);
subVipAdapter = new ZYTStoreSubVipAdapter(); subVipAdapter = new ZYTStoreSubVipAdapter();
binding.layoutStoreRoot.recyclerviewStoreVip.setAdapter(subVipAdapter); binding.layoutStoreRoot.recyclerviewStoreVip.setAdapter(subVipAdapter);
coinLargerAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
binding.loading.show();
coinLargerAdapter.setCurrentPosition(i);
ZYTPaySettingBean.Coins coins = coinLargerAdapter.getItem(i);
android_template_id = coins.getAndroid_template_id();
current_price = coins.getPrice();
current_pay_setting_id = coins.getId();
vtUserViewModel.createOrder(coins.getId(), 0, 0, 0, BillingClient.ProductType.INAPP);
});
coinAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { coinAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
binding.loading.show(); binding.loading.show();
ZYTPaySettingBean.Coins coins = coinAdapter.getItem(i); ZYTPaySettingBean.Coins coins = coinAdapter.getItem(i);
@ -245,6 +265,7 @@ public class ZYTStoreActivity extends IDDetailsRoundActivity<ActivityStoreBindin
subVipAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { subVipAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
binding.loading.show(); binding.loading.show();
subVipAdapter.setCurrentPosition(i);
ZYTPaySettingBean.Vip vip = subVipAdapter.getItem(i); ZYTPaySettingBean.Vip vip = subVipAdapter.getItem(i);
android_template_id = vip.getAndroid_template_id(); android_template_id = vip.getAndroid_template_id();
current_price = vip.getPrice(); current_price = vip.getPrice();
@ -430,7 +451,8 @@ public class ZYTStoreActivity extends IDDetailsRoundActivity<ActivityStoreBindin
// queryAvailableCoinsProducts(vtPaySettingBean.data.getList_coins()); // queryAvailableCoinsProducts(vtPaySettingBean.data.getList_coins());
// queryAvailableVipProducts(vtPaySettingBean.data.getList_sub_vip()); // queryAvailableVipProducts(vtPaySettingBean.data.getList_sub_vip());
} else { } else {
coinAdapter.submitList(vtPaySettingBean.data.getList_coins()); coinLargerAdapter.submitList(listCoins(vtPaySettingBean.data.getList_coins(), "big"));
coinAdapter.submitList(listCoins(vtPaySettingBean.data.getList_coins(), "small"));
subVipAdapter.submitList(vtPaySettingBean.data.getList_sub_vip()); subVipAdapter.submitList(vtPaySettingBean.data.getList_sub_vip());
binding.loading.hide(); binding.loading.hide();
} }
@ -518,6 +540,18 @@ public class ZYTStoreActivity extends IDDetailsRoundActivity<ActivityStoreBindin
}); });
} }
public List<ZYTPaySettingBean.Coins> listCoins(List<ZYTPaySettingBean.Coins> it, String type) {
List<ZYTPaySettingBean.Coins> typelist = new ArrayList<>();
for (ZYTPaySettingBean.Coins coins : it) {
if (coins.getSize().equals(type)) {
typelist.add(coins);
}
}
return typelist;
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();

View File

@ -1,4 +1,5 @@
package com.shortdrama.jelly.zyreotv.topics.abslRwgt.movepage; package com.shortdrama.jelly.zyreotv.topics.abslRwgt.movepage;
import java.util.ArrayList; import java.util.ArrayList;
@ -21,19 +22,12 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
public class JMarkInfo extends ViewModel { public class JMarkInfo extends ViewModel {
volatile long policyHibit_sum = 0; volatile long policyHibit_sum = 0;
volatile HashMap<String, Boolean> beanBrowsingThemesDict; volatile HashMap<String, Boolean> beanBrowsingThemesDict;
private volatile long eaderUnique_tag = 0; private volatile long eaderUnique_tag = 0;
private final MutableLiveData<IMACloseStroke<ISeekbarBean>> private_byDate = new MutableLiveData<>(); private final MutableLiveData<IMACloseStroke<ISeekbarBean>> private_byDate = new MutableLiveData<>();
private final MutableLiveData<IMACloseStroke> serviceHibit = new MutableLiveData<>(); private final MutableLiveData<IMACloseStroke> serviceHibit = new MutableLiveData<>();
private final MutableLiveData<IMACloseStroke> singleDimens = new MutableLiveData<>(); private final MutableLiveData<IMACloseStroke> singleDimens = new MutableLiveData<>();
@ -43,7 +37,6 @@ private volatile long eaderUnique_tag = 0;
} }
private double suspendContextEpisodeSystem(HashMap<String, Float> roundExample, boolean foregroundDefault_3a, int todayItem) { private double suspendContextEpisodeSystem(HashMap<String, Float> roundExample, boolean foregroundDefault_3a, int todayItem) {
double registeredArrowright = 5227.0; double registeredArrowright = 5227.0;
System.out.println(registeredArrowright); System.out.println(registeredArrowright);
@ -79,7 +72,6 @@ private double suspendContextEpisodeSystem(HashMap<String,Float> roundExample, b
} }
public MutableLiveData<IMACloseStroke> getCollectionLiveData() { public MutableLiveData<IMACloseStroke> getCollectionLiveData() {
@ -98,7 +90,6 @@ System.out.println(vserviceAres);
} }
private int disposableComponentGlideNumber() { private int disposableComponentGlideNumber() {
long appnameRanking = 7994L; long appnameRanking = 7994L;
int recommandTab = 8481; int recommandTab = 8481;
@ -147,7 +138,6 @@ private int disposableComponentGlideNumber() {
} }
public MutableLiveData<IMACloseStroke> getCollectioncancelLiveData() { public MutableLiveData<IMACloseStroke> getCollectioncancelLiveData() {
@ -166,8 +156,6 @@ System.out.println(checkOutputs);
} }
private ArrayList addHighlightReboundMaterialFactoryCanvas() { private ArrayList addHighlightReboundMaterialFactoryCanvas() {
boolean textStop = false; boolean textStop = false;
System.out.println(textStop); System.out.println(textStop);
@ -311,7 +299,6 @@ private ArrayList addHighlightReboundMaterialFactoryCanvas() {
} }
public void getExploreVideoList(int currentpage, int pagesize) { public void getExploreVideoList(int currentpage, int pagesize) {
@ -355,7 +342,6 @@ private float removeMaterialCreateDrawJoinButton() {
} }
@Override @Override
public void onSuccess(IMACloseStroke<ISeekbarBean> feedbackResp) { public void onSuccess(IMACloseStroke<ISeekbarBean> feedbackResp) {
@ -373,7 +359,6 @@ System.out.println(doublesBots);
} }
private float rankStackParseMark() { private float rankStackParseMark() {
String nineText = "packetheader"; String nineText = "packetheader";
String gridLine = "minimizeable"; String gridLine = "minimizeable";
@ -388,7 +373,6 @@ private float rankStackParseMark() {
} }
@Override @Override
public void onError(int code, String msg) { public void onError(int code, String msg) {
@ -410,12 +394,12 @@ float effectiveBtn = this.rankStackParseMark();
System.out.println(effectiveBtn); System.out.println(effectiveBtn);
ArrayList<Float> limit0 = new ArrayList<Float>(); ArrayList<Float> limit0 = new ArrayList<Float>();
limit0.add(52.0f); limit0.add(52.0f);
limit0.add(318.0f); limit0.add(318.0f);
limit0.add(390.0f); limit0.add(390.0f);
if (limit0.contains("d")) {} if (limit0.contains("d")) {
}
System.out.println(limit0); System.out.println(limit0);
private_byDate.setValue(null); private_byDate.setValue(null);
} }
@ -423,7 +407,6 @@ System.out.println(effectiveBtn);
} }
private long attributeCreatorFeedbackResumeTimerFuture() { private long attributeCreatorFeedbackResumeTimerFuture() {
float ninePurchase = 5365.0f; float ninePurchase = 5365.0f;
long handlerBottom = 1348L; long handlerBottom = 1348L;
@ -551,8 +534,7 @@ private long attributeCreatorFeedbackResumeTimerFuture() {
temp_m_84 -= 44; temp_m_84 -= 44;
if (temp_m_84 > 963) { if (temp_m_84 > 963) {
temp_m_84 *= 100; temp_m_84 *= 100;
} } else {
else {
temp_m_84 += 55; temp_m_84 += 55;
} }
@ -693,7 +675,6 @@ private long attributeCreatorFeedbackResumeTimerFuture() {
} }
public void collection(int shortplayId, int videoId) { public void collection(int shortplayId, int videoId) {
@ -743,11 +724,9 @@ private int postCacheDayNetwork(float adapterEzier, ArrayList<Float> imageAnner)
int tmp_m_46 = (int) networkPrivacy; int tmp_m_46 = (int) networkPrivacy;
if (tmp_m_46 <= 132) { if (tmp_m_46 <= 132) {
tmp_m_46 -= 98; tmp_m_46 -= 98;
} } else if (tmp_m_46 > 162) {
else if (tmp_m_46 > 162) {
} } else if (tmp_m_46 > 358) {
else if (tmp_m_46 > 358) {
tmp_m_46 -= 9; tmp_m_46 -= 9;
} }
@ -780,7 +759,6 @@ private int postCacheDayNetwork(float adapterEzier, ArrayList<Float> imageAnner)
} }
@Override @Override
public void onSuccess(IMACloseStroke feedbackResp) { public void onSuccess(IMACloseStroke feedbackResp) {
@ -798,8 +776,7 @@ int uncodedDirectories = this.postCacheDayNetwork(7272.0f,upgrade_x);
} }
int tmp_c_100 = (int) uncodedDirectories; int tmp_c_100 = (int) uncodedDirectories;
if (tmp_c_100 >= 795) { if (tmp_c_100 >= 795) {
} } else if (tmp_c_100 != 683) {
else if (tmp_c_100 != 683) {
tmp_c_100 -= 33; tmp_c_100 -= 33;
tmp_c_100 *= 59; tmp_c_100 *= 59;
@ -812,7 +789,6 @@ System.out.println(uncodedDirectories);
} }
private ArrayList arrayUniqueBackgroundSend(HashMap<String, Integer> limitFooter) { private ArrayList arrayUniqueBackgroundSend(HashMap<String, Integer> limitFooter) {
int urlIdle = 2681; int urlIdle = 2681;
long with_48Image = 2966L; long with_48Image = 2966L;
@ -859,7 +835,6 @@ private ArrayList arrayUniqueBackgroundSend(HashMap<String,Integer> limitFooter)
} }
@Override @Override
public void onError(int code, String msg) { public void onError(int code, String msg) {
@ -987,22 +962,22 @@ ArrayList annotateDisabling = this.arrayUniqueBackgroundSend(new HashMap());
System.out.println(annotateDisabling); System.out.println(annotateDisabling);
boolean settingW = false; boolean settingW = false;
if (!settingW) {} if (!settingW) {
}
System.out.println(settingW); System.out.println(settingW);
singleDimens.setValue(null); singleDimens.setValue(null);
HashMap<String, Float> tiktokU = new HashMap<String, Float>(); HashMap<String, Float> tiktokU = new HashMap<String, Float>();
tiktokU.put("banded", 522.0f); tiktokU.put("banded", 522.0f);
tiktokU.put("signaling", 451.0f); tiktokU.put("signaling", 451.0f);
tiktokU.put("moved", 565.0f); tiktokU.put("moved", 565.0f);
if (tiktokU.get("n") != null) {} if (tiktokU.get("n") != null) {
}
} }
}); });
} }
private int collectTestAddThirdStorageUnique(float type__dDestroy) { private int collectTestAddThirdStorageUnique(float type__dDestroy) {
String noticeEpisode = "appear"; String noticeEpisode = "appear";
System.out.println(noticeEpisode); System.out.println(noticeEpisode);
@ -1021,7 +996,6 @@ private int collectTestAddThirdStorageUnique(float type__dDestroy) {
} }
public void cancelcollection(int shortplayId) { public void cancelcollection(int shortplayId) {
@ -1078,7 +1052,9 @@ System.out.println(resetupYou);
public void onError(int code, String msg) { public void onError(int code, String msg) {
String successT = "overview"; String successT = "overview";
while (successT.length() > 105) { break; } while (successT.length() > 105) {
break;
}
serviceHibit.setValue(null); serviceHibit.setValue(null);
HashMap<String, Double> selectd = new HashMap<String, Double>(); HashMap<String, Double> selectd = new HashMap<String, Double>();
selectd.put("udta", 587.0); selectd.put("udta", 587.0);

View File

@ -5,14 +5,18 @@ import static android.text.Html.FROM_HTML_MODE_LEGACY;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.os.Parcelable; import android.os.Parcelable;
import android.text.Html; import android.text.Html;
import android.view.Gravity; import android.view.Gravity;
import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
@ -20,6 +24,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.android.billingclient.api.BillingClient; import com.android.billingclient.api.BillingClient;
import com.shortdrama.jelly.zyreotv.beginning.AppUtils; import com.shortdrama.jelly.zyreotv.beginning.AppUtils;
import com.shortdrama.jelly.zyreotv.beginning.ZYTGooglePayUtils; import com.shortdrama.jelly.zyreotv.beginning.ZYTGooglePayUtils;
import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreCoinsRechargeLargeAdapter;
import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreSubVipAdapter; import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreSubVipAdapter;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.shortdrama.jelly.zyreotv.R; import com.shortdrama.jelly.zyreotv.R;
@ -32,9 +37,10 @@ import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.GSTranslatesBean;
import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.LSQExampleCloseBean; import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.LSQExampleCloseBean;
import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.ZYTPaySettingBean; import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.ZYTPaySettingBean;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment { public class ZYTEpisodesRechargeDialogFragment extends DialogFragment {
private DialogPageEpisodesRechargeZytBinding dialogRechargeBinding; private DialogPageEpisodesRechargeZytBinding dialogRechargeBinding;
private GXCProgressLogin vtUserViewModel; private GXCProgressLogin vtUserViewModel;
@ -46,6 +52,7 @@ public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment
private Context context; // You will need a Context (e.g., Activity or Fragment context) private Context context; // You will need a Context (e.g., Activity or Fragment context)
private ZYTStoreGoldRechargeAdapter coinAdapter; private ZYTStoreGoldRechargeAdapter coinAdapter;
private ZYTStoreCoinsRechargeLargeAdapter coinLargeAdapter;
private ZYTStoreSubVipAdapter subVipAdapter; private ZYTStoreSubVipAdapter subVipAdapter;
boolean isConnect = false; boolean isConnect = false;
@ -63,6 +70,7 @@ public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment
public ZYTEpisodesRechargeDialogFragment() { public ZYTEpisodesRechargeDialogFragment() {
} }
public ZYTEpisodesRechargeDialogFragment(Context context, ZYTGooglePayUtils zytGooglePayUtil, boolean isConnect) { public ZYTEpisodesRechargeDialogFragment(Context context, ZYTGooglePayUtils zytGooglePayUtil, boolean isConnect) {
this.context = context; this.context = context;
this.zytGooglePayUtils = zytGooglePayUtil; this.zytGooglePayUtils = zytGooglePayUtil;
@ -83,6 +91,16 @@ public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment
this.dataPasser = dataPasser; this.dataPasser = dataPasser;
} }
@Override
public void onStart() {
super.onStart();
Dialog dialog = getDialog();
if (dialog != null && dialog.getWindow() != null) {
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); // 如需透明背景
}
}
@NonNull @NonNull
@Override @Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
@ -91,7 +109,11 @@ public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment
translates = AppUtils.getTranslates(); translates = AppUtils.getTranslates();
if (translates != null) { if (translates != null) {
// dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsepisode.setText(translates.getGleestream_coins()); // dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsepisode.setText(translates.getGleestream_coins());
dialogRechargeBinding.layoutStoreRecharge.tvStoreMembership.setText(translates.getGleestream_membership()); // dialogRechargeBinding.layoutStoreRecharge.tvStoreMembership.setText(translates.getGleestream_membership());
dialogRechargeBinding.tvStoreYourcoins.setText(translates.getGleestream_youcoins() + ":");
dialogRechargeBinding.tvStoreUnlock.setText(translates.getGleestream_unlock() + ":");
dialogRechargeBinding.layoutStoreRecharge.tvStoreVip.setText(translates.getVip() + " | " + translates.getGleestream_vip_subintroduce());
dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsepisode.setText(translates.getGleestream_coins_recharge());
dialogRechargeBinding.layoutStoreRecharge.layoutVipIntroduct.tvMembershipIntroduce01.setText(translates.getGleestream_vip_introduct1()); dialogRechargeBinding.layoutStoreRecharge.layoutVipIntroduct.tvMembershipIntroduce01.setText(translates.getGleestream_vip_introduct1());
dialogRechargeBinding.layoutStoreRecharge.layoutVipIntroduct.tvMembershipIntroduce02.setText(translates.getGleestream_vip_introduct2()); dialogRechargeBinding.layoutStoreRecharge.layoutVipIntroduct.tvMembershipIntroduce02.setText(translates.getGleestream_vip_introduct2());
dialogRechargeBinding.layoutStoreRecharge.layoutVipIntroduct.tvMembershipIntroduce03.setText(translates.getGleestream_vip_introduct3()); dialogRechargeBinding.layoutStoreRecharge.layoutVipIntroduct.tvMembershipIntroduce03.setText(translates.getGleestream_vip_introduct3());
@ -111,7 +133,8 @@ public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment
requireActivity().runOnUiThread(new Runnable() { requireActivity().runOnUiThread(new Runnable() {
@Override @Override
public void run() { public void run() {
coinAdapter.submitList(list); coinAdapter.submitList(listCoins(list, "small"));
coinLargeAdapter.submitList(listCoins(list, "big"));
} }
}); });
@ -137,21 +160,41 @@ public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment
if (parcelable instanceof LSQExampleCloseBean.YPZTestUnselect) { if (parcelable instanceof LSQExampleCloseBean.YPZTestUnselect) {
episode = (LSQExampleCloseBean.YPZTestUnselect) parcelable; episode = (LSQExampleCloseBean.YPZTestUnselect) parcelable;
shorplayId = episode.getShort_play_id(); shorplayId = episode.getShort_play_id();
dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsepisode.setText((translates != null ? translates.getGleestream_coins() : getString(R.string.coins_txt)) + " " + episode.getCoins()); dialogRechargeBinding.tvStoreYourcoinsValue.setText(" "+(TIndicator.getAllCoin()));
dialogRechargeBinding.tvStoreUnlockValue.setText(" " + episode.getCoins());
//dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsepisode.setText((translates != null ? translates.getGleestream_coins() : getString(R.string.coins_txt)) + " " + episode.getCoins());
vtUserViewModel.getPaySetting(shorplayId, episode.getShort_play_video_id()); vtUserViewModel.getPaySetting(shorplayId, episode.getShort_play_video_id());
// dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsvalue.setText((translates != null ? translates.getGleestream_youcoins() : getString(R.string.store_coins_your)) + Html.fromHtml(getString(R.string.store_coins, TIndicator.getAllCoin()), // dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsvalue.setText((translates != null ? translates.getGleestream_youcoins() : getString(R.string.store_coins_your)) + Html.fromHtml(getString(R.string.store_coins, TIndicator.getAllCoin()),
// FROM_HTML_MODE_LEGACY)); // FROM_HTML_MODE_LEGACY));
dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsvalue.setText((translates != null ? translates.getGleestream_youcoins() : getString(R.string.store_coins_your)) + ": " + (TIndicator.getAllCoin())); // dialogRechargeBinding.layoutStoreRecharge.tvStoreCoinsvalue.setText((translates != null ? translates.getGleestream_youcoins() : getString(R.string.store_coins_your)) + ": " + (TIndicator.getAllCoin()));
} }
} }
GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 2); GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 3);
dialogRechargeBinding.layoutStoreRecharge.recyclerviewStore.setLayoutManager(layoutManager); GridLayoutManager layoutManagerlarge = new GridLayoutManager(getContext(), 2);
dialogRechargeBinding.layoutStoreRecharge.recyclerviewStoreSmall.setLayoutManager(layoutManager);
dialogRechargeBinding.layoutStoreRecharge.recyclerviewStoreLarge.setLayoutManager(layoutManagerlarge);
coinAdapter = new ZYTStoreGoldRechargeAdapter(); coinAdapter = new ZYTStoreGoldRechargeAdapter();
coinLargeAdapter = new ZYTStoreCoinsRechargeLargeAdapter();
dialogRechargeBinding.layoutStoreRecharge.recyclerviewStoreVip.setLayoutManager(new LinearLayoutManager(getContext())); dialogRechargeBinding.layoutStoreRecharge.recyclerviewStoreVip.setLayoutManager(new LinearLayoutManager(getContext()));
subVipAdapter = new ZYTStoreSubVipAdapter(); subVipAdapter = new ZYTStoreSubVipAdapter();
dialogRechargeBinding.layoutStoreRecharge.recyclerviewStore.setAdapter(coinAdapter); dialogRechargeBinding.layoutStoreRecharge.recyclerviewStoreSmall.setAdapter(coinAdapter);
dialogRechargeBinding.layoutStoreRecharge.recyclerviewStoreLarge.setAdapter(coinLargeAdapter);
dialogRechargeBinding.layoutStoreRecharge.recyclerviewStoreVip.setAdapter(subVipAdapter); dialogRechargeBinding.layoutStoreRecharge.recyclerviewStoreVip.setAdapter(subVipAdapter);
coinLargeAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
if (dataPasser != null) {
coinLargeAdapter.setCurrentPosition(i);
ZYTPaySettingBean.GooglePayItem item = new ZYTPaySettingBean.GooglePayItem();
ZYTPaySettingBean.Coins coins = coinLargeAdapter.getItem(i);
if (coins != null) {
item.setAndroid_template_id(coins.getAndroid_template_id());
item.setCurrent_price(coins.getPrice());
item.setCurrent_pay_setting_id(coins.getId());
item.setPayType(BillingClient.ProductType.INAPP);
dataPasser.onDataPass(item);
}
}
});
coinAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { coinAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> {
if (dataPasser != null) { if (dataPasser != null) {
coinAdapter.setCurrentPosition(i); coinAdapter.setCurrentPosition(i);
@ -171,6 +214,7 @@ public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment
if (dataPasser != null) { if (dataPasser != null) {
ZYTPaySettingBean.GooglePayItem item = new ZYTPaySettingBean.GooglePayItem(); ZYTPaySettingBean.GooglePayItem item = new ZYTPaySettingBean.GooglePayItem();
ZYTPaySettingBean.Vip vip = subVipAdapter.getItem(i); ZYTPaySettingBean.Vip vip = subVipAdapter.getItem(i);
subVipAdapter.setCurrentPosition(i);
if (vip != null) { if (vip != null) {
item.setAndroid_template_id(vip.getAndroid_template_id()); item.setAndroid_template_id(vip.getAndroid_template_id());
item.setCurrent_price(vip.getPrice()); item.setCurrent_price(vip.getPrice());
@ -224,20 +268,29 @@ public class ZYTEpisodesRechargeDialogFragment extends BottomSheetDialogFragment
builder.setView(dialogRechargeBinding.getRoot()); builder.setView(dialogRechargeBinding.getRoot());
Dialog dialog = builder.create(); Dialog dialog = builder.create();
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); // dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
android.view.Window window = dialog.getWindow(); android.view.Window window = dialog.getWindow();
if (window != null) { if (window != null) {
window.getDecorView().setPadding(0, 0, 0, 0);
window.setGravity(Gravity.BOTTOM);
WindowManager.LayoutParams layoutParams = window.getAttributes(); WindowManager.LayoutParams layoutParams = window.getAttributes();
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT; layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
window.setAttributes(layoutParams); window.setAttributes(layoutParams);
} }
return dialog; return dialog;
} }
public List<ZYTPaySettingBean.Coins> listCoins(List<ZYTPaySettingBean.Coins> it, String type) {
List<ZYTPaySettingBean.Coins> typelist = new ArrayList<>();
for (ZYTPaySettingBean.Coins coins : it) {
if (coins.getSize().equals(type)) {
typelist.add(coins);
}
}
return typelist;
}
public void hideLoading() { public void hideLoading() {
dialogRechargeBinding.avi.hide(); dialogRechargeBinding.avi.hide();

View File

@ -25,6 +25,9 @@ import androidx.media3.common.MediaItem;
import androidx.media3.common.PlaybackException; import androidx.media3.common.PlaybackException;
import androidx.media3.common.Player; import androidx.media3.common.Player;
import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.UnstableApi;
import androidx.media3.datasource.DataSource;
import androidx.media3.datasource.DefaultDataSourceFactory;
import androidx.media3.exoplayer.DefaultRenderersFactory;
import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.exoplayer.hls.HlsMediaSource; import androidx.media3.exoplayer.hls.HlsMediaSource;
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory; import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
@ -51,6 +54,7 @@ import com.shortdrama.jelly.zyreotv.topics.abslRwgt.decbn.GSMyVipActivity;
import com.shortdrama.jelly.zyreotv.topics.abslRwgt.pragma.IDDetailsRoundActivity; import com.shortdrama.jelly.zyreotv.topics.abslRwgt.pragma.IDDetailsRoundActivity;
import com.shortdrama.jelly.zyreotv.topics.abslRwgt.pragma.ZEpisodeEpisode; import com.shortdrama.jelly.zyreotv.topics.abslRwgt.pragma.ZEpisodeEpisode;
import com.shortdrama.jelly.zyreotv.topics.amera.BVXHeadView; import com.shortdrama.jelly.zyreotv.topics.amera.BVXHeadView;
import com.shortdrama.jelly.zyreotv.topics.amera.FfmpegRenderersFactory;
import com.shortdrama.jelly.zyreotv.topics.dts.WVideoplay; import com.shortdrama.jelly.zyreotv.topics.dts.WVideoplay;
import com.shortdrama.jelly.zyreotv.topics.dts.ZYTRecommondVideoAdapter; import com.shortdrama.jelly.zyreotv.topics.dts.ZYTRecommondVideoAdapter;
import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.DBeanUnselectBean; import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.DBeanUnselectBean;
@ -184,7 +188,9 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
} }
}); });
player = new ExoPlayer.Builder(this).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(this))).build();
player = new ExoPlayer.Builder(this,new FfmpegRenderersFactory(this)).setRenderersFactory(new DefaultRenderersFactory(this).setEnableDecoderFallback(true)).build();
// player = new ExoPlayer.Builder(this).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(this))).build();
viewBinding.viewVideoRecommend.recommendPlayerView.setPlayer(player); viewBinding.viewVideoRecommend.recommendPlayerView.setPlayer(player);
iv_cover_recommend_detail = iv_cover_recommend_detail =
viewBinding.viewVideoRecommend.recommendPlayerView.findViewById(R.id.iv_cover_recommend_detail); viewBinding.viewVideoRecommend.recommendPlayerView.findViewById(R.id.iv_cover_recommend_detail);
@ -639,12 +645,12 @@ public class ZYTVideoPlayerDetailsActivity extends IDDetailsRoundActivity<MchDim
@SuppressLint("UnsafeOptInUsageError") @SuppressLint("UnsafeOptInUsageError")
private MediaSource buildMediaSource(String videoPath) { private MediaSource buildMediaSource(String videoPath) {
// DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, "gleestream"); DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, "gleestream");
if (videoPath.endsWith(".m3u8")) { if (videoPath.endsWith(".m3u8")) {
return new HlsMediaSource.Factory(GSExplayCacheUtils.getCacheFactory(this)) return new HlsMediaSource.Factory(dataSourceFactory)
.createMediaSource(MediaItem.fromUri(Uri.parse(videoPath))); .createMediaSource(MediaItem.fromUri(Uri.parse(videoPath)));
} else { } else {
return new ProgressiveMediaSource.Factory(GSExplayCacheUtils.getCacheFactory(this)) return new ProgressiveMediaSource.Factory(dataSourceFactory)
.createMediaSource(MediaItem.fromUri(Uri.parse(videoPath))); .createMediaSource(MediaItem.fromUri(Uri.parse(videoPath)));
} }
} }

View File

@ -1,5 +1,6 @@
package com.shortdrama.jelly.zyreotv.topics.amera; package com.shortdrama.jelly.zyreotv.topics.amera;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.os.Handler; import android.os.Handler;
@ -20,8 +21,12 @@ import androidx.media3.common.MediaItem;
import androidx.media3.common.PlaybackException; import androidx.media3.common.PlaybackException;
import androidx.media3.common.Player; import androidx.media3.common.Player;
import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.UnstableApi;
import androidx.media3.exoplayer.DefaultRenderersFactory;
import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.exoplayer.hls.HlsMediaSource;
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory; import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.shortdrama.jelly.zyreotv.GPplicationLoadingdefault; import com.shortdrama.jelly.zyreotv.GPplicationLoadingdefault;
@ -40,6 +45,7 @@ import org.greenrobot.eventbus.EventBus;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
//详情播放器
public class BVXHeadView extends FrameLayout { public class BVXHeadView extends FrameLayout {
private ExoPlayer player; private ExoPlayer player;
// private Job progressJob; //任务调度器 // private Job progressJob; //任务调度器
@ -76,7 +82,8 @@ public class BVXHeadView extends FrameLayout {
@OptIn(markerClass = UnstableApi.class) @OptIn(markerClass = UnstableApi.class)
public BVXHeadView(Context context, AttributeSet attrs) { public BVXHeadView(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
player = new ExoPlayer.Builder(context).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(context))).build(); // player = new ExoPlayer.Builder(context).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(context))).build();
player = new ExoPlayer.Builder(context, new FfmpegRenderersFactory(context)).setRenderersFactory(new DefaultRenderersFactory(context).setEnableDecoderFallback(true)).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(context))).build();
LayoutInflater inflater = LayoutInflater.from(context); LayoutInflater inflater = LayoutInflater.from(context);
View inflate = inflater.inflate(R.layout.kbv_follow_unit, this, true); View inflate = inflater.inflate(R.layout.kbv_follow_unit, this, true);
bind = KbvFollowUnitBinding.bind(inflate); bind = KbvFollowUnitBinding.bind(inflate);
@ -319,7 +326,10 @@ public class BVXHeadView extends FrameLayout {
public LSQExampleCloseBean.YPZTestUnselect mediaItem; public LSQExampleCloseBean.YPZTestUnselect mediaItem;
@SuppressLint("UnsafeOptInUsageError")
public void setMedia(LSQExampleCloseBean.YPZTestUnselect bean, LSQExampleCloseBean.YSearchUser shortVideoInfo) { public void setMedia(LSQExampleCloseBean.YPZTestUnselect bean, LSQExampleCloseBean.YSearchUser shortVideoInfo) {
Glide.with(getContext()).load(shortVideoInfo.getImage_url()).into(ivCoverPlayerDetail);
Glide.with(getContext()).load(shortVideoInfo.getImage_url()).into(bind.playerViewTop.ivCoverPlayerDetail);
ITItem.isCanPlay = true; ITItem.isCanPlay = true;
ITItem.isLock = bean.isIs_lock(); ITItem.isLock = bean.isIs_lock();
mediaItem = bean; mediaItem = bean;
@ -346,8 +356,8 @@ public class BVXHeadView extends FrameLayout {
// tv_episode_playertotal.setText(String.valueOf(shortVideoInfo.getEpisode_total())); // tv_episode_playertotal.setText(String.valueOf(shortVideoInfo.getEpisode_total()));
tv_des_player.setText(shortVideoInfo.getDescription()); tv_des_player.setText(shortVideoInfo.getDescription());
Glide.with(getContext()).load(shortVideoInfo.getImage_url()).into(ivCoverPlayerDetail);
// ivCoverPlayerDetail.setVisibility(View.VISIBLE); ivCoverPlayerDetail.setVisibility(View.VISIBLE);
iv_collection_controller.setImageResource(shortVideoInfo.isIs_collect() ? R.mipmap.banner_ffffff : R.mipmap.launcher_preference); iv_collection_controller.setImageResource(shortVideoInfo.isIs_collect() ? R.mipmap.banner_ffffff : R.mipmap.launcher_preference);
bind.playerViewTop.ivCollectionController.setImageResource(shortVideoInfo.isIs_collect() ? R.mipmap.banner_ffffff : R.mipmap.launcher_preference); bind.playerViewTop.ivCollectionController.setImageResource(shortVideoInfo.isIs_collect() ? R.mipmap.banner_ffffff : R.mipmap.launcher_preference);
tv_collection_num_controller.setText(TimeUtils.formatNumber(shortVideoInfo.getCollect_total())); tv_collection_num_controller.setText(TimeUtils.formatNumber(shortVideoInfo.getCollect_total()));
@ -362,7 +372,8 @@ public class BVXHeadView extends FrameLayout {
}); });
if (!bean.isIs_lock()) { if (!bean.isIs_lock()) {
bind.playerViewTop.getRoot().setVisibility(GONE); bind.playerViewTop.getRoot().setVisibility(GONE);
player.setMediaItem(MediaItem.fromUri(Uri.parse(bean.getVideo_url()))); // player.setMediaItem(MediaItem.fromUri(Uri.parse(bean.getVideo_url())));
player.setMediaSource(buildMediaSource(bean.getVideo_url()));
player.prepare(); player.prepare();
if (mediaItem.getPlay_seconds() != 0) { if (mediaItem.getPlay_seconds() != 0) {
player.seekTo(mediaItem.getPlay_seconds()); player.seekTo(mediaItem.getPlay_seconds());
@ -378,6 +389,17 @@ public class BVXHeadView extends FrameLayout {
} }
@SuppressLint("UnsafeOptInUsageError")
private MediaSource buildMediaSource(String videoPath) {
if (videoPath.endsWith(".m3u8")) {
return new HlsMediaSource.Factory(GSExplayCacheUtils.getCacheFactory(getContext()))
.createMediaSource(MediaItem.fromUri(Uri.parse(videoPath)));
} else {
return new ProgressiveMediaSource.Factory(GSExplayCacheUtils.getCacheFactory(getContext()))
.createMediaSource(MediaItem.fromUri(Uri.parse(videoPath)));
}
}
public void stop() { public void stop() {
LogUtils.d("player stop"); LogUtils.d("player stop");
player.stop(); player.stop();

View File

@ -0,0 +1,49 @@
package com.shortdrama.jelly.zyreotv.topics.amera;
import static androidx.media3.exoplayer.DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
import androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer;
import androidx.media3.exoplayer.DefaultRenderersFactory;
import androidx.media3.exoplayer.Renderer;
import androidx.media3.exoplayer.audio.AudioRendererEventListener;
import androidx.media3.exoplayer.audio.AudioSink;
import androidx.media3.exoplayer.mediacodec.MediaCodecSelector;
import java.util.ArrayList;
@SuppressLint("UnsafeOptInUsageError")
public class FfmpegRenderersFactory extends DefaultRenderersFactory {
public FfmpegRenderersFactory(Context context) {
super(context);
setExtensionRendererMode(EXTENSION_RENDERER_MODE_ON);
}
@Override
public void buildAudioRenderers(
Context context,
int extensionRendererMode,
MediaCodecSelector mediaCodecSelector,
boolean enableDecoderFallback,
AudioSink audioSink,
Handler eventHandler,
AudioRendererEventListener eventListener,
ArrayList<Renderer> out) {
out.add(new FfmpegAudioRenderer());
super.buildAudioRenderers(
context,
extensionRendererMode,
mediaCodecSelector,
enableDecoderFallback,
audioSink,
eventHandler,
eventListener,
out
);
}
}

View File

@ -10,6 +10,7 @@ import java.util.Random;
import java.util.HashMap; import java.util.HashMap;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.util.AttributeSet; import android.util.AttributeSet;
@ -30,8 +31,14 @@ import androidx.media3.common.MediaItem;
import androidx.media3.common.PlaybackException; import androidx.media3.common.PlaybackException;
import androidx.media3.common.Player; import androidx.media3.common.Player;
import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.UnstableApi;
import androidx.media3.datasource.DataSource;
import androidx.media3.datasource.DefaultDataSourceFactory;
import androidx.media3.exoplayer.DefaultRenderersFactory;
import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.exoplayer.hls.HlsMediaSource;
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory; import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.shortdrama.jelly.zyreotv.R; import com.shortdrama.jelly.zyreotv.R;
@ -52,7 +59,7 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
//推荐播放器
public class XCcountView extends FrameLayout { public class XCcountView extends FrameLayout {
private volatile boolean has_UtilsLayout = false; private volatile boolean has_UtilsLayout = false;
private volatile ArrayList<Double> rulesKeyVideohistoryArray; private volatile ArrayList<Double> rulesKeyVideohistoryArray;
@ -86,7 +93,11 @@ public class XCcountView extends FrameLayout {
@OptIn(markerClass = UnstableApi.class) @OptIn(markerClass = UnstableApi.class)
public XCcountView(Context context, AttributeSet attrs) { public XCcountView(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
player = new ExoPlayer.Builder(context).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(context))).build(); player = new ExoPlayer.Builder(context, new FfmpegRenderersFactory(context))
.setRenderersFactory(new DefaultRenderersFactory(context).setEnableDecoderFallback(true))
.setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(context))).build();
// player = new ExoPlayer.Builder(context).setMediaSourceFactory(new DefaultMediaSourceFactory(GSExplayCacheUtils.getCacheFactory(context))).build();
LayoutInflater inflater = LayoutInflater.from(context); LayoutInflater inflater = LayoutInflater.from(context);
View inflate = inflater.inflate(R.layout.kd_ecyrpt_rewards, this, true); View inflate = inflater.inflate(R.layout.kd_ecyrpt_rewards, this, true);
KdEcyrptRewardsBinding bind = KdEcyrptRewardsBinding.bind(inflate); KdEcyrptRewardsBinding bind = KdEcyrptRewardsBinding.bind(inflate);
@ -892,6 +903,7 @@ public class XCcountView extends FrameLayout {
} }
@SuppressLint("UnsafeOptInUsageError")
public void setMedia(DBeanUnselectBean bean) { public void setMedia(DBeanUnselectBean bean) {
ITItem.isLock = false; ITItem.isLock = false;
@ -1027,7 +1039,8 @@ public class XCcountView extends FrameLayout {
} }
}); });
player.setMediaItem(MediaItem.fromUri(Uri.parse(bean.getVideo_info().getVideo_url()))); // player.setMediaItem(MediaItem.fromUri(Uri.parse(bean.getVideo_info().getVideo_url())));
player.setMediaSource(buildMediaSource(bean.getVideo_info().getVideo_url()));
boolean continue_ii4 = false; boolean continue_ii4 = false;
player.prepare(); player.prepare();
float common1 = 1086.0f; float common1 = 1086.0f;
@ -1036,6 +1049,17 @@ public class XCcountView extends FrameLayout {
} }
} }
@SuppressLint("UnsafeOptInUsageError")
private MediaSource buildMediaSource(String videoPath) {
if (videoPath.endsWith(".m3u8")) {
return new HlsMediaSource.Factory(GSExplayCacheUtils.getCacheFactory(getContext()))
.createMediaSource(MediaItem.fromUri(Uri.parse(videoPath)));
} else {
return new ProgressiveMediaSource.Factory(GSExplayCacheUtils.getCacheFactory(getContext()))
.createMediaSource(MediaItem.fromUri(Uri.parse(videoPath)));
}
}
public void stop() { public void stop() {
player.stop(); player.stop();
HashMap<String, Double> utils8 = new HashMap<String, Double>(); HashMap<String, Double> utils8 = new HashMap<String, Double>();

View File

@ -0,0 +1,76 @@
package com.shortdrama.jelly.zyreotv.topics.dts;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.chad.library.adapter4.BaseQuickAdapter;
import com.chad.library.adapter4.viewholder.QuickViewHolder;
import com.shortdrama.jelly.zyreotv.R;
import com.shortdrama.jelly.zyreotv.beginning.AppUtils;
import com.shortdrama.jelly.zyreotv.beginning.TimeUtils;
import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.GSTranslatesBean;
import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.ZYTPaySettingBean;
public class ZYTStoreCoinsRechargeLargeAdapter extends BaseQuickAdapter<ZYTPaySettingBean.Coins, QuickViewHolder> {
private int currentPosition = -1;
public void setCurrentPosition(int currentPosition) {
this.currentPosition = currentPosition;
notifyDataSetChanged();
}
@Override
protected void onBindViewHolder(QuickViewHolder holder, int position, ZYTPaySettingBean.Coins item) {
GSTranslatesBean.Translates translates = AppUtils.getTranslates();
ConstraintLayout root = holder.getView(R.id.layout_store_root_item);
AppCompatTextView tvCoins = holder.getView(R.id.tv_store_coins_item);
// AppCompatTextView tvLimited = holder.getView(R.id.tv_store_coins_limited_item);
AppCompatTextView tvPercent = holder.getView(R.id.tv_store_coins_item_percent);
AppCompatTextView tvCoinsSend = holder.getView(R.id.tv_store_coins_add_item);
AppCompatTextView tvCoinPrice = holder.getView(R.id.tv_store_coins_price_item);
AppCompatImageView tvCornerMarker = holder.getView(R.id.iv_store_coins_hot);
// tvLimited.setVisibility(GONE);
// if (position == 0) {
// tvLimited.setVisibility(VISIBLE);
// }
if (item.getCorner_marker().isEmpty()) {
tvCornerMarker.setVisibility(GONE);
} else {
tvCornerMarker.setVisibility(VISIBLE);
}
if (item.getSend_coins() <= 0) {
tvPercent.setVisibility(View.INVISIBLE);
} else {
tvPercent.setVisibility(VISIBLE);
tvPercent.setText(TimeUtils.precess(item.getSend_coins(), item.getCoins()) + "%");
}
root.setBackgroundResource(R.drawable.bg_store_coins_large_unselected_boder);
if (position == currentPosition) {
root.setBackgroundResource(R.drawable.bg_store_coins_large_selected_boder);
}
tvCoins.setText(String.valueOf(item.getCoins()));
tvCoinsSend.setText(item.getSend_coins() == 0 ? "" : "+" + item.getSend_coins());
tvCoinPrice.setText(item.getCurrency() + item.getPrice());
}
@Override
public QuickViewHolder onCreateViewHolder(Context context, ViewGroup parent, int viewType) {
return new QuickViewHolder(R.layout.item_store_coinslist_larget_zyt, parent);
}
}

View File

@ -10,7 +10,9 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.chad.library.adapter4.BaseQuickAdapter; import com.chad.library.adapter4.BaseQuickAdapter;
import com.chad.library.adapter4.viewholder.QuickViewHolder; import com.chad.library.adapter4.viewholder.QuickViewHolder;
import com.shortdrama.jelly.zyreotv.R; import com.shortdrama.jelly.zyreotv.R;
import com.shortdrama.jelly.zyreotv.beginning.AppUtils;
import com.shortdrama.jelly.zyreotv.beginning.TimeUtils; import com.shortdrama.jelly.zyreotv.beginning.TimeUtils;
import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.GSTranslatesBean;
import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.ZYTPaySettingBean; import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.ZYTPaySettingBean;
@ -27,6 +29,7 @@ public class ZYTStoreGoldRechargeAdapter extends BaseQuickAdapter<ZYTPaySettingB
@Override @Override
protected void onBindViewHolder(QuickViewHolder holder, int position, ZYTPaySettingBean.Coins item) { protected void onBindViewHolder(QuickViewHolder holder, int position, ZYTPaySettingBean.Coins item) {
GSTranslatesBean.Translates translates = AppUtils.getTranslates();
ConstraintLayout root = holder.getView(R.id.layout_store_root_item); ConstraintLayout root = holder.getView(R.id.layout_store_root_item);
AppCompatTextView tvCoins = holder.getView(R.id.tv_store_coins_item); AppCompatTextView tvCoins = holder.getView(R.id.tv_store_coins_item);
AppCompatTextView tvLimited = holder.getView(R.id.tv_store_coins_limited_item); AppCompatTextView tvLimited = holder.getView(R.id.tv_store_coins_limited_item);
@ -38,17 +41,18 @@ public class ZYTStoreGoldRechargeAdapter extends BaseQuickAdapter<ZYTPaySettingB
// tvLimited.setVisibility(VISIBLE); // tvLimited.setVisibility(VISIBLE);
// } // }
if (item.getSend_coins() <= 0) { if (item.getSend_coins() <= 0) {
tvPercent.setVisibility(View.GONE); tvPercent.setVisibility(View.INVISIBLE);
} else { } else {
tvPercent.setVisibility(View.VISIBLE); tvPercent.setVisibility(View.VISIBLE);
tvPercent.setText(TimeUtils.precess(item.getSend_coins(), item.getCoins()) + "%"); tvPercent.setText(TimeUtils.precess(item.getSend_coins(), item.getCoins()) + "%");
} }
root.setBackgroundResource(R.drawable.cornor_ffffff_gradient_10dp); // root.setBackgroundResource(R.drawable.cornor_ffffff_gradient_10dp);
if (position == currentPosition) { // if (position == currentPosition) {
root.setBackgroundResource(R.drawable.cornor_f564b6_gradient_10dp); // root.setBackgroundResource(R.drawable.cornor_f564b6_gradient_10dp);
} // }
tvCoins.setText(String.valueOf(item.getCoins())); tvCoins.setText(String.valueOf(item.getCoins()));
// tvCoinsSend.setText(item.getSend_coins() == 0 ? "" : "+" + item.getSend_coins() + ((translates != null) ? " "+translates.getGleestream_donate() : " Donate"));
tvCoinsSend.setText(item.getSend_coins() == 0 ? "" : "+" + item.getSend_coins()); tvCoinsSend.setText(item.getSend_coins() == 0 ? "" : "+" + item.getSend_coins());
tvCoinPrice.setText(item.getCurrency() + item.getPrice()); tvCoinPrice.setText(item.getCurrency() + item.getPrice());

View File

@ -1,9 +1,21 @@
package com.shortdrama.jelly.zyreotv.topics.dts; package com.shortdrama.jelly.zyreotv.topics.dts;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RadialGradient;
import android.graphics.Shader;
import android.graphics.Typeface;
import android.text.TextPaint;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
@ -18,11 +30,12 @@ import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.ZYTPaySettingBean;
public class ZYTStoreSubVipAdapter extends BaseQuickAdapter<ZYTPaySettingBean.Vip, QuickViewHolder> { public class ZYTStoreSubVipAdapter extends BaseQuickAdapter<ZYTPaySettingBean.Vip, QuickViewHolder> {
private int currentPosition = 0; private int currentPosition = -1;
public void setCurrentPosition(int currentPosition) { public void setCurrentPosition(int currentPosition) {
this.currentPosition = currentPosition; this.currentPosition = currentPosition;
notifyDataSetChanged();
} }
@Override @Override
@ -37,39 +50,197 @@ public class ZYTStoreSubVipAdapter extends BaseQuickAdapter<ZYTPaySettingBean.Vi
AppCompatTextView tvDesc = holder.getView(R.id.tv_membership_desc); AppCompatTextView tvDesc = holder.getView(R.id.tv_membership_desc);
AppCompatTextView tvDonateCoins = holder.getView(R.id.tv_membership_donatecoins); AppCompatTextView tvDonateCoins = holder.getView(R.id.tv_membership_donatecoins);
AppCompatTextView tvIntroduce = holder.getView(R.id.tv_membership_introduce); AppCompatTextView tvIntroduce = holder.getView(R.id.tv_membership_introduce);
if (position == 0) { AppCompatImageView ivselected = holder.getView(R.id.iv_selected);
constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_one); String viptype = item.getVip_type_key();
tvTitle.setTextColor(Color.parseColor("#68003B")); if (viptype.equals("year")) {
tvCurrency.setTextColor(Color.parseColor("#68003B")); tvTitle.setTextColor(Color.parseColor("#FFE2AD1C"));
tvPrice.setTextColor(Color.parseColor("#68003B")); tvCurrency.setTextColor(Color.parseColor("#FFE2AD1C"));
tvVipType.setTextColor(Color.parseColor("#68003B")); tvPrice.setTextColor(Color.parseColor("#FFE2AD1C"));
tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_one_14dp); tvVipType.setTextColor(Color.parseColor("#FFE2AD1C"));
constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_year);
tvTitle.post(new Runnable() {
@Override
public void run() {
applyGradient(tvTitle, "#E2AD1C", "#C95D28");
} }
if (position == 1) { });
constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_two); tvCurrency.post(new Runnable() {
tvTitle.setTextColor(Color.parseColor("#71412B")); @Override
tvCurrency.setTextColor(Color.parseColor("#71412B")); public void run() {
tvPrice.setTextColor(Color.parseColor("#71412B")); applyGradient(tvCurrency, "#E2AD1C", "#C95D28");
tvVipType.setTextColor(Color.parseColor("#71412B"));
tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_two_14dp);
} }
if (position == 2) { });
constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_three); tvPrice.post(new Runnable() {
tvTitle.setTextColor(Color.parseColor("#221C80")); @Override
tvCurrency.setTextColor(Color.parseColor("#221C80")); public void run() {
tvPrice.setTextColor(Color.parseColor("#221C80")); applyGradient(tvPrice, "#E2AD1C", "#C95D28");
tvVipType.setTextColor(Color.parseColor("#221C80"));
tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_three_14dp);
} }
if (position == 3) { });
constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_four); tvVipType.post(new Runnable() {
tvTitle.setTextColor(Color.parseColor("#00438D")); @Override
tvCurrency.setTextColor(Color.parseColor("#00438D")); public void run() {
tvPrice.setTextColor(Color.parseColor("#00438D")); applyGradient(tvVipType, "#E2AD1C", "#C95D28");
tvVipType.setTextColor(Color.parseColor("#00438D"));
tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_four_14dp);
} }
});
tvIntroduce.setTextColor(Color.parseColor("#D2815E"));
tvDesc.setTextColor(Color.parseColor("#FF914C21"));
tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_year_16dp);
}
if (viptype.equals("quarter")) {
tvTitle.setTextColor(Color.parseColor("#FF675FD8"));
tvCurrency.setTextColor(Color.parseColor("#FF675FD8"));
tvPrice.setTextColor(Color.parseColor("#FF675FD8"));
tvVipType.setTextColor(Color.parseColor("#FF675FD8"));
constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_quarter);
tvTitle.post(new Runnable() {
@Override
public void run() {
applyGradient(tvTitle, "#675FD8", "#3A32B2");
}
});
tvCurrency.post(new Runnable() {
@Override
public void run() {
applyGradient(tvCurrency, "#675FD8", "#3A32B2");
}
});
tvPrice.post(new Runnable() {
@Override
public void run() {
applyGradient(tvPrice, "#675FD8", "#3A32B2");
}
});
tvVipType.post(new Runnable() {
@Override
public void run() {
applyGradient(tvVipType, "#675FD8", "#3A32B2");
}
});
tvIntroduce.setTextColor(Color.parseColor("#8E8AC8"));
tvDesc.setTextColor(Color.parseColor("#FF6650A1"));
// tvTitle.setTextColor(Color.parseColor("#221C80"));
// tvCurrency.setTextColor(Color.parseColor("#221C80"));
// tvPrice.setTextColor(Color.parseColor("#221C80"));
// tvVipType.setTextColor(Color.parseColor("#221C80"));
tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_quarter_16dp);
}
if (viptype.equals("week")) {
tvTitle.setTextColor(Color.parseColor("#FF88A2D2"));
tvCurrency.setTextColor(Color.parseColor("#FF88A2D2"));
tvPrice.setTextColor(Color.parseColor("#FF88A2D2"));
tvVipType.setTextColor(Color.parseColor("#FF88A2D2"));
constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_week);
tvTitle.post(new Runnable() {
@Override
public void run() {
applyGradient(tvTitle, "#88A2D2", "#878BC5");
}
});
tvCurrency.post(new Runnable() {
@Override
public void run() {
applyGradient(tvCurrency, "#88A2D2", "#878BC5");
}
});
tvPrice.post(new Runnable() {
@Override
public void run() {
applyGradient(tvPrice, "#88A2D2", "#878BC5");
}
});
tvVipType.post(new Runnable() {
@Override
public void run() {
applyGradient(tvVipType, "#88A2D2", "#878BC5");
}
});
tvIntroduce.setTextColor(Color.parseColor("#8FA5B5"));
tvDesc.setTextColor(Color.parseColor("#FF616C99"));
tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_week_16dp);
}
if (viptype.equals("month")) {
tvTitle.setTextColor(Color.parseColor("#FF82CBF8"));
tvCurrency.setTextColor(Color.parseColor("#FF82CBF8"));
tvPrice.setTextColor(Color.parseColor("#FF82CBF8"));
tvVipType.setTextColor(Color.parseColor("#FF82CBF8"));
constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_month);
tvTitle.post(new Runnable() {
@Override
public void run() {
applyGradient(tvTitle, "#82CBF8", "#6D9CE8");
}
});
tvCurrency.post(new Runnable() {
@Override
public void run() {
applyGradient(tvCurrency, "#82CBF8", "#6D9CE8");
}
});
tvPrice.post(new Runnable() {
@Override
public void run() {
applyGradient(tvPrice, "#82CBF8", "#6D9CE8");
}
});
tvVipType.post(new Runnable() {
@Override
public void run() {
applyGradient(tvVipType, "#82CBF8", "#6D9CE8");
}
});
tvIntroduce.setTextColor(Color.parseColor("#90AACF"));
tvDesc.setTextColor(Color.parseColor("#FF4276B8"));
tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_month_16dp);
}
// if (position == 0) {
// constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_month);
// tvTitle.setTextColor(Color.parseColor("#68003B"));
// tvCurrency.setTextColor(Color.parseColor("#68003B"));
// tvPrice.setTextColor(Color.parseColor("#68003B"));
// tvVipType.setTextColor(Color.parseColor("#68003B"));
// tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_one_14dp);
// }
// if (position == 1) {
// constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_week);
// tvTitle.setTextColor(Color.parseColor("#71412B"));
// tvCurrency.setTextColor(Color.parseColor("#71412B"));
// tvPrice.setTextColor(Color.parseColor("#71412B"));
// tvVipType.setTextColor(Color.parseColor("#71412B"));
// tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_two_14dp);
// }
// if (position == 2) {
// constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_quarter);
// tvTitle.setTextColor(Color.parseColor("#221C80"));
// tvCurrency.setTextColor(Color.parseColor("#221C80"));
// tvPrice.setTextColor(Color.parseColor("#221C80"));
// tvVipType.setTextColor(Color.parseColor("#221C80"));
// tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_three_14dp);
// }
// if (position == 3) {
// constraintLayout.setBackgroundResource(R.mipmap.ic_vippurchase_bg_year);
// tvTitle.setTextColor(Color.parseColor("#00438D"));
// tvCurrency.setTextColor(Color.parseColor("#00438D"));
// tvPrice.setTextColor(Color.parseColor("#00438D"));
// tvVipType.setTextColor(Color.parseColor("#00438D"));
// tvDesc.setBackgroundResource(R.drawable.cornor_vippurchase_four_14dp);
// }
if (currentPosition == position) {
ivselected.setVisibility(VISIBLE);
} else {
ivselected.setVisibility(GONE);
}
tvTitle.setText(item.getBrief() + ""); tvTitle.setText(item.getBrief() + "");
tvCurrency.setText(item.getCurrency() + ""); tvCurrency.setText(item.getCurrency() + "");
tvPrice.setText(item.getPrice() + ""); tvPrice.setText(item.getPrice() + "");
@ -77,10 +248,15 @@ public class ZYTStoreSubVipAdapter extends BaseQuickAdapter<ZYTPaySettingBean.Vi
tvDesc.setText(item.getDescription() + ""); tvDesc.setText(item.getDescription() + "");
tvDonateCoins.setText("+Extra " + item.getSend_coins()); tvDonateCoins.setText("+Extra " + item.getSend_coins());
GSTranslatesBean.Translates translates = AppUtils.getTranslates(); GSTranslatesBean.Translates translates = AppUtils.getTranslates();
String introduce = getContext().getString(R.string.vip_donate_coins);
if (translates != null) { if (translates != null) {
tvIntroduce.setText(translates.getGleestream_vip_subintroduce()); introduce = translates.getGleestream_vip_donate_coins();
tvDonateCoins.setText("+" + translates.getGleestream_extra() + item.getSend_coins()); tvDonateCoins.setText("+" + translates.getGleestream_extra() + item.getSend_coins());
} }
if (item.getSend_coins() > 0 && !introduce.isEmpty()) {
tvIntroduce.setText(AppUtils.replace(introduce, item.getSend_coin_ttl() + ""));
}
} }
@ -90,4 +266,33 @@ public class ZYTStoreSubVipAdapter extends BaseQuickAdapter<ZYTPaySettingBean.Vi
} }
private void applyGradient(AppCompatTextView textView, String startColor, String endColor) {
int width = textView.getWidth();
int height = textView.getHeight();
if (width == 0) width = textView.getMeasuredWidth(); // 防止为 0
TextPaint textPaint = textView.getPaint();
// 设置线性渐变
Shader shader = new LinearGradient(
0, 0, width, textView.getHeight(), // 斜向渐变 水平渐变 高度为0
new int[]{Color.parseColor(startColor), Color.parseColor(endColor)},
null,
Shader.TileMode.CLAMP
);
textPaint.setShader(shader);
textPaint.setStyle(Paint.Style.FILL);
textView.invalidate(); // 刷新视图
// Shader shader = new RadialGradient(
// width/2f,
// height/2f,
// Math.max(width, height) / 2f,
// new int[]{Color.parseColor(startColor), Color.parseColor(endColor)},
// new float[]{0f, 1f},
// Shader.TileMode.CLAMP);
// textPaint.setShader(shader);
// textPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
// // textPaint.setStyle(Paint.Style.FILL);
// textView.invalidate(); // 刷新视图
}
} }

View File

@ -152,6 +152,44 @@ public class GSTranslatesBean {
private String gleestream_account_alreadyloged; private String gleestream_account_alreadyloged;
private String gleestream_vip_donate_coins;
private String gleestream_coins_recharge;
private String gleestream_unlock;
public String getGleestream_unlock() {
return gleestream_unlock;
}
public void setGleestream_unlock(String gleestream_unlock) {
this.gleestream_unlock = gleestream_unlock;
}
public String getGleestream_coins_recharge() {
return gleestream_coins_recharge;
}
public void setGleestream_coins_recharge(String gleestream_coins_recharge) {
this.gleestream_coins_recharge = gleestream_coins_recharge;
}
private String vip;
public String getVip() {
return vip;
}
public void setVip(String vip) {
this.vip = vip;
}
public String getGleestream_vip_donate_coins() {
return gleestream_vip_donate_coins;
}
public void setGleestream_vip_donate_coins(String gleestream_vip_donate_coins) {
this.gleestream_vip_donate_coins = gleestream_vip_donate_coins;
}
public String getGleestream_account_alreadyloged() { public String getGleestream_account_alreadyloged() {
return gleestream_account_alreadyloged; return gleestream_account_alreadyloged;
} }

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<stroke
android:width="@dimen/affffffSettings"
android:color="#40FFFFFF" />
<solid android:color="#443D4C" />
<corners android:radius="@dimen/googleShare" />
</shape>
</item>
</layer-list>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<stroke
android:width="@dimen/affffffSettings"
android:color="#FFC99A" />
<solid android:color="#84604E" />
<corners android:radius="@dimen/googleShare" />
</shape>
</item>
</layer-list>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<stroke
android:width="@dimen/affffffSettings"
android:color="#40FFFFFF" />
<solid android:color="#84604E" />
<corners android:radius="@dimen/googleShare" />
</shape>
</item>
</layer-list>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/white">
<!-- 默认显⽰效果-->
<item>
<shape android:shape="rectangle">
<gradient
android:angle="180"
android:endColor="#F564B6"
android:startColor="#BF6BFF"
android:type="linear"
android:useLevel="true" />
<corners android:bottomRightRadius="@dimen/googleShare"
android:bottomLeftRadius="@dimen/googleShare"/>
</shape>
</item>
</ripple>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/white">
<!-- 默认显⽰效果-->
<item>
<shape android:shape="rectangle">
<gradient
android:angle="180"
android:endColor="#FFD792"
android:startColor="#FFB06B"
android:type="linear"
android:useLevel="true" />
<corners android:bottomRightRadius="@dimen/googleShare"
android:bottomLeftRadius="@dimen/googleShare"/>
</shape>
</item>
</ripple>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient
android:angle="180"
android:endColor="#80F564B6"
android:startColor="#80BF6BFF"
android:type="linear"
android:useLevel="true" />
<corners android:radius="19dp" />
</shape>
</item>
</layer-list>

View File

@ -5,8 +5,8 @@
<item> <item>
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<solid android:color="#e60F1013" /> <solid android:color="#CC0F1013" />
<corners android:topLeftRadius="@dimen/aboutAbout" android:topRightRadius="@dimen/aboutAbout" /> <corners android:topLeftRadius="24dp" android:topRightRadius="24dp" />
</shape> </shape>
</item> </item>
</ripple> </ripple>

View File

@ -6,8 +6,8 @@
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<solid android:color="#F564B6" /> <solid android:color="#F564B6" />
<corners android:topRightRadius="@dimen/agreementLock" <corners android:topRightRadius="@dimen/googleShare"
android:bottomLeftRadius="@dimen/agreementLock"/> android:bottomLeftRadius="@dimen/googleShare"/>
</shape> </shape>
</item> </item>
</ripple> </ripple>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/white">
<!-- 默认显⽰效果-->
<item>
<shape android:shape="rectangle">
<solid android:color="#F78B49" />
<corners android:topRightRadius="@dimen/googleShare"
android:bottomLeftRadius="@dimen/googleShare"/>
</shape>
</item>
</ripple>

View File

@ -5,13 +5,13 @@
<item> <item>
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<gradient <gradient
android:angle="90" android:angle="180"
android:endColor="#FFB69A" android:endColor="#97CAF6"
android:startColor="#FFC270" android:startColor="#0097CAF6"
android:type="linear" android:type="linear"
android:useLevel="true" /> android:useLevel="true" />
<corners android:radius="@dimen/detailsClickTatus" /> <corners android:radius="@dimen/private_gqTabindicator" />
</shape> </shape>
</item> </item>
</ripple> </ripple>

View File

@ -5,13 +5,13 @@
<item> <item>
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<gradient <gradient
android:angle="90" android:angle="180"
android:endColor="#94BCFF" android:endColor="#ADA8FF"
android:startColor="#6BD1FF" android:startColor="#00A5B3FF"
android:type="linear" android:type="linear"
android:useLevel="true" /> android:useLevel="true" />
<corners android:radius="@dimen/detailsClickTatus" /> <corners android:radius="@dimen/private_gqTabindicator" />
</shape> </shape>
</item> </item>
</ripple> </ripple>

View File

@ -5,13 +5,13 @@
<item> <item>
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<gradient <gradient
android:angle="90" android:angle="180"
android:endColor="#FFA7D9" android:endColor="#AAC1E6"
android:startColor="#FF719D" android:startColor="#00AAC1E6"
android:type="linear" android:type="linear"
android:useLevel="true" /> android:useLevel="true" />
<corners android:radius="@dimen/detailsClickTatus" /> <corners android:radius="@dimen/private_gqTabindicator" />
</shape> </shape>
</item> </item>
</ripple> </ripple>

View File

@ -5,13 +5,13 @@
<item> <item>
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<gradient <gradient
android:angle="90" android:angle="180"
android:endColor="#ADA7FF" android:endColor="#FFB179"
android:startColor="#A5B3FF" android:startColor="#00FFB179"
android:type="linear" android:type="linear"
android:useLevel="true" /> android:useLevel="true" />
<corners android:radius="@dimen/detailsClickTatus" /> <corners android:radius="@dimen/private_gqTabindicator" />
</shape> </shape>
</item> </item>
</ripple> </ripple>

View File

@ -6,25 +6,88 @@
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginTop="44dp"
android:background="@drawable/cornor_0f1013_12dp" android:background="@drawable/cornor_0f1013_12dp"
android:orientation="vertical" android:orientation="vertical"
android:paddingBottom="15dp" android:paddingBottom="15dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"> app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_close_episodes_recharge" android:id="@+id/iv_close_episodes_recharge"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:padding="@dimen/followHistoryOllow" android:paddingStart="15dp"
app:srcCompat="@mipmap/ic_close" /> android:paddingTop="15dp"
android:paddingEnd="15dp"
android:paddingBottom="8dp"
app:srcCompat="@mipmap/ic_rechargedialog_close" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_yourcoins"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginStart="@dimen/followHistoryOllow"
android:layout_alignTop="@+id/layout_unlock"
android:layout_alignBottom="@+id/layout_unlock"
android:text="@string/store_coins_your"
android:textColor="#99FFFFFF"
android:textSize="@dimen/fragmentTabindicator" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_yourcoins_value"
android:layout_alignTop="@+id/layout_unlock"
android:layout_alignBottom="@+id/layout_unlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_toEndOf="@+id/tv_store_yourcoins"
android:textColor="#F564B6"
android:textSize="@dimen/fragmentTabindicator" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/layout_unlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="17dp"
android:layout_marginStart="6dp"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:background="@drawable/bg_unlock_coins"
android:layout_toEndOf="@+id/tv_store_yourcoins_value"
android:gravity="center">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_unlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_unlock"
android:textColor="#FFFFFF"
android:textSize="@dimen/fragmentTabindicator" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_unlock_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
android:drawableEnd="@mipmap/ic_unlock_gold"
android:textColor="#E5F564B6"
android:textSize="@dimen/fragmentTabindicator" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/registeredEaderUnit" android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:layout_below="@+id/iv_close_episodes_recharge"> android:layout_below="@+id/iv_close_episodes_recharge">

View File

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/layout_store_root_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/agreementLock"
android:layout_marginEnd="@dimen/agreementLock"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_store_coins_hot"
android:layout_width="@dimen/clickOdyload"
android:layout_height="@dimen/clickOdyload"
android:paddingStart="5dp"
android:paddingTop="4dp"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/ic_coins_hot" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_item_percent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/cornor_f78b49_left_right_8dp"
android:paddingStart="5dp"
android:paddingTop="3dp"
android:paddingEnd="5dp"
android:paddingBottom="3dp"
android:textColor="@android:color/white"
android:textSize="12sp"
android:visibility="invisible"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/aboutAbout"
android:drawableEnd="@mipmap/ic_mywallet_coins"
android:drawablePadding="@dimen/unitEventUnique"
android:gravity="center_vertical"
android:textColor="@android:color/white"
android:textSize="@dimen/eaderPplicationHistory"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_item_percent" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_add_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFE4BE"
android:textSize="@dimen/gradleAgreement"
app:layout_constraintBottom_toTopOf="@+id/tv_store_coins_price_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_item" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_price_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/newsPolicyExplore"
android:background="@drawable/bg_store_coins_price_larger"
android:gravity="center"
android:paddingTop="6dp"
android:paddingBottom="9dp"
android:textColor="#BC6400"
android:textSize="@dimen/ragmentSettings"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/tv_store_coins_item"
app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_item" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_limited_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/cornor_f564b6_left_right_8dp"
android:paddingStart="@dimen/googleShare"
android:paddingEnd="@dimen/squareDefault_q"
android:text="@string/recharge_limit_txt"
android:textColor="@android:color/white"
android:textSize="@dimen/stringsRechargeSeekbar"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_price_item" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -6,66 +6,73 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/agreementLock" android:layout_marginTop="@dimen/agreementLock"
android:layout_marginEnd="@dimen/agreementLock" android:layout_marginEnd="@dimen/agreementLock"
android:background="@drawable/bg_store_coins_boder"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
app:layout_constraintRight_toRightOf="parent" android:id="@+id/tv_store_coins_item_percent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent" android:background="@drawable/cornor_f564b6_left_right_8dp"
android:background="@drawable/cornor_f564b6_left_right_10dp" android:paddingStart="5dp"
android:paddingStart="6dp" android:paddingTop="3dp"
android:paddingTop="2dp" android:paddingEnd="5dp"
android:paddingEnd="6dp" android:paddingBottom="3dp"
android:paddingBottom="2dp"
android:visibility="gone"
android:id="@+id/tv_store_coins_item_percent"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="11sp" /> android:textSize="10sp"
android:visibility="invisible"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_item" android:id="@+id/tv_store_coins_item"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/detailsClickTatus" android:layout_marginTop="@dimen/aboutAbout"
android:layout_marginTop="@dimen/followHistoryOllow" android:drawableEnd="@mipmap/ic_mywallet_coins"
android:drawableStart="@mipmap/ic_mywallet_coins" android:drawablePadding="@dimen/unitEventUnique"
android:drawablePadding="@dimen/cateSplash"
android:gravity="center_vertical" android:gravity="center_vertical"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="@dimen/pisodesPisodesNine" android:textSize="@dimen/appnameOmmonClose"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_item_percent" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_add_item" android:id="@+id/tv_store_coins_add_item"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#8a899f" android:textColor="#F56490"
android:textSize="@dimen/gradleAgreement" android:textSize="@dimen/gradleAgreement"
app:layout_constraintBottom_toBottomOf="@+id/tv_store_coins_item" app:layout_constraintBottom_toTopOf="@+id/tv_store_coins_price_item"
app:layout_constraintStart_toEndOf="@+id/tv_store_coins_item" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_store_coins_item" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_item" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_price_item" android:id="@+id/tv_store_coins_price_item"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/detailsClickTatus" android:layout_marginTop="@dimen/newsPolicyExplore"
android:layout_marginBottom="@dimen/agreementLock" android:background="@drawable/bg_store_coins_price"
android:gravity="center"
android:paddingTop="6dp"
android:paddingBottom="9dp"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="@dimen/fragmentTabindicator" android:textSize="@dimen/gradleAgreement"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/tv_store_coins_item" app:layout_constraintStart_toStartOf="@+id/tv_store_coins_item"
app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_item" /> app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_item" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coins_limited_item" android:id="@+id/tv_store_coins_limited_item"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/cornor_f564b6_left_right_10dp" android:background="@drawable/cornor_f564b6_left_right_8dp"
android:paddingStart="@dimen/googleShare" android:paddingStart="@dimen/googleShare"
android:paddingEnd="@dimen/squareDefault_q" android:paddingEnd="@dimen/squareDefault_q"
android:text="@string/recharge_limit_txt" android:text="@string/recharge_limit_txt"
@ -73,5 +80,5 @@
android:textSize="@dimen/stringsRechargeSeekbar" android:textSize="@dimen/stringsRechargeSeekbar"
android:visibility="gone" android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toBottomOf="@+id/tv_store_coins_price_item" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,15 +1,23 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/item_membership_root"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/item_membership_root"
android:layout_marginTop="@dimen/agreementLock"
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_marginTop="@dimen/agreementLock"
android:layout_marginEnd="15dp" android:layout_marginEnd="15dp"
android:background="@mipmap/ic_vippurchase_bg_one" android:background="@mipmap/ic_vippurchase_bg_month"
android:paddingStart="@dimen/followHistoryOllow" android:paddingStart="@dimen/followHistoryOllow">
android:paddingBottom="@dimen/backupHistory">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iv_selected"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:srcCompat="@mipmap/ic_vip_selector" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_membership_donatecoins" android:id="@+id/tv_membership_donatecoins"
@ -17,10 +25,10 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@mipmap/ic_vipdonata_bg" android:background="@mipmap/ic_vipdonata_bg"
android:drawableEnd="@mipmap/ic_mywallet_coins" android:drawableEnd="@mipmap/ic_mywallet_coins"
android:paddingStart="@dimen/playActivity"
android:paddingTop="@dimen/cateSplash"
android:gravity="center_vertical"
android:drawablePadding="@dimen/cateSplash" android:drawablePadding="@dimen/cateSplash"
android:gravity="center_vertical|end"
android:paddingStart="@dimen/clickOdyload"
android:paddingTop="@dimen/cateSplash"
android:paddingEnd="@dimen/squareDefault_q" android:paddingEnd="@dimen/squareDefault_q"
android:paddingBottom="@dimen/earchLayout" android:paddingBottom="@dimen/earchLayout"
android:textColor="#8F5600" android:textColor="#8F5600"
@ -34,9 +42,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/agreementLock" android:layout_marginTop="@dimen/agreementLock"
android:text="@string/vip_weekly_membership_txt" android:text="@string/vip_weekly_membership_txt"
android:textStyle="bold"
android:textColor="@color/color_e6ffffff"
android:textSize="@dimen/gradleAgreement" android:textSize="@dimen/gradleAgreement"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
@ -44,19 +51,18 @@
android:id="@+id/tv_membership_pricetype" android:id="@+id/tv_membership_pricetype"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/ollowPisodesPlash"
android:textColor="@color/color_e6ffffff" android:textColor="@color/color_e6ffffff"
android:textSize="@dimen/gradleAgreement" android:textSize="@dimen/time_i5PplicationAgreement"
app:layout_constraintBottom_toBottomOf="@+id/tv_membership_price" app:layout_constraintBottom_toBottomOf="@+id/tv_membership_price"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_membership_price" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_membership_price" android:id="@+id/tv_membership_price"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/vip_weekly_price_week_txt" android:text="@string/vip_weekly_price_week_txt"
android:textColor="@color/color_e6ffffff" android:textSize="@dimen/backgroundCircleGoogle"
android:textSize="@dimen/commonAdapterAppname"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toEndOf="@+id/tv_membership_pricetype" app:layout_constraintStart_toEndOf="@+id/tv_membership_pricetype"
app:layout_constraintTop_toBottomOf="@+id/tv_membership_title" /> app:layout_constraintTop_toBottomOf="@+id/tv_membership_title" />
@ -65,18 +71,17 @@
android:id="@+id/tv_membership_viptype" android:id="@+id/tv_membership_viptype"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/ollowPisodesPlash" android:textSize="@dimen/appnameOmmonClose"
android:textColor="@color/color_e6ffffff"
android:textSize="@dimen/gradleAgreement"
app:layout_constraintBottom_toBottomOf="@+id/tv_membership_price" app:layout_constraintBottom_toBottomOf="@+id/tv_membership_price"
app:layout_constraintStart_toEndOf="@+id/tv_membership_price" /> app:layout_constraintStart_toEndOf="@+id/tv_membership_price"
app:layout_constraintTop_toTopOf="@+id/tv_membership_price" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_membership_desc" android:id="@+id/tv_membership_desc"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/squareDefault_q" android:layout_marginTop="@dimen/unitEventUnique"
android:layout_marginBottom="@dimen/ollowPisodesPlash" android:layout_marginBottom="@dimen/ollowPisodesPlash"
android:background="@drawable/cornor_24ffffff_14dp" android:background="@drawable/cornor_24ffffff_14dp"
android:paddingStart="@dimen/squareDefault_q" android:paddingStart="@dimen/squareDefault_q"
@ -84,20 +89,19 @@
android:paddingEnd="@dimen/squareDefault_q" android:paddingEnd="@dimen/squareDefault_q"
android:paddingBottom="@dimen/unitEventUnique" android:paddingBottom="@dimen/unitEventUnique"
android:text="@string/vip_noads_txt" android:text="@string/vip_noads_txt"
android:textColor="@android:color/white" android:textSize="@dimen/stringsRechargeSeekbar"
android:textSize="@dimen/rewardsTranslatesGradient"
app:layout_constraintStart_toStartOf="@+id/tv_membership_title" app:layout_constraintStart_toStartOf="@+id/tv_membership_title"
app:layout_constraintTop_toBottomOf="@+id/tv_membership_pricetype" /> app:layout_constraintTop_toBottomOf="@+id/tv_membership_price" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_membership_introduce" android:id="@+id/tv_membership_introduce"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/squareDefault_q" android:layout_marginTop="@dimen/squareDefault_q"
android:layout_marginBottom="@dimen/ollowPisodesPlash" android:layout_marginBottom="@dimen/agreementLock"
android:text="@string/vip_introduce" android:text="@string/vip_introduce"
android:textColor="#8A899F" app:layout_constraintBottom_toBottomOf="parent"
android:textSize="@dimen/rewardsTranslatesGradient" android:textSize="@dimen/stringsRechargeSeekbar"
app:layout_constraintStart_toStartOf="@+id/tv_membership_title" app:layout_constraintStart_toStartOf="@+id/tv_membership_title"
app:layout_constraintTop_toBottomOf="@+id/tv_membership_desc" /> app:layout_constraintTop_toBottomOf="@+id/tv_membership_desc" />

View File

@ -13,58 +13,68 @@
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coinsepisode" android:id="@+id/tv_store_vip"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/followHistoryOllow" android:layout_marginStart="@dimen/followHistoryOllow"
android:text="@string/coins_txt" android:text="VIP | Auto renew, cancel anytime "
android:textColor="@color/color_e6ffffff" android:textColor="@android:color/white"
android:textSize="@dimen/appnameOmmonClose" /> android:textSize="@dimen/fragmentTabindicator"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coinsvalue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/followHistoryOllow"
android:textColor="@color/color_e6ffffff"
android:textSize="@dimen/appnameOmmonClose" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview_store"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_store_coinsvalue"
android:layout_marginStart="@dimen/followHistoryOllow"
android:layout_marginTop="@dimen/earchLayout"
android:layout_marginEnd="@dimen/earchLayout" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_membership"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/recyclerview_store"
android:layout_marginStart="@dimen/followHistoryOllow"
android:layout_marginTop="@dimen/settingsHeaderGoogle"
android:layout_marginEnd="@dimen/followHistoryOllow"
android:text="@string/store_membership"
android:textColor="@color/color_e6ffffff"
android:textSize="@dimen/appnameOmmonClose" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview_store_vip" android:id="@+id/recyclerview_store_vip"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/tv_store_membership" android:layout_below="@+id/tv_store_vip"
android:layout_marginTop="@dimen/rechargeGradient" /> android:layout_marginTop="@dimen/agreementLock" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coinsepisode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/recyclerview_store_vip"
android:layout_marginStart="@dimen/followHistoryOllow"
android:layout_marginTop="@dimen/clickOdyload"
android:text="@string/coins_recharge_txt"
android:textColor="@color/color_e6ffffff"
android:textSize="@dimen/fragmentTabindicator" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_store_coinsvalue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tv_store_coinsepisode"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/followHistoryOllow"
android:textColor="@color/color_e6ffffff"
android:textSize="@dimen/fragmentTabindicator" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview_store_large"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_store_coinsvalue"
android:layout_marginStart="@dimen/followHistoryOllow"
android:layout_marginTop="@dimen/earchLayout"
android:layout_marginEnd="@dimen/cateSplash" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview_store_small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/recyclerview_store_large"
android:layout_marginStart="@dimen/followHistoryOllow"
android:layout_marginTop="@dimen/earchLayout"
android:layout_marginEnd="@dimen/cateSplash" />
<include <include
android:id="@+id/layout_vip_introduct" android:id="@+id/layout_vip_introduct"
layout="@layout/layout_purchase_introduce_gs" layout="@layout/layout_purchase_introduce_gs"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/recyclerview_store_vip" android:layout_below="@+id/recyclerview_store_small"
android:layout_marginStart="@dimen/followHistoryOllow" android:layout_marginStart="@dimen/followHistoryOllow"
android:layout_marginEnd="@dimen/followHistoryOllow" /> android:layout_marginEnd="@dimen/followHistoryOllow" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

View File

@ -50,6 +50,7 @@
<string name="mywallet_txt">My Wallet</string> <string name="mywallet_txt">My Wallet</string>
<string name="coins_txt">Coins</string> <string name="coins_txt">Coins</string>
<string name="coins_recharge_txt">Coin Recharge</string>
<string name="bonus_txt">Bonus</string> <string name="bonus_txt">Bonus</string>
<string name="coupons_txt">Coupons</string> <string name="coupons_txt">Coupons</string>
<string name="vip_selector_txt">50% Off</string> <string name="vip_selector_txt">50% Off</string>
@ -73,6 +74,7 @@
<string name="vip_recharge_txt">Membership Recharge</string> <string name="vip_recharge_txt">Membership Recharge</string>
<string name="vip_noads_txt">Unlimited access to all series for 1 week (No Ads)</string> <string name="vip_noads_txt">Unlimited access to all series for 1 week (No Ads)</string>
<string name="vip_introduce">Auto renew, cancel anytime</string> <string name="vip_introduce">Auto renew, cancel anytime</string>
<string name="vip_donate_coins">The donate coins will expire in ## days</string>
<string name="monthly_vip_txt">Monthly Vip </string> <string name="monthly_vip_txt">Monthly Vip </string>
<string name="price_tag">$</string> <string name="price_tag">$</string>
@ -130,4 +132,7 @@
<string name="language_txt">Language</string> <string name="language_txt">Language</string>
<string name="default_notification_channel_id">gleestream</string> <string name="default_notification_channel_id">gleestream</string>
<string name="youraccount_isalreadylogged">Your account is already logged in on another device~</string> <string name="youraccount_isalreadylogged">Your account is already logged in on another device~</string>
<string name="vip_introduce_top">VIP | Auto renew, cancel anytime</string>
<string name="tv_unlock">Unlock:</string>
</resources> </resources>

View File

@ -23,6 +23,6 @@ android.nonTransitiveRClass=true
#org.gradle.internal.http.socketTimeout=600000 #org.gradle.internal.http.socketTimeout=600000
# uploadCrashlyticsMappingFile # uploadCrashlyticsMappingFile
systemProp.http.proxyHost=127.0.0.1 systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=26001 systemProp.http.proxyPort=10809
systemProp.https.proxyHost=127.0.0.1 systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=26001 systemProp.https.proxyPort=10809