diff --git a/app/build.gradle b/app/build.gradle index 06ad81a..dd6b5f3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ plugins { // alias(libs.plugins.firebase.perf) id("com.google.gms.google-services") id("com.google.firebase.firebase-perf") - // id("com.google.firebase.crashlytics") + id("com.google.firebase.crashlytics") } @@ -41,11 +41,10 @@ android { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.signs - } debug { - minifyEnabled true + minifyEnabled false signingConfig signingConfigs.signs proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' @@ -75,6 +74,15 @@ android { } } + //禁用uploadCrashlyticsMappingFileRelease 手动上传 +// tasks.configureEach { task ->{ +// if (task.name == 'uploadCrashlyticsMappingFileRelease'||task.name=='uploadCrashlyticsMappingFileDebug') { +// task.enabled = false +// } +// } + +// } + } dependencies { diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 4b0c077..ad0bb83 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -546,14 +546,14 @@ -keepclassmembers class com.verizon.ads.edition.BuildConfig { static *; } --keep public interface com.verizon.ads.interstitialplacement** {*; } --keep public interface com.verizon.ads.inlineplacement** {*; } --keep public interface com.verizon.ads.vastcontroller** {*; } --keep public interface com.verizon.ads.webcontroller** {*; } +#-keep public interface com.verizon.ads.interstitialplacement** {*; } +#-keep public interface com.verizon.ads.inlineplacement** {*; } +#-keep public interface com.verizon.ads.vastcontroller** {*; } +#-keep public interface com.verizon.ads.webcontroller** {*; } #For Vungle integration --keep public interface com.vungle.warren.PlayAdCallback {*; } --keep public interface com.vungle.warren.ui.contract** {*; } --keep public interface com.vungle.warren.ui.view** {*; } +#-keep public interface com.vungle.warren.PlayAdCallback {*; } +#-keep public interface com.vungle.warren.ui.contract** {*; } +#-keep public interface com.vungle.warren.ui.view** {*; } #For AndroidX -keep class androidx.localbroadcastmanager.content.LocalBroadcastManager { *;} -keep class androidx.recyclerview.widget.RecyclerView { *;} diff --git a/app/src/main/java/com/shortdrama/jelly/zyreotv/beginning/ITItem.java b/app/src/main/java/com/shortdrama/jelly/zyreotv/beginning/ITItem.java index 904efed..97b953c 100644 --- a/app/src/main/java/com/shortdrama/jelly/zyreotv/beginning/ITItem.java +++ b/app/src/main/java/com/shortdrama/jelly/zyreotv/beginning/ITItem.java @@ -80,6 +80,8 @@ public class ITItem { public static final String CONSTANTS_Lang_key="Constants_language_key"; public static final String CONSTANTS_Lang_key_System="system_"; public static final String CONSTANTS_Translate_key="CONSTANTS_Translate_key"; + public static final String CONSTANTS_NotifyTime_key="CONSTANTS_NotifyTime_key"; + public static final String CONSTANTS_VipPurchaseTime_key="CONSTANTS_VipPurchaseTime_key"; static String nextNoneFromTourist(int[] contents, int key, boolean hasEmoji) { diff --git a/app/src/main/java/com/shortdrama/jelly/zyreotv/beginning/TimeUtils.java b/app/src/main/java/com/shortdrama/jelly/zyreotv/beginning/TimeUtils.java index f243721..f71ae04 100644 --- a/app/src/main/java/com/shortdrama/jelly/zyreotv/beginning/TimeUtils.java +++ b/app/src/main/java/com/shortdrama/jelly/zyreotv/beginning/TimeUtils.java @@ -81,4 +81,37 @@ public class TimeUtils { return df.format((current / total) * 100); } + + + public static boolean notifyIsOpen() { + long lastOpenTime = TIndicator.getLong(ITItem.CONSTANTS_NotifyTime_key, 0); + if (lastOpenTime != 0) { + long current = System.currentTimeMillis(); + if (current - lastOpenTime >= (24 * 60 * 60 * 1000)) { + TIndicator.saveLong(ITItem.CONSTANTS_NotifyTime_key, System.currentTimeMillis()); + return true; + } else { + return false; + } + } else { + TIndicator.saveLong(ITItem.CONSTANTS_NotifyTime_key, System.currentTimeMillis()); + return true; + } + } + + public static boolean vipPurchaseIsOpen() { + long lastOpenTime = TIndicator.getLong(ITItem.CONSTANTS_VipPurchaseTime_key, 0); + if (lastOpenTime != 0) { + long current = System.currentTimeMillis(); + if (current - lastOpenTime >= 0) { //(60 * 60 * 1000) + TIndicator.saveLong(ITItem.CONSTANTS_VipPurchaseTime_key, System.currentTimeMillis()); + return true; + } else { + return false; + } + } else { + TIndicator.saveLong(ITItem.CONSTANTS_VipPurchaseTime_key, System.currentTimeMillis()); + return true; + } + } } diff --git a/app/src/main/java/com/shortdrama/jelly/zyreotv/topics/abslRwgt/AExtractionActivity.java b/app/src/main/java/com/shortdrama/jelly/zyreotv/topics/abslRwgt/AExtractionActivity.java index df6c378..80d3f80 100644 --- a/app/src/main/java/com/shortdrama/jelly/zyreotv/topics/abslRwgt/AExtractionActivity.java +++ b/app/src/main/java/com/shortdrama/jelly/zyreotv/topics/abslRwgt/AExtractionActivity.java @@ -43,6 +43,7 @@ import com.shortdrama.jelly.zyreotv.beginning.LogUtils; import com.shortdrama.jelly.zyreotv.beginning.NotifyUtils; import com.shortdrama.jelly.zyreotv.beginning.REnterCircle; import com.shortdrama.jelly.zyreotv.beginning.TIndicator; +import com.shortdrama.jelly.zyreotv.beginning.TimeUtils; import com.shortdrama.jelly.zyreotv.databinding.TManifestServiceBinding; import com.shortdrama.jelly.zyreotv.dlsym.IMACloseStroke; import com.shortdrama.jelly.zyreotv.dlsym.KGZyreotv; @@ -294,6 +295,9 @@ public class AExtractionActivity extends IDDetailsRoundActivity { + HashMap map = new HashMap<>(); + map.put("order_code", current_order_code); + map.put("pay_setting_id", current_pay_setting_id); + map.put("pkg_name", getContext().getPackageName()); + map.put("product_id", android_template_id); + map.put("purchases_token", purchase.getPurchaseToken()); + map.put("transaction_id", purchase.getOrderId()); + map.put("show_money", current_price); + seenMarkView.getGooglePay(map); + }, (purchase, str) -> { + + PAYLoginHeaddefault.revealToast(str, 0); + }); + zytGooglePayUtils.setqueryProductResult(new ZYTGooglePayUtils.QueryProductResult() { + @Override + public void queryCoinProduct(List list) { + + } + + @Override + public void queryVipProduct(List list) { + if (!list.isEmpty() && vipPurchaseDialog != null) { + getActivity().runOnUiThread(() -> { + vipPurchaseDialog.setListData(list); + }); + } + } + }); + seenMarkView.getPaySetting(0, 0); + zytGooglePayUtils.startConnection(connect -> isConnect = connect); + vipPurchaseDialog = new VipPurchaseDialog(getActivity()); + vipPurchaseDialog.setItemClickListener(new VipPurchaseDialog.onItemClickListener() { + @Override + public void onSubvipItem(ZYTPaySettingBean.Vip vip) { + android_template_id = vip.getAndroid_template_id(); + current_price = vip.getPrice(); + current_pay_setting_id = vip.getId(); + seenMarkView.createOrder(vip.getId(), 0, 0, 0, BillingClient.ProductType.SUBS); + } + + @Override + public void dismissdialog() { + zytGooglePayUtils.clearInstance(); + vipPurchaseDialog = null; + } + }); + vipPurchaseDialog.show(); + + } } private long dismissUniqueCookieCorePlay() { @@ -560,6 +633,37 @@ public class UBJPrivateOllowFragment extends Fragment { } } }); + + seenMarkView.getPayResBeanLiveData().observe(getActivity(), vtPaySettingBean -> { + if (vtPaySettingBean != null && !vtPaySettingBean.data.getList_coins().isEmpty()) { + if (isConnect) { + zytGooglePayUtils.querySubsProductDetails(vtPaySettingBean.data.getList_sub_vip()); + } + } + }); + seenMarkView.getCreateOrderLiveData().observe(getActivity(), vtCreateOrderBean -> { + if (vtCreateOrderBean != null && vtCreateOrderBean.data != null) { + String userId = TIndicator.getUserInfo().getId(); + current_order_code = vtCreateOrderBean.data.getOrder_code(); + if (vtCreateOrderBean.data.getType().equals(BillingClient.ProductType.SUBS)) { + String productType = BillingClient.ProductType.SUBS; + zytGooglePayUtils.getGoogleProduct( + android_template_id, + userId, + current_order_code, + BillingClient.ProductType.SUBS); + + } + } + }); + + seenMarkView.getGooglePayLiveData().observe(getActivity(), imaCloseStroke -> { + + if (imaCloseStroke != null) { + PAYLoginHeaddefault.revealToast(translates != null ? translates.getGleestream_googlepay_success() : getString(R.string.google_pay_success), 0); + seenMarkView.getUserInfo(); + } + }); } diff --git a/app/src/main/java/com/shortdrama/jelly/zyreotv/topics/abslRwgt/pragma/VipPurchaseDialog.java b/app/src/main/java/com/shortdrama/jelly/zyreotv/topics/abslRwgt/pragma/VipPurchaseDialog.java new file mode 100644 index 0000000..404f29a --- /dev/null +++ b/app/src/main/java/com/shortdrama/jelly/zyreotv/topics/abslRwgt/pragma/VipPurchaseDialog.java @@ -0,0 +1,111 @@ +package com.shortdrama.jelly.zyreotv.topics.abslRwgt.pragma; + +import static android.text.Html.FROM_HTML_MODE_LEGACY; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.Html; +import android.view.Gravity; +import android.view.Window; +import android.view.WindowManager; + +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.ViewModelProvider; +import androidx.lifecycle.ViewModelStoreOwner; +import androidx.recyclerview.widget.LinearLayoutManager; + + +import com.shortdrama.jelly.zyreotv.R; + +import com.shortdrama.jelly.zyreotv.beginning.AppUtils; +import com.shortdrama.jelly.zyreotv.beginning.TIndicator; +import com.shortdrama.jelly.zyreotv.databinding.DialogVipPurchaseBinding; +import com.shortdrama.jelly.zyreotv.topics.abslRwgt.decbn.GXCProgressLogin; +import com.shortdrama.jelly.zyreotv.topics.abslRwgt.decbn.ZYTStoreActivity; +import com.shortdrama.jelly.zyreotv.topics.dts.ZYTStoreSubVipAdapter; +import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.GSTranslatesBean; +import com.shortdrama.jelly.zyreotv.unconfirmedPiecewise.ZYTPaySettingBean; + + +import java.util.List; + + +public class VipPurchaseDialog extends Dialog { + DialogVipPurchaseBinding binding; + + private ZYTStoreSubVipAdapter subVipAdapter; + + private List list; + + + private onItemClickListener itemClickListener; + + public void setItemClickListener(onItemClickListener itemClickListener) { + this.itemClickListener = itemClickListener; + } + + + public interface onItemClickListener { + void onSubvipItem(ZYTPaySettingBean.Vip vip); + + void dismissdialog(); + } + + + public void setListData(List list) { + subVipAdapter.submitList(list); + } + + public VipPurchaseDialog(Context context) { + super(context, R.style.ZyreoTVDialog); + this.list = list; + binding = DialogVipPurchaseBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + } + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + GSTranslatesBean.Translates translates = AppUtils.getTranslates(); + if (translates != null) { + binding.tvDialogVippurchaseTitle.setText(Html.fromHtml(translates.getGleestream_vippurchase_dialog(), + FROM_HTML_MODE_LEGACY)); + binding.tvDialogVippurchaseTitle2.setText(translates.getGleestream_vippurchase_dialog_unlock()); + binding.tvDialogVippurchaseAdfree.setText(translates.getGleestream_vip_benefits_adfree()); + binding.tvDialogVippurchaseExclusive.setText(translates.getGleestream_vip_benefits_exclusive()); + binding.tvDialogVippurchaseDailyfree.setText(translates.getGleestream_vip_benefits_dailyfree()); + binding.tvDialogVippurchaseMembership.setText(translates.getGleestream_membership_recharge()); + } + + subVipAdapter = new ZYTStoreSubVipAdapter(); + binding.recyclerviewDialogVippurchase.setLayoutManager(new LinearLayoutManager(getContext())); + binding.recyclerviewDialogVippurchase.setAdapter(subVipAdapter); + subVipAdapter.submitList(list); + subVipAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { + if (itemClickListener != null) { + itemClickListener.onSubvipItem(subVipAdapter.getItem(i)); + } + }); + binding.ivDialogVippurchaseClose.setOnClickListener(v -> { + dismiss(); + }); + setCanceledOnTouchOutside(false); + Window window = getWindow(); + WindowManager.LayoutParams wlp = window.getAttributes(); + wlp.width = WindowManager.LayoutParams.MATCH_PARENT; + wlp.height = WindowManager.LayoutParams.MATCH_PARENT; + window.setAttributes(wlp); + + } + + @Override + public void dismiss() { + if (itemClickListener != null) { + itemClickListener.dismissdialog(); + } + super.dismiss(); + } +} diff --git a/app/src/main/java/com/shortdrama/jelly/zyreotv/unconfirmedPiecewise/GSTranslatesBean.java b/app/src/main/java/com/shortdrama/jelly/zyreotv/unconfirmedPiecewise/GSTranslatesBean.java index e12225f..bc65ee3 100644 --- a/app/src/main/java/com/shortdrama/jelly/zyreotv/unconfirmedPiecewise/GSTranslatesBean.java +++ b/app/src/main/java/com/shortdrama/jelly/zyreotv/unconfirmedPiecewise/GSTranslatesBean.java @@ -138,6 +138,24 @@ public class GSTranslatesBean { private String gleestream_googlepay_queryfailed; private String gleestream_googlepay_usercanceledtip1; private String gleestream_googlepay_usercanceledtip; + private String gleestream_vippurchase_dialog_unlock; + private String gleestream_vippurchase_dialog; + + public String getGleestream_vippurchase_dialog_unlock() { + return gleestream_vippurchase_dialog_unlock; + } + + public void setGleestream_vippurchase_dialog_unlock(String gleestream_vippurchase_dialog_unlock) { + this.gleestream_vippurchase_dialog_unlock = gleestream_vippurchase_dialog_unlock; + } + + public String getGleestream_vippurchase_dialog() { + return gleestream_vippurchase_dialog; + } + + public void setGleestream_vippurchase_dialog(String gleestream_vippurchase_dialog) { + this.gleestream_vippurchase_dialog = gleestream_vippurchase_dialog; + } public String getGleestream_googlepay_suberror() { return gleestream_googlepay_suberror; diff --git a/app/src/main/res/layout/dialog_vip_purchase.xml b/app/src/main/res/layout/dialog_vip_purchase.xml new file mode 100644 index 0000000..3410de7 --- /dev/null +++ b/app/src/main/res/layout/dialog_vip_purchase.xml @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/tej_manifest_launcher.xml b/app/src/main/res/layout/tej_manifest_launcher.xml index 00d7d82..ebf442d 100644 --- a/app/src/main/res/layout/tej_manifest_launcher.xml +++ b/app/src/main/res/layout/tej_manifest_launcher.xml @@ -64,7 +64,7 @@ android:layout_height="0dp"> app:tabMode="scrollable" app:tabPaddingBottom="@dimen/unitEventUnique" app:tabPaddingEnd="5dp" - app:tabPaddingStart="5dp" + app:tabPaddingStart="15dp" app:tabRippleColor="@null" app:tabSelectedTextColor="#F564B6" app:tabTextAppearance="@style/splashModity" diff --git a/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_bg.png b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_bg.png new file mode 100644 index 0000000..8a45838 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_bg.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_close.png b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_close.png new file mode 100644 index 0000000..8bb1f2a Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_close.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_dailyfree.png b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_dailyfree.png new file mode 100644 index 0000000..9fb5a73 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_dailyfree.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_exclusive_episodes.png b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_exclusive_episodes.png new file mode 100644 index 0000000..b0399c0 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_exclusive_episodes.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_noads.png b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_noads.png new file mode 100644 index 0000000..4d981a6 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_noads.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_top.png b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_top.png new file mode 100644 index 0000000..b80f6fa Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_dialog_vippurchase_top.png differ diff --git a/build.gradle b/build.gradle index d99227e..583eda0 100644 --- a/build.gradle +++ b/build.gradle @@ -6,5 +6,5 @@ plugins { //alias(libs.plugins.firebase.perf) apply false id("com.google.gms.google-services") version "4.4.2" apply false id("com.google.firebase.firebase-perf") version "1.4.2" apply false - // id("com.google.firebase.crashlytics") version "3.0.3" apply false + id("com.google.firebase.crashlytics") version "3.0.3" apply false } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 63c86a9..f1cd4af 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,4 +19,10 @@ android.useAndroidX=true # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true -#systemProp.http.nonProxyHosts=localhost|127.0.0.1|127.*|10.*|172.16.*|172.17.*|172.18.|172.19.*|172.20.*|172.21.*|172.22.*|172.23.*|172.24.*|172.25.*|172.26.*|172.27.*|172.28.*|172.29.*|172.30.*|172.31.*|192.168.* +#org.gradle.internal.http.connectionTimeout=600000 +#org.gradle.internal.http.socketTimeout=600000 +# uploadCrashlyticsMappingFile +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.proxyPort=7890 +systemProp.https.proxyHost=127.0.0.1 +systemProp.https.proxyPort=7890 \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index f9b91bc..fb6b11f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,21 +1,8 @@ pluginManagement { repositories { - google { - content { - includeGroupByRegex("com\\.android.*") - includeGroupByRegex("com\\.google.*") - includeGroupByRegex("androidx.*") - } - } + google() mavenCentral() gradlePluginPortal() -// maven { -// setUrl("https://jitpack.io") -// } -// maven { -// setUrl("https://maven.aliyun.com/nexus/content/repositories/jcenter") -// } -// maven { setUrl("https://s01.oss.sonatype.org/content/groups/public" ) } } } dependencyResolutionManagement { @@ -24,14 +11,10 @@ dependencyResolutionManagement { google() mavenCentral() maven { url = uri("https://jitpack.io") } -// maven { url = uri("https://maven.aliyun.com/nexus/content/repositories/jcenter") } -// maven { url = uri("https://s01.oss.sonatype.org/content/groups/public") } -// maven { -// setUrl("https://maven.aliyun.com/nexus/content/repositories/jcenter") -// } -// maven { setUrl("https://s01.oss.sonatype.org/content/groups/public" ) } + maven { url = uri("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") } + maven { url = uri("https://android-sdk.is.com") } } } rootProject.name = "GleeStream" -include ':app' +include(":app")