From 15f5c91d59281e426d09c1f0ca2efcc455dc97cd Mon Sep 17 00:00:00 2001 From: raoqian <506411586@qq.com> Date: Wed, 24 Sep 2025 14:21:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E5=8C=85=E4=B8=80=E6=B5=8B?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 19 +- app/proguard-rules.pro | 352 +++++++++++++++++- .../er/nebuluxe/app/basics/BaseActivity.kt | 32 ++ .../er/nebuluxe/app/home/GenresActivity.kt | 33 +- .../jia/er/nebuluxe/app/home/GenresAdapter.kt | 30 +- .../jia/er/nebuluxe/app/home/HomeFragment.kt | 4 +- .../nebuluxe/app/home/ReelsBannerAdapter.kt | 6 - .../er/nebuluxe/app/home/SearchActivity.kt | 13 +- .../com/jia/er/nebuluxe/app/net/Retrofit.kt | 11 +- .../com/jia/er/nebuluxe/app/utils/LOG.java | 4 + .../app/video/PlayerDetailActivity.kt | 8 +- .../nebuluxe/app/video/SeriesDataAdapter.kt | 13 - .../res/drawable/bg_conner_20px_stoke.xml | 6 + app/src/main/res/layout/activity_genres.xml | 3 +- .../main/res/layout/activity_play_detail.xml | 26 -- app/src/main/res/layout/activity_search.xml | 8 +- .../res/layout/close_episode_recommend.xml | 2 +- .../layout/detail_player_view_controller.xml | 5 +- app/src/main/res/layout/dialog_series.xml | 3 +- app/src/main/res/layout/fragment_me.xml | 23 +- app/src/main/res/layout/item_num_data.xml | 1 + app/src/main/res/layout/layout_no_result.xml | 70 ++++ app/src/main/res/values/strings.xml | 1 + 23 files changed, 576 insertions(+), 97 deletions(-) create mode 100644 app/src/main/res/drawable/bg_conner_20px_stoke.xml create mode 100644 app/src/main/res/layout/layout_no_result.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6680f58..d5dd700 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -9,6 +9,20 @@ plugins { } android { + signingConfigs { + getByName("debug") { + storeFile = file("/Users/raoqian156/AndroidCode/Nebuluxe/nebuiuxe.jks") + storePassword = "123789" + keyAlias = "neb" + keyPassword = "123789" + } + create("release") { + storeFile = file("/Users/raoqian156/AndroidCode/Nebuluxe/nebuiuxe.jks") + storePassword = "123789" + keyAlias = "neb" + keyPassword = "123789" + } + } namespace = "com.jia.er.nebuluxe.app" compileSdk = 35 @@ -18,11 +32,14 @@ android { targetSdk = 35 versionCode = 1 versionName = "1.0.0" + signingConfig = signingConfigs.getByName("release") } buildTypes { debug { - isMinifyEnabled = false +// isMinifyEnabled = false + isMinifyEnabled = true + isShrinkResources = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index a78e194..ffc85aa 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -20,6 +20,319 @@ # hide the original source file name. #-renamesourcefileattribute SourceFile + +#指定压缩级别 +-optimizationpasses 5 + +#不跳过非公共的库的类成员 +-dontskipnonpubliclibraryclassmembers + +#混淆时采用的算法 +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* + +#把混淆类中的方法名也混淆了 +-useuniqueclassmembernames + +#优化时允许访问并修改有修饰符的类和类的成员 +-allowaccessmodification + +#将文件来源重命名为“SourceFile”字符串 +-renamesourcefileattribute SourceFile +#保留行号 +-keepattributes SourceFile,LineNumberTable + +#保持所有实现 Serializable 接口的类成员 +#-keepclassmembers class * implements java.io.Serializable { +# static final long serialVersionUID; +# private static final java.io.ObjectStreamField[] serialPersistentFields; +# private void writeObject(java.io.ObjectOutputStream); +# private void readObject(java.io.ObjectInputStream); +# java.lang.Object writeReplace(); +# java.lang.Object readResolve(); +#} +##包名不混合大小写 +#-dontusemixedcaseclassnames +# +##不跳过非公共的库的类 +#-dontskipnonpubliclibraryclasses +# +##混淆时记录日志 +#-verbose +# +##关闭预校验 +#-dontpreverify +# +##不优化输入的类文件 +#-dontoptimize +# +##保护注解 +#-keepattributes *Annotation* +#-keep public class * extends com.rq.base.ui.BaseController +-keep class com.jia.er.nebuluxe.app.data.** { *; } +-keepclassmembernames class com.jia.er.nebuluxe.app.data.** { *;} +-keep public class * extends android.app.Service + +-dontwarn android.support.v4.** +-keep class android.support.v4.app.** { *; } +-keep interface android.support.v4.app.** { *; } +-keep class android.support.v4.** { *; } +-keep public class * extends android.app.Application + + + +-dontwarn android.support.v7.** +-keep class android.support.v7.internal.** { *; } +-keep interface android.support.v7.internal.** { *; } +-keep class android.support.v7.** { *; } + +-keep public class * extends android.app.Activity +-keep public class * extends android.app.Fragment +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class * extends android.app.backup.BackupAgentHelper +-keep public class * extends android.preference.Preference +# + +-keep class com.gyf.immersionbar.* {*;} +-dontwarn com.gyf.immersionbar.** + +-keep public class * extends android.view.View { + #### + *** get*(); + void set*(***); + public (android.content.Context); + public (android.content.Context, android.util.AttributeSet); + public (android.content.Context, android.util.AttributeSet, int); +} +-keep class * implements android.os.Parcelable { + + public static final android.os.Parcelable$Creator *; +} +-keepclassmembernames class * { + @android.webkit.JavascriptInterface ; +} +-keepnames class * implements java.io.Serializable +-keepclassmembers class * implements java.io.Serializable { + + static final long serialVersionUID; + private static final java.io.ObjectStreamField[] serialPersistentFields; + !static !transient ; + !private ; + !private ; + private void writeObject(java.io.ObjectOutputStream); + private void readObject(java.io.ObjectInputStream); + java.lang.Object writeReplace(); + java.lang.Object readResolve(); +} + + +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} +-keep class **.R$* { + *; } +-keepclassmembers enum * { + + public static **[] values(); + public static ** valueOf(java.lang.String); +} + + +-keepclasseswithmembernames class com.rq.**{*;} + +#保持所有拥有本地方法的类名及本地方法名 +-keepclasseswithmembernames class * { + native ; +} + +#保持自定义View的get和set相关方法 +-keepclassmembers public class * extends android.view.View { + void set*(***); + *** get*(); +} + +#保持Activity中View及其子类入参的方法 +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +#枚举 +-keepclassmembers enum * { + **[] $VALUES; + public *; +} + +#Parcelable +-keepclassmembers class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator CREATOR; +} + +#R文件的静态成员 +-keepclassmembers class **.R$* { + public static ; +} + +-dontwarn com.cmic.gen.sdk.** +-keep class com.cmic.gen.sdk.**{*;} +-dontwarn com.unicom.online.account.shield.** +-keep class com.unicom.online.account.shield.** {*;} +-dontwarn com.unicom.online.account.kernel.** +-keep class com.unicom.online.account.kernel.** {*;} +-keep class cn.com.chinatelecom.account.**{*;} +-keep public class * extends android.view.View + + +#-------------------------------------webView区---------------------------------------# +#WebView处理,项目中没有使用到webView忽略即可 +#保持Android与JavaScript进行交互的类不被混淆 +-keep class **.AndroidJavaScript { + *; } +-keepclassmembers class * extends android.webkit.WebViewClient { + + public void *(android.webkit.WebView,java.lang.String,android.graphics.Bitmap); + public boolean *(android.webkit.WebView,java.lang.String); +} +-keepclassmembers class * extends android.webkit.WebChromeClient { + + public void *(android.webkit.WebView,java.lang.String); +} +################ EventBus ################ +-keepattributes *Annotation* +-keepclassmembers class * { + @org.greenrobot.eventbus.Subscribe ; +} +-keep enum org.greenrobot.eventbus.ThreadMode { *; } + +# Only required if you use AsyncExecutor + +-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { + (java.lang.Throwable); +} +################ EventBus ################ + +################ OAID ################ +-keep class com.bun.miitmdid.** { *; } +-keep interface com.bun.supplier.** { *; } +-keep class androidx.core.**{*;} +# asus +-keep class com.asus.msa.SupplementaryDID.** { *; } +-keep class com.asus.msa.sdid.** { *; } +# freeme +-keep class com.android.creator.** { *; } +-keep class com.android.msasdk.** { *; } +# huawei -keep class com.huawei.hms.** {*;} +-keep interface com.huawei.hms.** {*;} +# lenovo +-keep class com.zui.deviceidservice.** { *; } +-keep class com.zui.opendeviceidlibrary.** { *; } +# meizu +-keep class com.meizu.flyme.openidsdk.** { *; } +# oppo +-keep class com.heytap.openid.** { *; } +# samsung +-keep class com.samsung.android.deviceidservice.** { *; } +# vivo +-keep class com.vivo.identifier.** { *; } +# xiaomi -keep class com.bun.miitmdid.provider.xiaomi.IdentifierManager +# zte +-keep class com.bun.lib.** { *; } +# coolpad +-keep class com.coolpad.deviceidsupport.** { *; } +# EEBBK +#None +# honor +-keep class com.hihonor.** {*; } +################ OAID ################ + +#//聚合混淆 +-keep class bykvm*.** +-keep class com.bytedance.msdk.adapter.**{ public *; } +-keep class com.bytedance.msdk.api.** { + public *; +} +-keep class com.bytedance.msdk.base.TTBaseAd{*;} +-keep class com.bytedance.msdk.adapter.TTAbsAdLoaderAdapter{ + public *; + protected ; +} + +# baidu sdk 不接入baidu sdk可以不引入 +-ignorewarnings +-dontwarn com.baidu.mobads.sdk.api.** +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keep class com.baidu.mobads.** { *; } +-keep class com.style.widget.** {*;} +-keep class com.component.** {*;} +-keep class com.baidu.ad.magic.flute.** {*;} +-keep class com.baidu.mobstat.forbes.** {*;} + +#ks 不接入ks sdk可以不引入 +-keep class org.chromium.** {*;} +-keep class org.chromium.** { *; } +-keep class aegon.chrome.** { *; } +-keep class com.kwai.**{ *; } +-dontwarn com.kwai.** +-dontwarn com.kwad.** +-dontwarn com.ksad.** +-dontwarn aegon.chrome.** + + +#sigmob 不接入sigmob sdk可以不引入 +-dontwarn android.support.v4.** +-keep class android.support.v4.** { *; } +-keep interface android.support.v4.** { *; } +-keep public class * extends android.support.v4.** + +-dontwarn com.sigmob.** +-keep class com.sigmob.**.**{*;} + +#oaid 不同的版本混淆代码不太一致,你注意你接入的oaid版本 ,不接入oaid可以不添加 +-dontwarn com.bun.** +-keep class com.bun.** {*;} +-keep class a.**{*;} +-keep class XI.CA.XI.**{*;} +-keep class XI.K0.XI.**{*;} +-keep class XI.XI.K0.**{*;} +-keep class XI.vs.K0.**{*;} +-keep class XI.xo.XI.XI.**{*;} +-keep class com.asus.msa.SupplementaryDID.**{*;} +-keep class com.asus.msa.sdid.**{*;} +-keep class com.huawei.hms.ads.identifier.**{*;} +-keep class com.samsung.android.deviceidservice.**{*;} +-keep class com.zui.opendeviceidlibrary.**{*;} +-keep class org.json.**{*;} + +-dontwarn com.cmic.gen.sdk.** +-keep class com.cmic.gen.sdk.**{*;} +-dontwarn com.unicom.online.account.shield.** +-keep class com.unicom.online.account.shield.** {*;} +-dontwarn com.unicom.online.account.kernel.** +-keep class com.unicom.online.account.kernel.** {*;} +-keep class cn.com.chinatelecom.account.**{*;} +-keep public class * extends android.view.View + +#Mintegral 不接入Mintegral sdk,可以不引入 +-keepattributes Signature +-keepattributes *Annotation* +-keep class com.mbridge.** {*; } +-keep interface com.mbridge.** {*; } +-keep class android.support.v4.** { *; } +-dontwarn com.mbridge.** +-keep class **.R$* { public static final int mbridge*; } + +-keep class com.android.inputmethod.** {*; } + + # glide 的混淆代码 -keep public class * implements com.bumptech.glide.module.GlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { @@ -29,4 +342,41 @@ # banner 的混淆代码 -keep class com.youth.banner.** { *; - } \ No newline at end of file + } + -keepattributes Signature + -keepattributes *Annotation* + -keep class okhttp3.** { *; } + -keep interface okhttp3.** { *; } + -dontwarn okhttp3.** + + # Platform calls Class.forName on types which do not exist on Android to determine platform. + -dontnote retrofit2.Platform + # Platform used when running on RoboVM on iOS. + -dontnote retrofit2.Platform$IOS$MainThreadExecutor + # Platform used when running on Java 8 VMs. + -dontwarn retrofit2.Platform$Java8 + + # Retain generic type information for use by reflection by converters and adapters. + -keepattributes Signature + # Retain declared checked exceptions for use by a Proxy instance. + -keepattributes Exception + -keep,allowobfuscation,includedescriptorclasses class okhttp3.** { *; } + -keep,allowobfuscation,includedescriptorclasses interface okhttp3.** { *; } + -dontwarn okhttp3.** + # Retrofit 2.x + -dontwarn retrofit2.** + -keep class retrofit2.** { *; } + -keepattributes Signature + -keepattributes Exceptions + +#-------------------------------------删除代码区--------------------------------------# +#删除代码中Log相关的代码 +#-assumenosideeffects class android.util.Log { +# +# public static boolean isLoggable(java.lang.String, int); +# public static int v(...); +# public static int i(...); +# public static int w(...); +# public static int d(...); +# public static int e(...); +#} \ No newline at end of file diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/basics/BaseActivity.kt b/app/src/main/java/com/jia/er/nebuluxe/app/basics/BaseActivity.kt index a017d48..2186832 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/basics/BaseActivity.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/basics/BaseActivity.kt @@ -22,12 +22,14 @@ import androidx.core.view.WindowInsetsCompat import androidx.viewbinding.ViewBinding import com.blankj.utilcode.util.BarUtils import com.jia.er.nebuluxe.app.R +import com.jia.er.nebuluxe.app.utils.LOG import com.jia.er.nebuluxe.app.utils.singleClick abstract class BaseActivity : AppCompatActivity() { lateinit var binding: BV private var networkErrorView: View? = null private var noDramaView: View? = null + private var container: FrameLayout? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = getViewBinding() @@ -85,7 +87,32 @@ abstract class BaseActivity : AppCompatActivity() { insets } } + this.container = container } + + fun showInPan(layout: Int) { + LOG.d("BaseActivity", "showInPan.93:" + layout) + val noDramaView = + layoutInflater.inflate(layout, container, false).apply { + layoutParams = ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT + ) + findViewById(R.id.tv_example_retry)?.setOnClickListener { + onReturn() + } + } + LOG.d("BaseActivity", "showInPan.106:") + container?.addView( + noDramaView, ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT + ) + ) + LOG.d("BaseActivity", "showInPan.108:") + } + + protected fun skip2Activity(clazz: Class>) { singleClick { startActivity( @@ -93,6 +120,7 @@ abstract class BaseActivity : AppCompatActivity() { ) } } + protected abstract fun top() protected abstract fun center() protected abstract fun getViewBinding(): BV @@ -115,6 +143,10 @@ abstract class BaseActivity : AppCompatActivity() { noDramaView?.visibility = View.VISIBLE } + fun hideNoDrama() { + noDramaView?.visibility = View.GONE + } + private var loadingDialog: Dialog? = null protected open fun showLoading( diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/home/GenresActivity.kt b/app/src/main/java/com/jia/er/nebuluxe/app/home/GenresActivity.kt index ff729fb..1a7a46c 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/home/GenresActivity.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/home/GenresActivity.kt @@ -2,6 +2,7 @@ package com.jia.er.nebuluxe.app.home import android.content.Intent import android.graphics.Rect +import android.os.Bundle import android.view.View import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager @@ -9,18 +10,15 @@ import androidx.recyclerview.widget.RecyclerView import com.blankj.utilcode.util.NetworkUtils import com.jia.er.nebuluxe.app.R import com.jia.er.nebuluxe.app.basics.BaseActivity -import com.jia.er.nebuluxe.app.basics.Constants -import com.jia.er.nebuluxe.app.data.HomeRankingRes +import com.jia.er.nebuluxe.app.basics.Constants.CONSTANTS_short_play_id import com.jia.er.nebuluxe.app.data.ShortListCategoryDataInfo -import com.jia.er.nebuluxe.app.databinding.ActivityFreshBinding -import com.jia.er.nebuluxe.app.databinding.ActivityRankingsBinding +import com.jia.er.nebuluxe.app.databinding.ActivityGenresBinding import com.jia.er.nebuluxe.app.net.MainViewModel import com.jia.er.nebuluxe.app.utils.singleClick import com.jia.er.nebuluxe.app.utils.toast -import com.jia.er.nebuluxe.app.video.PlayerDetailActivity -class GenresActivity : BaseActivity() { +class GenresActivity : BaseActivity() { private val mViewModel by lazy { ViewModelProvider(this)[MainViewModel::class.java] } override fun top() { @@ -60,6 +58,25 @@ class GenresActivity : BaseActivity() { }) homeRankTrendingAdapter?.isStateViewEnable = true homeRankTrendingAdapter?.setStateViewLayout(this, R.layout.layout_emptyview) +// homeRankTrendingAdapter.addOnItemChildClickListener( +// R.id.tv_num, +// { adapter, view, position -> +// { +// val data = +// adapter.getItem(position) as ShortListCategoryDataInfo.CategoryListData +// startActivity( +// Intent( +// this, +// GenresListActivity::class.java, +// ), +// Bundle().apply { +// putInt( +// CONSTANTS_short_play_id, data.short_play_id +// ) +// } +// ) +// } +// }) homeRankTrendingAdapter?.setOnItemClickListener { adapter, view, position -> val data = adapter.getItem(position) as ShortListCategoryDataInfo.CategoryListData @@ -83,8 +100,8 @@ class GenresActivity : BaseActivity() { } } - override fun getViewBinding(): ActivityFreshBinding { - return ActivityFreshBinding.inflate(layoutInflater) + override fun getViewBinding(): ActivityGenresBinding { + return ActivityGenresBinding.inflate(layoutInflater) } override fun onRetry() { diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/home/GenresAdapter.kt b/app/src/main/java/com/jia/er/nebuluxe/app/home/GenresAdapter.kt index 4d4bba3..30025e8 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/home/GenresAdapter.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/home/GenresAdapter.kt @@ -1,10 +1,7 @@ package com.jia.er.nebuluxe.app.home -import android.annotation.SuppressLint import android.content.Context -import android.graphics.Color -import android.graphics.Rect -import android.view.View +import android.content.Intent import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -12,7 +9,11 @@ import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.fullspan.FullSpanAdapterType import com.chad.library.adapter4.viewholder.QuickViewHolder import com.jia.er.nebuluxe.app.R +import com.jia.er.nebuluxe.app.basics.Constants import com.jia.er.nebuluxe.app.data.ShortListCategoryDataInfo +import com.jia.er.nebuluxe.app.data.ShortListCategoryDataInfo.ShortPlayListData +import com.jia.er.nebuluxe.app.utils.LOG +import com.jia.er.nebuluxe.app.video.PlayerDetailActivity class GenresAdapter : @@ -50,18 +51,33 @@ class GenresAdapter : R.id.tv_num, item?.short_play_list?.size.toString().plus("\n").plus("Dramas") ) - val homeRankTrendingAdapter = GenresItemAdapter() - val manager1 = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) - view?.layoutManager = manager1 + LOG.d("GenresAdapter", "onBindViewHolder.53:" + position) + view?.layoutManager = manager view?.adapter = homeRankTrendingAdapter homeRankTrendingAdapter?.submitList(item?.short_play_list) } + val homeRankTrendingAdapter = GenresItemAdapter() + var manager: RecyclerView.LayoutManager? = null override fun onCreateViewHolder( context: Context, parent: ViewGroup, viewType: Int ): QuickViewHolder { + manager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) + homeRankTrendingAdapter.setOnItemClickListener { adapter, view, position -> + LOG.d("GenresAdapter", "onCreateViewHolder.68:") + var it = adapter.getItem(position) as ShortPlayListData + LOG.d("GenresAdapter", "onCreateViewHolder.70:") + context.startActivity( + Intent( + context, PlayerDetailActivity::class.java + ).apply { + putExtra( + Constants.CONSTANTS_short_play_id, it.short_play_id + ) + }) + } return QuickViewHolder(R.layout.item_genres, parent) } } diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/home/HomeFragment.kt b/app/src/main/java/com/jia/er/nebuluxe/app/home/HomeFragment.kt index 560fe89..5441e62 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/home/HomeFragment.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/home/HomeFragment.kt @@ -44,7 +44,7 @@ class HomeFragment : BaseFragment() { } mViewModel.historysData_home.observe(this) { - if (it?.data?.list?.get(0) != null) { + if (it?.data?.list?.isNotEmpty() == true) { binding.llHistory.visibility = View.VISIBLE binding.tvHisTitle.text = it.data.list[0].name binding.tvHisEp.text = @@ -72,7 +72,7 @@ class HomeFragment : BaseFragment() { binding.tvFresh.setOnClickListener { skip2Activity(FreshActivity::class.java) } - binding.tvFresh.setOnClickListener { + binding.tvGenre.setOnClickListener { skip2Activity(GenresActivity::class.java) } binding.rlTop.setOnClickListener { diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/home/ReelsBannerAdapter.kt b/app/src/main/java/com/jia/er/nebuluxe/app/home/ReelsBannerAdapter.kt index 7cb1e69..133061d 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/home/ReelsBannerAdapter.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/home/ReelsBannerAdapter.kt @@ -45,14 +45,8 @@ class ReelsBannerAdapter() : BaseQuickAdapter - val name = view?.findViewById(R.id.tv_name)?.text as String var focusPosition = currentSelect + 1 var position = v.getTag(R.id.tag_rev_id) as Int - LOG.d("ReelsBannerAdapter", "onCreateViewHolder.53:" + currentSelect) - LOG.d( - "ReelsBannerAdapter", - name + ".onCreateViewHolder.isSelect:" + v.getTag(R.id.tag_rev_id) - ) if (focusPosition == position) { view.scaleX = 0.9F view.scaleY = 0.9F diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/home/SearchActivity.kt b/app/src/main/java/com/jia/er/nebuluxe/app/home/SearchActivity.kt index fa7f7e3..3891df4 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/home/SearchActivity.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/home/SearchActivity.kt @@ -104,10 +104,13 @@ class SearchActivity : BaseActivity() { searchResultAdapter?.items = it?.data?.list.orEmpty() if (it?.data?.list.isNullOrEmpty()) { toast(R.string.toast_no_result_of_keyword) - binding.emptyPan.visibility = View.VISIBLE + binding.emptyPan.visibility = View.GONE + binding.searchPan.visibility = View.GONE binding.resultPan.visibility = View.GONE + showInPan(R.layout.layout_no_result) } else { binding.emptyPan.visibility = View.GONE + binding.searchPan.visibility = View.VISIBLE binding.resultPan.visibility = View.VISIBLE } searchResultAdapter?.notifyDataSetChanged() @@ -115,6 +118,14 @@ class SearchActivity : BaseActivity() { mViewModel.hots() } + override fun onReturn() { + super.onReturn() + binding.emptyPan.visibility = View.VISIBLE + binding.searchPan.visibility = View.VISIBLE + binding.resultPan.visibility = View.GONE + findViewById(R.id.default_empty_pan).visibility = View.GONE + } + private fun openDetail(id: Int) { startActivity( Intent( diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/net/Retrofit.kt b/app/src/main/java/com/jia/er/nebuluxe/app/net/Retrofit.kt index f8d5a2e..4b80e00 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/net/Retrofit.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/net/Retrofit.kt @@ -9,6 +9,7 @@ import com.jia.er.nebuluxe.app.R import com.jia.er.nebuluxe.app.basics.Constants import com.jia.er.nebuluxe.app.basics.MyApplication.Companion.context import com.jia.er.nebuluxe.app.data.BaseRes +import com.jia.er.nebuluxe.app.utils.LOG import com.jia.er.nebuluxe.app.utils.Memory import com.jia.er.nebuluxe.app.utils.PackageUtils import com.jia.er.nebuluxe.app.utils.getAdvertisingIdInfo @@ -35,7 +36,15 @@ import kotlin.coroutines.suspendCoroutine object Retrofit { private val retrofit: Retrofit fun

build(serviceClass: Class

): P = retrofit.create(serviceClass) - private val httpLoggingInterceptor = HttpLoggingInterceptor() + private val httpLoggingInterceptor = HttpLoggingInterceptor({ + if (Constants.isUat) { + if(it.startsWith("{")){ + LOG.bean("okhttp", it) + }else { + Log.d("okhttp", it) + } + } + }) private const val DELAY_TIME_MILLIS = 2000L private var lastPostTime: Long = 0L private val lock = Any() diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/utils/LOG.java b/app/src/main/java/com/jia/er/nebuluxe/app/utils/LOG.java index 91e5a1e..60685be 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/utils/LOG.java +++ b/app/src/main/java/com/jia/er/nebuluxe/app/utils/LOG.java @@ -64,11 +64,15 @@ public class LOG { Log.w("BEAN." + tag, "=====>null"); return; } + Log.w("BEAN." + tag, "=====>" + log); if ("pollAlarm".equals(tag)) { return; } + //移除长数字数组的换行 log = log.replaceAll("(\\d*),˛", "$1_"); + //移除转移 + log = log.replaceAll("\\\\", ""); String outPut = log.replaceAll(":\\{", ":,{").replaceAll(":\\[\\{", ":[,{").replaceAll("\\}", "},").replaceAll("\\]", "],").replaceAll("\\\\\"", ""); String[] outs = outPut.split(","); diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/video/PlayerDetailActivity.kt b/app/src/main/java/com/jia/er/nebuluxe/app/video/PlayerDetailActivity.kt index 63c51b3..e4726fb 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/video/PlayerDetailActivity.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/video/PlayerDetailActivity.kt @@ -13,13 +13,11 @@ import androidx.activity.OnBackPressedCallback import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatSeekBar import androidx.appcompat.widget.AppCompatTextView -import androidx.fragment.app.DialogFragment import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.media3.common.MediaItem import androidx.media3.common.PlaybackException import androidx.media3.common.Player -import androidx.media3.common.Timeline import androidx.media3.datasource.DataSource import androidx.media3.datasource.DefaultDataSourceFactory import androidx.media3.exoplayer.DefaultRenderersFactory @@ -85,7 +83,7 @@ class PlayerDetailActivity : BaseActivity(), OnSnapHe private var collection: AppCompatImageView? = null private var ivIconPlayer: AppCompatImageView? = null private var ivCover: AppCompatImageView? = null - private var ivBackController: AppCompatImageView? = null + private var btnBack: AppCompatImageView? = null private var icBtnMore: View? = null private var exampleSeekbarPlayerController: AppCompatSeekBar? = null private var exampleProgressJob: Job? = null @@ -137,7 +135,7 @@ class PlayerDetailActivity : BaseActivity(), OnSnapHe collection = playerView?.findViewById(R.id.example_iv_collection_controller) play = playerView?.findViewById(R.id.example_iv_play_player_controller) ivIconPlayer = playerView?.findViewById(R.id.iv_icon_player) - ivBackController = playerView?.findViewById(R.id.iv_back_controller) + btnBack = playerView?.findViewById(R.id.btn_back) icBtnMore = playerView?.findViewById(R.id.iv_btn_more) icBtnMore?.setOnClickListener { singleClick { @@ -162,7 +160,7 @@ class PlayerDetailActivity : BaseActivity(), OnSnapHe } } } - ivBackController?.setOnClickListener { + btnBack?.setOnClickListener { singleClick { handleCustomLogic() } diff --git a/app/src/main/java/com/jia/er/nebuluxe/app/video/SeriesDataAdapter.kt b/app/src/main/java/com/jia/er/nebuluxe/app/video/SeriesDataAdapter.kt index cbf5379..4d6a596 100644 --- a/app/src/main/java/com/jia/er/nebuluxe/app/video/SeriesDataAdapter.kt +++ b/app/src/main/java/com/jia/er/nebuluxe/app/video/SeriesDataAdapter.kt @@ -22,19 +22,6 @@ class SeriesDataAdapter : val select: Boolean = currentPosition == view.text.toString().toInt() holder.setSelected(R.id.item_pan, select) holder.setVisible(R.id.iv_example_playing, select) -// if (currentPosition == view.text.toString().toInt()) { -// holder.setBackgroundResource(R.id.example_tv_num_data, R.drawable.bg_example_num_h) -// holder.setTextColor( -// R.id.example_tv_num_data, -// context.getColor(R.color.black) -// ) -// } else { -// holder.setBackgroundResource(R.id.example_tv_num_data, R.drawable.bg_example_num_n) -// holder.setTextColor( -// R.id.example_tv_num_data, -// context.getColor(R.color.white) -// ) -// } // todo 解锁功能暂时隐藏 // if (item?.is_lock == true && !Memory.isVip()) { // holder.setVisible(R.id.iv_example_lock, true) diff --git a/app/src/main/res/drawable/bg_conner_20px_stoke.xml b/app/src/main/res/drawable/bg_conner_20px_stoke.xml new file mode 100644 index 0000000..8e44a03 --- /dev/null +++ b/app/src/main/res/drawable/bg_conner_20px_stoke.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_genres.xml b/app/src/main/res/layout/activity_genres.xml index 44ee840..8a273cc 100644 --- a/app/src/main/res/layout/activity_genres.xml +++ b/app/src/main/res/layout/activity_genres.xml @@ -8,7 +8,6 @@ android:paddingTop="@dimen/padding_55px"> - - - - - - - - - - - - - - - - - - - - - - - + app:layout_constraintTop_toBottomOf="@id/example_iv_back" + tools:visibility="gone"> + app:layout_constraintTop_toBottomOf="@id/search_pan" + tools:visibility="gone"> + tools:visibility="gone"> + android:background="#4D000000"> + android:layout_marginRight="@dimen/padding_15px" + tools:listitem="@layout/item_num_data" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml index 40546aa..5aa308d 100644 --- a/app/src/main/res/layout/fragment_me.xml +++ b/app/src/main/res/layout/fragment_me.xml @@ -306,7 +306,8 @@ + style="@style/MineBtnPan" + android:visibility="gone"> + style="@style/MineBtnPan" + android:visibility="gone"> - - - - + style="@style/MineBtnPan" + android:visibility="gone"> diff --git a/app/src/main/res/layout/layout_no_result.xml b/app/src/main/res/layout/layout_no_result.xml new file mode 100644 index 0000000..73a3fc1 --- /dev/null +++ b/app/src/main/res/layout/layout_no_result.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8f04715..0bfc5cd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -50,4 +50,5 @@ 540P 720P 1080P + Explore Genres \ No newline at end of file