From 674fba9acd0fcbb1a2741d91ffd6afc8ff9dfc9a Mon Sep 17 00:00:00 2001 From: yuyl <765782212@qq.com> Date: Tue, 8 Jul 2025 09:30:29 +0800 Subject: [PATCH] veloria 1.1.0/ 7.8 commit --- app/build.gradle.kts | 8 +- app/src/main/AndroidManifest.xml | 18 +- .../now/shortapp/civil/JActivityAdapter.kt | 1 + .../com/veloria/now/shortapp/civil/YFHome.kt | 37 +- .../veloria/now/shortapp/highbits/BIFBase.kt | 13 + .../highbits/qscaleqlog/PDeteleResource.kt | 16 + .../now/shortapp/newsletter/XNBackground.kt | 2 + .../shortapp/rewards/TOYPlayfairAutoView.kt | 13 +- .../avcintraRelock/DSPUnitVideoFragment.kt | 2 +- .../bidirectional/MQVAutoWidthActivity.kt | 551 +++++++++------- .../bidirectional/PSVHomeSearchActivity.kt | 137 ++-- .../bidirectional/YPDataActivity.kt | 31 +- .../bidirectional/coordinate/JService.kt | 5 +- .../coordinate/UKBottomCollection.kt | 34 +- .../modificationsPretch/SUJustSmart.kt | 201 +++--- .../texturedAsink/JumpLaunchVideoBean.kt | 53 ++ .../texturedAsink/JumpLaunchVideoReqBean.kt | 7 + .../now/shortapp/texturedAsink/XAboutBean.kt | 619 ++++++------------ app/src/main/res/drawable/bg_player_ad.xml | 5 + app/src/main/res/layout/j_details_layout.xml | 7 +- .../main/res/layout/layout_ad_player_view.xml | 10 + .../layout_ad_player_view_controller.xml | 12 + app/src/main/res/layout/layout_player_ad.xml | 171 +++++ .../main/res/mipmap-xxhdpi/ic_palyer_ad.png | Bin 0 -> 2468 bytes .../main/res/mipmap-xxhdpi/iv_des_down.webp | Bin 0 -> 254 bytes .../main/res/mipmap-xxhdpi/iv_des_top.webp | Bin 0 -> 260 bytes .../main/res/mipmap-xxhdpi/iv_download.png | Bin 0 -> 18105 bytes app/src/main/res/values/colors.xml | 1 + 28 files changed, 1097 insertions(+), 857 deletions(-) create mode 100644 app/src/main/java/com/veloria/now/shortapp/texturedAsink/JumpLaunchVideoBean.kt create mode 100644 app/src/main/java/com/veloria/now/shortapp/texturedAsink/JumpLaunchVideoReqBean.kt create mode 100644 app/src/main/res/drawable/bg_player_ad.xml create mode 100644 app/src/main/res/layout/layout_ad_player_view.xml create mode 100644 app/src/main/res/layout/layout_ad_player_view_controller.xml create mode 100644 app/src/main/res/layout/layout_player_ad.xml create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_palyer_ad.png create mode 100644 app/src/main/res/mipmap-xxhdpi/iv_des_down.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/iv_des_top.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/iv_download.png diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 85a7ec0..4acec07 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -11,14 +11,14 @@ plugins { android { namespace = "com.veloria.now.shortapp" - compileSdk = 34 + compileSdk = 35 defaultConfig { applicationId = "com.veloria.now.shortapp" minSdk = 24 - targetSdk = 34 - versionCode = 9 - versionName = "1.0.7" + targetSdk = 35 + versionCode = 12 + versionName = "1.1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 352491c..4247c65 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,6 +34,14 @@ + + + @@ -43,14 +51,12 @@ - - - + diff --git a/app/src/main/java/com/veloria/now/shortapp/civil/JActivityAdapter.kt b/app/src/main/java/com/veloria/now/shortapp/civil/JActivityAdapter.kt index 6248ac4..02e12c9 100644 --- a/app/src/main/java/com/veloria/now/shortapp/civil/JActivityAdapter.kt +++ b/app/src/main/java/com/veloria/now/shortapp/civil/JActivityAdapter.kt @@ -38,6 +38,7 @@ object JActivityAdapter { var PLAYER_LOCK: Boolean = false var PLAYER_IS_SEEK = true var PLAYER_DETAIL_PLAYING: Boolean = false + var IsFirstApp: Boolean = true const val RecommendPlayerView_PLAYER_STATUS_FINISH = "RecommendPlayerView_PLAYER_STATUS_FINISH" diff --git a/app/src/main/java/com/veloria/now/shortapp/civil/YFHome.kt b/app/src/main/java/com/veloria/now/shortapp/civil/YFHome.kt index 2efe863..3d2969d 100644 --- a/app/src/main/java/com/veloria/now/shortapp/civil/YFHome.kt +++ b/app/src/main/java/com/veloria/now/shortapp/civil/YFHome.kt @@ -1,6 +1,8 @@ package com.veloria.now.shortapp.civil import android.annotation.SuppressLint +import android.content.ClipData +import android.content.ClipboardManager import android.content.Context import android.content.Intent import android.content.pm.PackageManager @@ -1150,7 +1152,7 @@ object YFHome { coinsP = context.packageManager - .getPackageInfo(beanb, 0).versionName + .getPackageInfo(beanb, 0).versionName.toString() } catch (e: PackageManager.NameNotFoundException) { var servicej: Long = 398L if (servicej <= 200L) { @@ -1438,5 +1440,38 @@ object YFHome { } + fun openAppOrMarket(context: Context, deepLink: String, launch_url: String) { + try { + // 尝试直接跳转 + val intent = Intent(Intent.ACTION_VIEW, Uri.parse(deepLink)).apply { + flags = Intent.FLAG_ACTIVITY_NEW_TASK + } + if (intent.resolveActivity(context.packageManager) != null) { + context.startActivity(intent) + copyToClipboard(context, launch_url) + } else { + // 未安装应用,跳转应用商店 + openAppInMarket(context, launch_url) + } + } catch (e: Exception) { + // 异常处理 + openAppInMarket(context, launch_url) + } + } + + /** + * 跳转到应用商店 + */ + fun openAppInMarket(context: Context, launch_url: String) { +// copyToClipboard(context, launch_url) + val webIntent = Intent(Intent.ACTION_VIEW, Uri.parse(launch_url)) + context.startActivity(webIntent) + } + + fun copyToClipboard(context: Context, text: String, label: String = "Copied Text") { + val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + val clip = ClipData.newPlainText(label, text) + clipboard.setPrimaryClip(clip) + } } \ No newline at end of file diff --git a/app/src/main/java/com/veloria/now/shortapp/highbits/BIFBase.kt b/app/src/main/java/com/veloria/now/shortapp/highbits/BIFBase.kt index ecfe98b..114e849 100644 --- a/app/src/main/java/com/veloria/now/shortapp/highbits/BIFBase.kt +++ b/app/src/main/java/com/veloria/now/shortapp/highbits/BIFBase.kt @@ -5,6 +5,8 @@ import com.veloria.now.shortapp.newsletter.TStore import com.veloria.now.shortapp.texturedAsink.DoLoginBean import com.veloria.now.shortapp.texturedAsink.ESTimeBean import com.veloria.now.shortapp.texturedAsink.GStateBean +import com.veloria.now.shortapp.texturedAsink.JumpLaunchVideoBean +import com.veloria.now.shortapp.texturedAsink.JumpLaunchVideoReqBean import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean import com.veloria.now.shortapp.texturedAsink.LanguageBean import com.veloria.now.shortapp.texturedAsink.LoginDataBean @@ -257,4 +259,15 @@ interface BIFBase { @GET("customer/versionControl") fun getVersionControl(): Call> + @GET("getJumpLaunchVideo") + fun getJumpLaunchVideo( + @Query("short_play_id") short_play_id: Int, + @Query("video_id") video_id: Int, + ): Call> + + @POST("setJumpLaunchVideo") + fun setJumpLaunchVideo( + @Body jumpLaunchVideoResBean: JumpLaunchVideoReqBean + ): Call> + } \ No newline at end of file diff --git a/app/src/main/java/com/veloria/now/shortapp/highbits/qscaleqlog/PDeteleResource.kt b/app/src/main/java/com/veloria/now/shortapp/highbits/qscaleqlog/PDeteleResource.kt index 01f73e6..671a1dd 100644 --- a/app/src/main/java/com/veloria/now/shortapp/highbits/qscaleqlog/PDeteleResource.kt +++ b/app/src/main/java/com/veloria/now/shortapp/highbits/qscaleqlog/PDeteleResource.kt @@ -9,6 +9,8 @@ import com.veloria.now.shortapp.highbits.QGift import com.veloria.now.shortapp.highbits.QGift.handleData import com.veloria.now.shortapp.highbits.QGift.response import com.veloria.now.shortapp.texturedAsink.DoLoginBean +import com.veloria.now.shortapp.texturedAsink.JumpLaunchVideoBean +import com.veloria.now.shortapp.texturedAsink.JumpLaunchVideoReqBean import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean import com.veloria.now.shortapp.texturedAsink.LoginDataBean import com.veloria.now.shortapp.texturedAsink.VeBuyVideoBean @@ -181,4 +183,18 @@ private var loginAdaptStr: String = "dlta" handleData { videoService.setLeaveApp().response() } + + fun getJumpLaunchVideo( + short_play_id: Int, video_id: Int + ): LiveData>> = + handleData { + videoService.getJumpLaunchVideo(short_play_id,video_id).response() + } + + + fun setJumpLaunchVideo(jumpLaunchVideoResBean: JumpLaunchVideoReqBean): LiveData>> = + handleData { + videoService.setJumpLaunchVideo(jumpLaunchVideoResBean).response() + } + } \ No newline at end of file diff --git a/app/src/main/java/com/veloria/now/shortapp/newsletter/XNBackground.kt b/app/src/main/java/com/veloria/now/shortapp/newsletter/XNBackground.kt index 54285a0..827dcc6 100644 --- a/app/src/main/java/com/veloria/now/shortapp/newsletter/XNBackground.kt +++ b/app/src/main/java/com/veloria/now/shortapp/newsletter/XNBackground.kt @@ -238,6 +238,7 @@ class XNBackground : Application() { if (null != it) { RYAction.getMMKV() .putString(JActivityAdapter.HOME_DDL_URL, it.targetUri.toString()) + EventBus.getDefault().post(JActivityAdapter.HOME_DDL_URL) Log.d( "initFacebookSdk", "fetchDeferredAppLinkData callback called!====${it.targetUri}" @@ -269,6 +270,7 @@ class XNBackground : Application() { Log.d(LOG_TAG, "Deep link URL: $deeplink") RYAction.getMMKV() .putString(JActivityAdapter.HOME_DDL_URL, deeplink.toString()) + EventBus.getDefault().post(JActivityAdapter.HOME_DDL_URL) true } Adjust.initSdk(veConfig) diff --git a/app/src/main/java/com/veloria/now/shortapp/rewards/TOYPlayfairAutoView.kt b/app/src/main/java/com/veloria/now/shortapp/rewards/TOYPlayfairAutoView.kt index e5d0a9b..4bd27dc 100644 --- a/app/src/main/java/com/veloria/now/shortapp/rewards/TOYPlayfairAutoView.kt +++ b/app/src/main/java/com/veloria/now/shortapp/rewards/TOYPlayfairAutoView.kt @@ -948,23 +948,23 @@ class TOYPlayfairAutoView(context: Context, attrs: AttributeSet?) : } - val startBind = player!!.currentPosition + val startBind = player?.currentPosition var while_82U: Boolean = false println(while_82U) - val standLangI = formatTimestamp(startBind / 1000) + val standLangI = formatTimestamp(startBind?.div(1000) ?: 0) var abouth: Long = 3694L if (abouth > 76L) { } println(abouth) - val cagetoryLogo = player!!.duration + val cagetoryLogo = player?.duration var infoX: Double = 6473.0 - val dataz = formatTimestamp(cagetoryLogo / 1000) + val dataz = formatTimestamp(cagetoryLogo?.div(1000) ?: 0) var state0: String = "irrelvant" @@ -1014,6 +1014,11 @@ class TOYPlayfairAutoView(context: Context, attrs: AttributeSet?) : borderScrollEmitFormatGroup() } + fun seekTo(progress: Int) { + player?.seekTo(progress.toLong()) + borderScrollEmitFormatGroup() + } + public fun exampleTranslateCorrectPath(seekShape: String): Int { var bannerComplete: MutableMap = mutableMapOf() diff --git a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/avcintraRelock/DSPUnitVideoFragment.kt b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/avcintraRelock/DSPUnitVideoFragment.kt index d7b6087..aee53b0 100644 --- a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/avcintraRelock/DSPUnitVideoFragment.kt +++ b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/avcintraRelock/DSPUnitVideoFragment.kt @@ -325,7 +325,7 @@ class DSPUnitVideoFragment : DialogFragment() { } - coinsSearchStyles.currentPosition = startBind.plus(1) + coinsSearchStyles.currentPosition = startBind } lastS.currentPosition = 0 var l_managerB: Float = 9195.0f diff --git a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/MQVAutoWidthActivity.kt b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/MQVAutoWidthActivity.kt index e568e6e..c475e5f 100644 --- a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/MQVAutoWidthActivity.kt +++ b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/MQVAutoWidthActivity.kt @@ -4,22 +4,31 @@ import android.annotation.SuppressLint import android.content.Intent import android.net.Uri import android.os.Bundle +import android.text.TextUtils import android.view.View import android.view.WindowManager +import android.widget.FrameLayout +import android.widget.FrameLayout.VISIBLE import androidx.activity.OnBackPressedCallback import androidx.activity.viewModels import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView import androidx.fragment.app.DialogFragment.STYLE_NO_FRAME import androidx.media3.common.MediaItem +import androidx.media3.common.PlaybackException +import androidx.media3.common.Player import androidx.media3.datasource.DataSource import androidx.media3.datasource.DefaultDataSourceFactory +import androidx.media3.exoplayer.DefaultRenderersFactory +import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.hls.HlsMediaSource import androidx.media3.exoplayer.source.MediaSource import androidx.media3.exoplayer.source.ProgressiveMediaSource +import androidx.media3.ui.PlayerView import androidx.recyclerview.widget.RecyclerView import androidx.viewpager2.widget.ViewPager2 import com.blankj.utilcode.util.NetworkUtils +import com.blankj.utilcode.util.ViewUtils import com.bumptech.glide.Glide import com.facebook.AccessToken import com.facebook.CallbackManager @@ -31,6 +40,7 @@ import com.facebook.login.LoginManager import com.facebook.login.LoginResult import com.google.gson.Gson import com.veloria.now.shortapp.R +import com.veloria.now.shortapp.civil.BImage import com.veloria.now.shortapp.civil.JActivityAdapter import com.veloria.now.shortapp.civil.JActivityAdapter.CONSTANTS_QUALITY_REFRESH import com.veloria.now.shortapp.civil.JActivityAdapter.PLAYER_DETAILS_CAN_PLAY @@ -39,7 +49,9 @@ import com.veloria.now.shortapp.civil.JActivityAdapter.VIDEO_SHORT_PLAY_ID import com.veloria.now.shortapp.civil.NOFfmpeg import com.veloria.now.shortapp.civil.RYAction import com.veloria.now.shortapp.civil.TranslationHelper +import com.veloria.now.shortapp.civil.YFHome import com.veloria.now.shortapp.civil.formatNumber +import com.veloria.now.shortapp.civil.formatTimestamp import com.veloria.now.shortapp.civil.singleOnClick import com.veloria.now.shortapp.civil.toast import com.veloria.now.shortapp.databinding.JDetailsLayoutBinding @@ -56,6 +68,7 @@ import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.VipQualityDialog import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.UKBottomCollection import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.SUJustSmart import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeBannerRecommendAdapter +import com.veloria.now.shortapp.texturedAsink.JumpLaunchVideoReqBean import com.veloria.now.shortapp.texturedAsink.LServiceBean import com.veloria.now.shortapp.texturedAsink.LoginDataBean import com.veloria.now.shortapp.texturedAsink.NBECenterBean @@ -65,6 +78,13 @@ import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean import com.veloria.now.shortapp.texturedAsink.VeRevolutionsBean import com.veloria.now.shortapp.texturedAsink.XAboutBean import com.zhpan.bannerview.constants.PageStyle.MULTI_PAGE_OVERLAP +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.isActive +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -79,6 +99,8 @@ class MQVAutoWidthActivity : DSPUnitVideoFragment.SeriesCallBackClick, PlayerBuyDialogFragment.OnDataPassOnClick { @Volatile private var traceArrowsCheckList: MutableList = mutableListOf() + private var videoPlayDetailsList: MutableList = mutableListOf() + private var isVideoPlayAdd: Boolean = false @Volatile private var bindingTraceFfmpegFlag: Long = 6769L @@ -168,15 +190,20 @@ class MQVAutoWidthActivity : private var isFirst: Boolean = true private var isPlay: Boolean = true + private var isPlayAd: Boolean = false private var isQualityRefresh: Boolean = false private var shortPlayId: Int = 0 + private var shortPlayIdList: MutableList = mutableListOf() private var activityId: Int = 0 - private var shortVideo: XAboutBean.ShortPlayInfo? = null + + // private var shortVideo: XAboutBean.ShortPlayInfo? = null private var episode: XAboutBean.Episode? = null + private var videoData: XAboutBean? = null private var currentPosition = 0 private var currentPage = 1 private var recommendAdapter: SUJustSmart? = null + private var isRefreshData: Boolean = false private var needRestart: Boolean = false private var isBuyShowDialog: Boolean = false private var ivCoverRecommendDetail: AppCompatImageView? = null @@ -184,6 +211,13 @@ class MQVAutoWidthActivity : private var revolution = RYAction.getMMKV().getInt(JActivityAdapter.CONSTANTS_QUALITY, 540).toString() + @SuppressLint("UnsafeOptInUsageError") + private var player: ExoPlayer? = null + private var ivIconPlayer: AppCompatImageView? = null + private var playerView: PlayerView? = null + private val viewLifecycleScope = MainScope() + private var exampleProgressJob: Job? = null + public fun illegalPositiveFinishAreaWorkAny(): Float { var menuRecommends: String = "strideable" var againText: Double = 4231.0 @@ -295,7 +329,6 @@ class MQVAutoWidthActivity : break } - if (JActivityAdapter.DetailPlayerView_DRAMA_SERIES == event) { var processJ: Double = 7067.0 if (processJ > 142.0) { @@ -303,81 +336,28 @@ class MQVAutoWidthActivity : if (recommendAdapter?.items?.isNotEmpty() == true) { - var onclicke: MutableMap = mutableMapOf() - onclicke.put("codec", 329L) - onclicke.put("ftvns", 841L) - onclicke.put("ensured", 803L) - val removeNavigateFragment = DSPUnitVideoFragment() - var editR: MutableMap = mutableMapOf() - editR.put("variances", 566) - editR.put("passive", 583) - editR.put("sym", 391) - editR.put("errlog", 126) - - val constantsAdvert = Bundle() - var backgroundZ: Double = 2074.0 - while (backgroundZ >= 56.0) { - break - } - - constantsAdvert.putInt( JActivityAdapter.VIDEO_EPISODES_SERIES_DATA_CURRENT_POSITION, - currentPosition + recommendAdapter?.items?.get(currentPosition)?.episode!! ) - var scopef: Float = 906.0f - while (scopef > 113.0f) { - break - } - println(scopef) - - + val shortVideo = recommendAdapter?.items?.get(currentPosition)?.shortPlayInfo constantsAdvert.putParcelable( JActivityAdapter.VIDEO_EPISODES_SERIES_DATA, shortVideo ) - var viewse: MutableMap = mutableMapOf() - viewse.put("maximum", "yuyvtoyuv") - viewse.put("unpublish", "distribute") - viewse.put("balances", "essence") - viewse.put("listen", "mplane") - while (viewse.size > 41) { - break - } - - + val filteredList = + recommendAdapter?.items?.filter { it.short_play_id == shortPlayId } constantsAdvert.putParcelableArrayList( JActivityAdapter.VIDEO_EPISODES_SERIES_DATA_LIST, - recommendAdapter?.items?.let { - var loadingn: Float = 8139.0f - if (loadingn == 136.0f) { - } - + filteredList?.let { ArrayList(it) } ) - var ffmpeg3: MutableList = mutableListOf() - ffmpeg3.add(false) - ffmpeg3.add(true) - ffmpeg3.add(true) - ffmpeg3.add(true) - if (ffmpeg3.contains(true)) { - } - - removeNavigateFragment.seriesCallBack = this - var actionm: Long = 9933L - if (actionm <= 50L) { - } - - removeNavigateFragment.arguments = constantsAdvert - var logicK: Float = 6043.0f - - removeNavigateFragment.show( supportFragmentManager, "ExampleSeriesDialogFragment" @@ -392,14 +372,26 @@ class MQVAutoWidthActivity : 1 ) ) { + episode?.short_play_id?.let { + episode?.short_play_video_id?.let { it1 -> + viewModel.getCreateHistory( + it, + it1 + ) + } + } + + binding.viewPagerDetail.post { + manifestAnyBuildGravityView()?.stop() + manifestAnyBuildGravityView()?.release() + } + if (videoData?.jump_type == 1) { + + shortPlayId.let { viewModel.getJumpLaunchVideo(it, 0) } + + } } needRestart = true - var max_9_K: String = "showwavespic" - while (max_9_K.length > 63) { - break - } - - recommendAdapter?.items?.get(currentPosition)?.let { it1 -> if (activityId != 0) { viewModel.getActiveAfterWatchingVideo( @@ -451,8 +443,16 @@ class MQVAutoWidthActivity : if (rightL >= 88) { } println(rightL) + if (videoData?.jump_type == 1) { + binding.viewPagerDetail.post { + manifestAnyBuildGravityView()?.stop() + manifestAnyBuildGravityView()?.release() + } + shortPlayId.let { viewModel.getJumpLaunchVideo(it, 0) } - handleCustomLogic() + } else { + handleCustomLogic() + } } if (JActivityAdapter.VIDEO_PAY_REFRESH == event) { needRestart = true @@ -614,27 +614,28 @@ class MQVAutoWidthActivity : if (marqueeo < 162.0f) { } -// if (revolution == "1080" && !RYAction.isVipTo()) { -// if (RYAction.isTouristTo()) { -// RYAction.getMMKV() -// .putInt(JActivityAdapter.CONSTANTS_QUALITY, 540) -// } else { -// RYAction.getMMKV() -// .putInt(JActivityAdapter.CONSTANTS_QUALITY, 720) -// } -// EventBus.getDefault().post(CONSTANTS_QUALITY_REFRESH) -// revolution = -// RYAction.getMMKV().getInt(JActivityAdapter.CONSTANTS_QUALITY, 540).toString() -// } - viewModel.getVideoPlayDetails(shortPlayId, 0, activityId, revolution) } EventBus.getDefault().register(this) onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { - if (handleCustomLogic()) { - return + if (videoData?.jump_type == 1) { + if (isVideoPlayAdd) { + binding.viewPagerDetail.post { + manifestAnyBuildGravityView()?.stop() + manifestAnyBuildGravityView()?.release() + } + shortPlayId.let { viewModel.getJumpLaunchVideo(it, 0) } + + } else { + finish() + } + + } else { + if (handleCustomLogic()) { + return + } } } }) @@ -658,6 +659,8 @@ class MQVAutoWidthActivity : binding.viewPagerDetail.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() { + private var isDragging = false + private var startPosition = 0 public fun queryVideoActivityAll(): Boolean { var stringVip: Int = 4189 @@ -691,6 +694,7 @@ class MQVAutoWidthActivity : super.onPageSelected(position) + currentPosition = position val handlerStore = recommendAdapter?.currentPlayingPosition if (handlerStore != position) { @@ -725,6 +729,7 @@ class MQVAutoWidthActivity : } recommendAdapter?.currentPlayingPosition = position + shortPlayId = recommendAdapter?.items?.get(position)?.short_play_id!! recommendAdapter?.items?.get(currentPosition)?.let { episode = it if (it.is_lock && !RYAction.isVipTo()) { @@ -844,17 +849,20 @@ class MQVAutoWidthActivity : super.onPageScrollStateChanged(state) when (state) { ViewPager2.SCROLL_STATE_IDLE -> { - if (binding.viewPagerDetail.currentItem == binding.viewPagerDetail.adapter?.itemCount?.minus( + if (binding.viewPagerDetail.currentItem == recommendAdapter?.items?.size?.minus( 1 ) ) { - if (!isFirst) { - viewModel.getVideoPlayDetails( - shortPlayId, 0, - activityId, revolution - ) - } else { - isFirst = false + if (videoData?.jump_type == 0) { + isVideoPlayAdd = true + videoData?.jump_short_play_id?.let { + viewModel.getVideoPlayDetails( + it, + 0, + activityId, + revolution + ) + } } } } @@ -896,6 +904,70 @@ class MQVAutoWidthActivity : isPlay = false } + + + val builder = ExoPlayer.Builder(this, BImage(this)) + .setRenderersFactory( + DefaultRenderersFactory(this).setEnableDecoderFallback( + true + ) + ) + player = builder.build() + playerView = + ViewUtils.layoutId2View(R.layout.layout_ad_player_view) as PlayerView + playerView?.player = player + ivIconPlayer = playerView?.findViewById(R.id.iv_close_recommend_detail) + player?.addListener(object : Player.Listener { + override fun onPlaybackStateChanged(playbackState: Int) { + super.onPlaybackStateChanged(playbackState) + when (playbackState) { + Player.STATE_BUFFERING -> { + ivIconPlayer?.visibility = View.VISIBLE + binding.layoutAd.loadLine.visibility = VISIBLE + binding.layoutAd.loadLine.postDelayed( + { binding.layoutAd.loadLine.startAnimation() }, + 200 + ) + } + + Player.STATE_READY -> { + ivIconPlayer?.visibility = View.INVISIBLE + isPlayAd = true + player?.play() + setProgress() + + binding.layoutAd.loadLine.visibility = View.INVISIBLE + binding.layoutAd.loadLine.endAnimation() + } + + Player.STATE_ENDED -> { +// ivIconPlayer?.visibility = View.VISIBLE + player?.seekTo(0) + } + + Player.STATE_IDLE -> { + } + } + } + + override fun onPlayerError(error: PlaybackException) { + super.onPlayerError(error) + binding.layoutAd.loadLine.visibility = View.INVISIBLE + } + }) + binding.layoutAd.ivDesChange.setOnClickListener { + isDesChangeExpanded = !isDesChangeExpanded + updateTextViewState(binding.layoutAd.tvDescription) + } + binding.layoutAd.tvDescription.setOnClickListener { + isDesChangeExpanded = !isDesChangeExpanded + updateTextViewState(binding.layoutAd.tvDescription) + } + + binding.layoutAd.ivAdBack.setOnClickListener { + finish() + } + } @@ -949,9 +1021,9 @@ class MQVAutoWidthActivity : var videoD: Double = 3972.0 if (videoD == 41.0) { } - - - manifestAnyBuildGravityView()?.play() + if (!JActivityAdapter.PLAYER_LOCK) { + manifestAnyBuildGravityView()?.play() + } if (binding.layoutRecommend.root.visibility == View.VISIBLE) { bannerAdapter?.getCurrentPlayerView()?.play() @@ -963,6 +1035,11 @@ class MQVAutoWidthActivity : isPlay = false } } + + + if (isPlayAd) { + player?.play() + } } @@ -1056,8 +1133,7 @@ class MQVAutoWidthActivity : if (constantsG.get("7") != null) { } - - if (shortVideo?.is_collect == true) { + if (recommendAdapter?.items?.get(currentPosition)?.shortPlayInfo?.is_collect == true) { var cameraz: Float = 6592.0f if (cameraz <= 133.0f) { } @@ -1315,7 +1391,7 @@ class MQVAutoWidthActivity : if (applicationC == 79.0f) { } - + val shortVideo = it.shortPlayInfo val adapterWight = Gson().toJson( shortPlayId?.let { it1 -> NBECenterBean( @@ -1399,9 +1475,12 @@ class MQVAutoWidthActivity : bannerAdapter?.getCurrentPlayerView()?.stop() bannerAdapter?.getCurrentPlayerView()?.release() } - + exampleProgressJob?.cancel() + exampleProgressJob = null + player?.stop() + player?.release() + player = null } - recommendAdapter?.shortVideo = null var mmkvi: Double = 540.0 if (mmkvi <= 149.0) { } @@ -1497,17 +1576,11 @@ class MQVAutoWidthActivity : }, 300) var num_: Boolean = false + val index = recommendAdapter?.items?.indexOfFirst { it.short_play_id == shortPlayId } episode.episode.minus(1) .let { - var baseL: MutableList = mutableListOf() - baseL.add("suggestions") - baseL.add("carefully") - baseL.add("ranks") - println(baseL) - - - binding.viewPagerDetail.currentItem = it + binding.viewPagerDetail.currentItem = it + index!! } } @@ -1528,7 +1601,7 @@ class MQVAutoWidthActivity : } - + @SuppressLint("UnsafeOptInUsageError") override fun observeData() { var trailSkipintra = this.lifePrivacyBrowse() @@ -1553,157 +1626,77 @@ class MQVAutoWidthActivity : viewModel.videoPlayDetails.observe(this) { - var auto_o2: Double = 5607.0 - while (auto_o2 > 174.0) { - break - } - - - var unitW: String = "librsvg" - if (unitW.length > 74) { - } - if (it?.data?.episodeList != null && it.data.episodeList.isNotEmpty()) { - var vipU: MutableMap = mutableMapOf() - vipU.put("circ", false) - vipU.put("amrwbdec", true) - vipU.put("rror", true) - vipU.put("bonjour", true) - vipU.put("intel", false) - if (vipU.size > 62) { - } - - - shortVideo = it.data.shortPlayInfo - var max_ie: Boolean = true - while (max_ie) { - break - } - - + videoData = it.data +// shortVideo = it.data.shortPlayInfo binding.ivCover.visibility = View.INVISIBLE - var min_dby: Float = 5765.0f - - binding.viewPagerDetail.visibility = View.VISIBLE - var uploadU: String = "recognition" - while (uploadU.length > 36) { - break + +// shortPlayId = it.data.shortPlayInfo.id + + it.data.episodeList.forEach { it1 -> + it1.shortPlayInfo = it.data.shortPlayInfo } + if (isVideoPlayAdd) { + recommendAdapter?.addAll(it.data.episodeList) + isVideoPlayAdd = false + } else { + recommendAdapter = SUJustSmart() + binding.viewPagerDetail.adapter = recommendAdapter + recommendAdapter?.submitList(it.data.episodeList) + if (it.data.video_info.episode > 1) { + it.data.video_info.episode.minus(1) + .let { it1 -> + binding.viewPagerDetail.setCurrentItem( + it1, + false + ) + } + if (it.data.video_info.episode == it.data.episodeList.size && isFirst){ + if (videoData?.jump_type == 0) { + isFirst = false + isVideoPlayAdd = true + videoData?.jump_short_play_id?.let { + viewModel.getVideoPlayDetails( + it, + 0, + activityId, + revolution + ) + } + } + } + } - recommendAdapter = SUJustSmart() - var bottomZ: Boolean = false - while (!bottomZ) { - break } - println(bottomZ) - - - recommendAdapter?.shortVideo = it.data.shortPlayInfo - var gsonE: MutableMap = mutableMapOf() - gsonE.put("mins", 745) - gsonE.put("stepper", 90) - gsonE.put("longitude", 100) - gsonE.put("decomposei", 998) - gsonE.put("alter", 434) - while (gsonE.size > 193) { - break - } - - - binding.viewPagerDetail.adapter = recommendAdapter - var e_managerj: String = "rstn" - if (e_managerj.length > 56) { - } - - - recommendAdapter?.submitList(it.data.episodeList) - var categoriesR: Long = 1541L - if (categoriesR <= 86L) { - } - println(categoriesR) - recommendAdapter?.playerDetailCollection = this@MQVAutoWidthActivity - var ballX: Boolean = true - while (!ballX) { - break - } - - viewModel.getCreateHistory( it.data.episodeList[0].short_play_id, it.data.episodeList[0].short_play_video_id ) - var startA: Boolean = true - if (startA) { - } - println(startA) - binding.ivBack.visibility = View.GONE showComplete() - var rights: Long = 9660L - if (rights > 16L) { - } - - binding.ivCover.let { it1 -> - Glide.with(this@MQVAutoWidthActivity).load(shortVideo?.image_url) + Glide.with(this@MQVAutoWidthActivity).load(it.data.shortPlayInfo?.image_url) .into(it1) } - if (it.data.video_info.episode > 1) { - var skewedF: Float = 2316.0f - while (skewedF >= 159.0f) { - break - } - - it.data.video_info.episode.minus(1) - .let { it1 -> - binding.viewPagerDetail.setCurrentItem( - it1, - false - ) - } - } } else { - var rules6: MutableMap = mutableMapOf() - rules6.put("completion", 959L) - rules6.put("baked", 91L) - while (rules6.size > 38) { - break - } - if (TranslationHelper.getTranslation() != null) { toast(TranslationHelper.getTranslation()?.veloria_no_more_data.toString()) } else { toast(getString(R.string.coinsTrends)) - } - var priceH: Int = 3894 - while (priceH == 163) { - break - } - - - if (currentPage == 1) { - var default_qz3: Boolean = false - while (!default_qz3) { - break - } - + if (recommendAdapter == null) { binding.ivBack.visibility = View.VISIBLE showEmptyData() } } binding.root?.postDelayed({ - var extractionk: Int = 8676 - if (extractionk < 144) { - } - hideLoading() }, 800) @@ -1765,7 +1758,7 @@ class MQVAutoWidthActivity : break } - + val shortVideo = recommendAdapter?.items?.get(currentPosition)?.shortPlayInfo shortVideo?.collect_total = shortVideo?.collect_total?.plus(1)!! var actionr: String = "sprites" if (actionr.length > 155) { @@ -1794,7 +1787,7 @@ class MQVAutoWidthActivity : } - recommendAdapter?.shortVideo = shortVideo +// recommendAdapter?.shortVideo = shortVideo var detail3: Long = 9398L while (detail3 == 130L) { break @@ -1868,7 +1861,7 @@ class MQVAutoWidthActivity : jobBaseEmptyView?.setImageResource(R.mipmap.login_navigation) var searchc: String = "constant" - + val shortVideo = recommendAdapter?.items?.get(currentPosition)?.shortPlayInfo shortVideo?.collect_total = shortVideo?.collect_total?.minus(1)!! var footerS: Float = 2250.0f while (footerS <= 70.0f) { @@ -1892,7 +1885,6 @@ class MQVAutoWidthActivity : var paddingN: Int = 2940 - recommendAdapter?.shortVideo = shortVideo var categoriesw: MutableMap = mutableMapOf() categoriesw.put("dialog", 810L) categoriesw.put("swappable", 743L) @@ -2124,6 +2116,53 @@ class MQVAutoWidthActivity : } } + viewModel.JumpLaunchVideoData.observe(this) { + if (it?.data != null) { + if (it.data.jump_status) { + binding.layoutAd.root.visibility = View.VISIBLE + ivIconPlayer?.let { it1 -> + Glide.with(this) + .load(it.data.shortPlayInfo?.image_url) + .placeholder(R.mipmap.collection_trending_recommend) + .into(it1) + } + + (playerView?.parent as FrameLayout?)?.removeView(playerView) + binding.layoutAd.video.removeAllViews() + binding.layoutAd.video.addView(playerView) + it.data.video_info.video_url?.let { buildMediaSource(it) } + ?.let { player?.setMediaSource(it) } + player?.prepare() + + binding.layoutAd.tvName.text = it.data.site_info.name + Glide.with(this) + .load(it.data.site_info.logo_url) + .placeholder(R.mipmap.collection_trending_recommend) + .into(binding.layoutAd.ivLogo) + + binding.layoutAd.tvDescription.text = it.data.shortPlayInfo.description + + binding.layoutAd.tvDownload.setOnClickListener { it1 -> + singleOnClick { + viewModel.setJumpLaunchVideo( + JumpLaunchVideoReqBean( + it.data.shortPlayInfo.id, + shortPlayId, + 0 + ) + ) +// val link = "https://zyreoapp.go.link/2TzeP?site_id=11&source_ffmpeg_id=1&short_play_id=79&type=jump&id=45&adj_deep_link=zyreoapp%3A%2F%2F%3Fsite_id%3D11%26source_ffmpeg_id%3D1%26short_play_id%3D79%26type%3Djump%26id%3D45" + YFHome.openAppInMarket(this, it.data.launch_url) + player?.pause() + } + } + + } else { + toast(it.data.jump_msg) + } + } + } + } @@ -2400,4 +2439,56 @@ class MQVAutoWidthActivity : callbackManager?.onActivityResult(requestCode, resultCode, data) } + private fun setProgress() { + // 安全获取播放器实例 + val currentPlayer = player ?: return + exampleProgressJob?.cancel() + val duration = currentPlayer.duration + binding.layoutAd.sbPlayerController?.max = duration.toInt() + binding.layoutAd.sbPlayerController?.progress = currentPlayer.currentPosition.toInt() + binding.layoutAd.sbPlayerController?.setOnSeekBarChangeListener(null) + exampleProgressJob = viewLifecycleScope.launch { + while (isActive) { + withContext(Dispatchers.Main) { + binding.layoutAd.sbPlayerController?.progress = + currentPlayer.currentPosition.toInt() + seekTime() + } + delay(1000) + } + } + binding.layoutAd.sbPlayerController.isEnabled = false + } + + private fun seekTime() { + val currentPosition = player!!.currentPosition + val currentTime = formatTimestamp(currentPosition / 1000) + val totalDuration = player!!.duration + val totalTime = formatTimestamp(totalDuration / 1000) + binding.layoutAd.tvPlayerSeekTime.text = "$currentTime/$totalTime" + } + + private var isDesChangeExpanded = false + + @SuppressLint("SetTextI18n") + private fun updateTextViewState(textView: AppCompatTextView?) { + if (isDesChangeExpanded) { + textView?.maxLines = 5 + textView?.ellipsize = TextUtils.TruncateAt.END + binding.layoutAd.ivDesChange.setImageResource(R.mipmap.iv_des_top) + } else { + textView?.maxLines = 1 + textView?.ellipsize = TextUtils.TruncateAt.END + binding.layoutAd.ivDesChange.setImageResource(R.mipmap.iv_des_down) + } + textView?.post { + val ellipsisCount = textView.layout?.getEllipsisCount(textView.lineCount - 1) + if (ellipsisCount != null) { + if (ellipsisCount <= 0 && textView.maxLines == 2) { + binding.layoutAd.ivDesChange.visibility = View.INVISIBLE + } + } + } + } + } \ No newline at end of file diff --git a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/PSVHomeSearchActivity.kt b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/PSVHomeSearchActivity.kt index 58b4887..a875c4a 100644 --- a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/PSVHomeSearchActivity.kt +++ b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/PSVHomeSearchActivity.kt @@ -7,6 +7,7 @@ import android.content.ClipboardManager import android.content.Context import android.content.Intent import android.content.pm.PackageManager +import android.net.Uri import android.os.Build import android.os.Bundle import android.text.TextUtils @@ -256,11 +257,6 @@ class PSVHomeSearchActivity : AIXTextActivity( } } - viewModel.w2aSelfAttributionData.observe(this) { - if (needSave) { - setAdjustToDetail() - } - } viewModel.restorePaidData.observe(this) { if (it != null) { it.data?.order_code?.let { it1 -> RYAction.removeOrderString(it1) } @@ -493,7 +489,8 @@ class PSVHomeSearchActivity : AIXTextActivity( } println(handlerE) - + val webpageURL = intent.data + uploadDDL(webpageURL) EventBus.getDefault().register(this) var episode0: Long = 1323L if (episode0 > 52L) { @@ -839,6 +836,13 @@ class PSVHomeSearchActivity : AIXTextActivity( ) } } + if (JActivityAdapter.HOME_DDL_URL == event) { + val ddl = + RYAction.getMMKV().getString(JActivityAdapter.HOME_DDL_URL, "") + if (ddl?.isNotEmpty() == true) { + w2aSelfAttribution(ddl) + } + } } private fun restartApplication(context: Context) { @@ -930,63 +934,72 @@ class PSVHomeSearchActivity : AIXTextActivity( private var shortVideoId: Int = 0 private var videoId: Int = 0 - private var needSave = false - - override fun onResume() { - super.onResume() - this.window.decorView.post { - val clipContent = getClipString() - if (clipContent.isNotEmpty()) { - if (clipContent.startsWith("[QJ]")) { - val urlString = clipContent.removePrefix("[QJ]").trim() - val extractVideoInfo = parseVideoAndShortPlayIds(urlString) - if (urlString.contains("veloriaapp")) { - shortVideoId = extractVideoInfo.second?.toInt() ?: 0 - videoId = extractVideoInfo.first?.toInt() ?: 0 - if (shortVideoId != 0) { + private fun uploadDDL(webpageURL: Uri?) { + val ddl = webpageURL.toString() + if (ddl.isNotEmpty() && !ddl.contentEquals("null")) { + w2aSelfAttribution(ddl) + val regex = """short_play_id=(\d+).*""".toRegex() + val matchResult = regex.find(ddl) + if (matchResult != null) { + val shortPlayId = matchResult.groupValues[1] + shortVideoId = shortPlayId.toInt() + binding?.root?.postDelayed({ + if (shortVideoId != 0) { + startActivity( + Intent( + this, MQVAutoWidthActivity::class.java + ).apply { + putExtra( + VIDEO_SHORT_PLAY_ID, shortVideoId + ) + }) + } + RYAction.getMMKV() + .putString(JActivityAdapter.HOME_DDL_URL, "") + clearClipboardContent(this) + }, 1000) + } + } else { + this.window.decorView.post { + val clipContent = getClipString() + if (clipContent.isNotEmpty()) { + if (clipContent.startsWith("[QJ]")) { + val urlString = clipContent.removePrefix("[QJ]").trim() + val extractVideoInfo = parseVideoAndShortPlayIds(urlString) + if (urlString.contains("veloriaapp")) { + shortVideoId = extractVideoInfo.second?.toInt() ?: 0 RYAction.getMMKV().putString( - JActivityAdapter.VIDEO_SHORT_PLAY_ID, extractVideoInfo.second + VIDEO_SHORT_PLAY_ID, + shortVideoId.toString() ) - needSave = true w2aSelfAttribution(clipContent) + binding?.root?.postDelayed({ + if (shortVideoId != 0) { + startActivity( + Intent( + this, MQVAutoWidthActivity::class.java + ).apply { + putExtra( + VIDEO_SHORT_PLAY_ID, + shortVideoId + ) + }) + } + RYAction.getMMKV() + .putString(JActivityAdapter.HOME_DDL_URL, "") + clearClipboardContent(this) + }, 1000) } } } } } + } - binding.root.postDelayed({ - val ddl = - RYAction.getMMKV().getString(JActivityAdapter.HOME_DDL_URL, "") - if (ddl?.isNotEmpty() == true) { - w2aSelfAttribution(ddl) - // 定义正则表达式 - val regex = """short_play_id=(\d+).*""".toRegex() - // 匹配 URL - val matchResult = regex.find(ddl) - if (matchResult != null) { - // 获取匹配的组 - val shortPlayId = matchResult.groupValues[1] - val toInt = shortPlayId.toInt() - if (toInt != 0) { - binding.root.postDelayed({ - startActivity(Intent( - this, MQVAutoWidthActivity::class.java - ).apply { - putExtra( - JActivityAdapter.VIDEO_SHORT_PLAY_ID, toInt - ) - }) - RYAction.getMMKV().putString(JActivityAdapter.HOME_DDL_URL, "") - }, 200) - } - } else { - RYAction.getMMKV().putString(JActivityAdapter.HOME_DDL_URL, "") - } - } - }, 1500) + override fun onResume() { + super.onResume() if (binding.bottomNavBar.selectedPosition == 0) { binding.dialogWatch.root.postDelayed( { @@ -1004,22 +1017,6 @@ class PSVHomeSearchActivity : AIXTextActivity( } - private fun setAdjustToDetail() { - binding.root.postDelayed({ - startActivity(Intent( - this, MQVAutoWidthActivity::class.java - ).apply { - putExtra( - VIDEO_SHORT_PLAY_ID, shortVideoId - ) - }) - clearClipboardContent(this) - RYAction.getMMKV() - .putString(JActivityAdapter.HOME_DDL_URL, "") - }, 1000) - needSave = false - } - private fun getClipString(): String { val manager: ClipboardManager = getSystemService( CLIPBOARD_SERVICE @@ -1081,6 +1078,7 @@ class PSVHomeSearchActivity : AIXTextActivity( // setDeeplinkFbApi(facebook_id) } } + System.out.println("HOME_DDL_URL w2aSelfAttribution" + data) data?.let { viewModel.setW2aSelfAttribution(it) } } @@ -1245,6 +1243,9 @@ class PSVHomeSearchActivity : AIXTextActivity( override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) + val webpageURL = intent?.data + uploadDDL(webpageURL) + path = intent?.getStringExtra("path").toString() short_play_id = intent?.getStringExtra("short_play_id").toString() message_id = intent?.getStringExtra("message_id").toString() diff --git a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/YPDataActivity.kt b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/YPDataActivity.kt index 8ef8c5a..19753ae 100644 --- a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/YPDataActivity.kt +++ b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/YPDataActivity.kt @@ -1,7 +1,5 @@ package com.veloria.now.shortapp.subtractionCroll.bidirectional -import android.content.Intent -import android.util.Log import androidx.activity.viewModels import com.veloria.now.shortapp.civil.JActivityAdapter import com.veloria.now.shortapp.civil.RYAction @@ -146,23 +144,14 @@ class YPDataActivity : override fun initView() { - val webpageURL = intent.data - Log.d("webpageURL", webpageURL.toString()) - if (null != webpageURL) { - RYAction.getMMKV().putString(JActivityAdapter.HOME_DDL_URL, webpageURL.toString()) - } - var levarintRecalculation = this.useInnerCircleManual(false) - - println(levarintRecalculation) - var renderers_levarintRecalculation: Int = levarintRecalculation.toInt() - - println(levarintRecalculation) - - if (RYAction.getMMKV().getString(JActivityAdapter.ACCOUNT_TOKEN, "").toString() .isEmpty() ) { - viewModel.loadData() + + binding.root.postDelayed({ + viewModel.loadData() + }, 500) + } else { toMain() } @@ -171,14 +160,4 @@ class YPDataActivity : override fun getViewBinding() = CzdStylesBinding.inflate(layoutInflater) - override fun onNewIntent(intent: Intent?) { - super.onNewIntent(intent) - val webpageURL = intent?.data - Log.d("webpageURL", webpageURL.toString()) - if (null != webpageURL) { - RYAction.getMMKV().putString(JActivityAdapter.HOME_DDL_URL, webpageURL.toString()) - } - } - - } \ No newline at end of file diff --git a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/coordinate/JService.kt b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/coordinate/JService.kt index 5eccf12..955b427 100644 --- a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/coordinate/JService.kt +++ b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/coordinate/JService.kt @@ -101,12 +101,11 @@ class JService : SStringsHelp() { repository.setLeaveApp().observeForever {} } - private val _w2aSelfAttributionLiveData = + private val w2aSelfAttributionLiveData = MutableLiveData?>() - val w2aSelfAttributionData: MutableLiveData?> get() = _w2aSelfAttributionLiveData fun setW2aSelfAttribution(data: String) { repository.setW2aSelfAttribution(data).observeForever { result -> - _w2aSelfAttributionLiveData.value = result.getOrNull() + w2aSelfAttributionLiveData.value = result.getOrNull() } } diff --git a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/coordinate/UKBottomCollection.kt b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/coordinate/UKBottomCollection.kt index 1bacf09..a07b0a2 100644 --- a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/coordinate/UKBottomCollection.kt +++ b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/bidirectional/coordinate/UKBottomCollection.kt @@ -1,26 +1,27 @@ package com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate import androidx.lifecycle.MutableLiveData -import com.veloria.now.shortapp.newsletter.TStore -import com.veloria.now.shortapp.newsletter.SStringsHelp -import com.veloria.now.shortapp.texturedAsink.PURLockBean -import com.veloria.now.shortapp.texturedAsink.XAboutBean import com.veloria.now.shortapp.highbits.qscaleqlog.PDeteleResource +import com.veloria.now.shortapp.newsletter.SStringsHelp +import com.veloria.now.shortapp.newsletter.TStore import com.veloria.now.shortapp.texturedAsink.DoLoginBean +import com.veloria.now.shortapp.texturedAsink.JumpLaunchVideoBean +import com.veloria.now.shortapp.texturedAsink.JumpLaunchVideoReqBean import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean import com.veloria.now.shortapp.texturedAsink.LoginDataBean +import com.veloria.now.shortapp.texturedAsink.PURLockBean import com.veloria.now.shortapp.texturedAsink.VeBuyVideoBean import com.veloria.now.shortapp.texturedAsink.VeDetailsRecommendBean import com.veloria.now.shortapp.texturedAsink.VeRevolutionsBean -import kotlin.math.min -import kotlin.math.max +import com.veloria.now.shortapp.texturedAsink.XAboutBean class UKBottomCollection : SStringsHelp() { -@Volatile - var qualityActiveTag: Int = 3526 -@Volatile -private var moreSecond_sum: Int = 6970 + @Volatile + var qualityActiveTag: Int = 3526 + + @Volatile + private var moreSecond_sum: Int = 6970 private val repository = PDeteleResource() @@ -130,4 +131,17 @@ private var moreSecond_sum: Int = 6970 } } + private val _JumpLaunchVideoLiveData = MutableLiveData?>() + val JumpLaunchVideoData: MutableLiveData?> get() = _JumpLaunchVideoLiveData + fun getJumpLaunchVideo(short_play_id: Int, video_id: Int) { + repository.getJumpLaunchVideo(short_play_id, video_id).observeForever { result -> + _JumpLaunchVideoLiveData.value = result.getOrNull() + } + } + + fun setJumpLaunchVideo(jumpLaunchVideoResBean: JumpLaunchVideoReqBean) { + repository.setJumpLaunchVideo(jumpLaunchVideoResBean).observeForever {} + } + + } diff --git a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/modificationsPretch/SUJustSmart.kt b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/modificationsPretch/SUJustSmart.kt index 62bfa30..3db1d60 100644 --- a/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/modificationsPretch/SUJustSmart.kt +++ b/app/src/main/java/com/veloria/now/shortapp/subtractionCroll/modificationsPretch/SUJustSmart.kt @@ -7,29 +7,29 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.recyclerview.widget.RecyclerView import com.chad.library.adapter4.BaseQuickAdapter import com.veloria.now.shortapp.R -import com.veloria.now.shortapp.texturedAsink.XAboutBean import com.veloria.now.shortapp.databinding.RgmApplicationBinding import com.veloria.now.shortapp.rewards.TOYPlayfairAutoView -import kotlin.math.min -import kotlin.math.max +import com.veloria.now.shortapp.texturedAsink.XAboutBean class SUJustSmart : BaseQuickAdapter() { -@Volatile -private var enbale_RestartNumClose: Boolean = true -@Volatile - var release_1bSelectionClose_string: String = "nonnullssrcs" -@Volatile -private var notificationsRequestStringMap: MutableMap = mutableMapOf() -@Volatile -private var marqueeWatchFontDict: MutableMap = mutableMapOf() + @Volatile + private var enbale_RestartNumClose: Boolean = true + + @Volatile + var release_1bSelectionClose_string: String = "nonnullssrcs" + + @Volatile + private var notificationsRequestStringMap: MutableMap = + mutableMapOf() + + @Volatile + private var marqueeWatchFontDict: MutableMap = mutableMapOf() var currentPlayingPosition = 0 var playerDetailCollection: PlayerDetailCollection? = null - var shortVideo: XAboutBean.ShortPlayInfo? = null - interface PlayerDetailCollection { fun collection(episode: XAboutBean.Episode) @@ -43,103 +43,111 @@ private var marqueeWatchFontDict: MutableMap = mutableMapOf { - var navigationAnimating:Int = 8604 - println(navigationAnimating) - var instrumentedPlace = 6738L - println(instrumentedPlace) - var categoriesBack:Float = 4318.0f - var activityManual = true - var persistedShimmerBds = mutableMapOf() - instrumentedPlace *= instrumentedPlace - persistedShimmerBds.put("poslistMbcntGuess", 5933.0f) - activityManual = false - persistedShimmerBds.put("jmemsysVopenIsdigit", 0.0f) + private fun vibrateSmartImageShower(): MutableMap { + var navigationAnimating: Int = 8604 + println(navigationAnimating) + var instrumentedPlace = 6738L + println(instrumentedPlace) + var categoriesBack: Float = 4318.0f + var activityManual = true + var persistedShimmerBds = mutableMapOf() + instrumentedPlace *= instrumentedPlace + persistedShimmerBds.put("poslistMbcntGuess", 5933.0f) + activityManual = false + persistedShimmerBds.put("jmemsysVopenIsdigit", 0.0f) - return persistedShimmerBds + return persistedShimmerBds -} + } -override fun onBindViewHolder( + override fun onBindViewHolder( holder: VH, position: Int, item: XAboutBean.Episode? ) { -var intsResizing = this.vibrateSmartImageShower() + var intsResizing = this.vibrateSmartImageShower() - for(obj_u in intsResizing) { - println(obj_u.key) - println(obj_u.value) - } - var intsResizing_len = intsResizing.size + for (obj_u in intsResizing) { + println(obj_u.key) + println(obj_u.value) + } + var intsResizing_len = intsResizing.size -println(intsResizing) + println(intsResizing) - var androidG:Boolean = true - if (androidG) {} - println(androidG) + var androidG: Boolean = true + if (androidG) { + } + println(androidG) if (null != item) { - var round7:MutableMap = mutableMapOf() - round7.put("resume", 94L) - round7.put("complex", 615L) - round7.put("findep", 228L) - round7.put("torch", 214L) - round7.put("party", 313L) - if (round7.size > 94) {} + var round7: MutableMap = mutableMapOf() + round7.put("resume", 94L) + round7.put("complex", 615L) + round7.put("findep", 228L) + round7.put("torch", 214L) + round7.put("party", 313L) + if (round7.size > 94) { + } val positionCurrentView = holder.binding.itemDetailView.findViewById(R.id.item_detail_view) - var totald:MutableMap = mutableMapOf() - totald.put("decelerating", 836.0f) - totald.put("darts", 817.0f) + var totald: MutableMap = mutableMapOf() + totald.put("decelerating", 836.0f) + totald.put("darts", 817.0f) val jobBaseEmptyViewS = positionCurrentView.findViewById(R.id.iv_collection) - var factorym:MutableMap = mutableMapOf() - factorym.put("mapping", "wrapping") - factorym.put("items", "dismissing") - factorym.put("cocosdx", "wei") - factorym.put("localhost", "ftvpnode") - if (factorym.size > 98) {} + var factorym: MutableMap = mutableMapOf() + factorym.put("mapping", "wrapping") + factorym.put("items", "dismissing") + factorym.put("cocosdx", "wei") + factorym.put("localhost", "ftvpnode") + if (factorym.size > 98) { + } println(factorym) jobBaseEmptyViewS.setOnClickListener { - var emptyJ:Double = 4961.0 - if (emptyJ >= 137.0) {} + var emptyJ: Double = 4961.0 + if (emptyJ >= 137.0) { + } - var boldb:Long = 5743L - if (boldb == 194L) {} - println(boldb) + var boldb: Long = 5743L + if (boldb == 194L) { + } + println(boldb) - item.let { it1 -> playerDetailCollection?.collection(it1) } } + item.let { it1 -> playerDetailCollection?.collection(it1) } + } if (position == currentPlayingPosition) { - var min_pt:Double = 9404.0 - if (min_pt <= 48.0) {} - println(min_pt) + var min_pt: Double = 9404.0 + if (min_pt <= 48.0) { + } + println(min_pt) item.let { - var gsonr:Long = 1958L - while (gsonr >= 133L) { break } + var gsonr: Long = 1958L + while (gsonr >= 133L) { + break + } - shortVideo?.let { it1 -> + item.shortPlayInfo?.let { it1 -> holder.binding.itemDetailView.setPlayInfo(it, it1) } } } else { - var clientv:Long = 1693L - println(clientv) + var clientv: Long = 1693L + println(clientv) holder.binding.itemDetailView.stop() @@ -148,45 +156,50 @@ println(intsResizing) } - -private fun putActivityEditorAgreementInstance(while_3Progress: Float, arrangementUtil: MutableList) :Int { - var heightTrend:String = "runterm" - var editDescription_i = false - var storeDown = true - var colcolBytecodeMinimal:Int = 8785 - editDescription_i = false - colcolBytecodeMinimal += if(editDescription_i) 22 else 42 - storeDown = false - colcolBytecodeMinimal += if(storeDown) 39 else 0 - return colcolBytecodeMinimal + private fun putActivityEditorAgreementInstance( + while_3Progress: Float, + arrangementUtil: MutableList + ): Int { + var heightTrend: String = "runterm" + var editDescription_i = false + var storeDown = true + var colcolBytecodeMinimal: Int = 8785 + editDescription_i = false + colcolBytecodeMinimal += if (editDescription_i) 22 else 42 + storeDown = false + colcolBytecodeMinimal += if (storeDown) 39 else 0 -} + return colcolBytecodeMinimal + + } -override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { -var macros_a = mutableListOf() + override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH { + var macros_a = mutableListOf() -var packsPreference = this.putActivityEditorAgreementInstance(9955.0f,macros_a) + var packsPreference = this.putActivityEditorAgreementInstance(9955.0f, macros_a) - if (packsPreference >= 25) { - println(packsPreference) - } + if (packsPreference >= 25) { + println(packsPreference) + } -println(packsPreference) + println(packsPreference) - var secondsp:String = "read" - while (secondsp.length > 83) { break } + var secondsp: String = "read" + while (secondsp.length > 83) { + break + } -this.enbale_RestartNumClose = false + this.enbale_RestartNumClose = false - this.release_1bSelectionClose_string = "earlier" + this.release_1bSelectionClose_string = "earlier" - this.notificationsRequestStringMap = mutableMapOf() + this.notificationsRequestStringMap = mutableMapOf() - this.marqueeWatchFontDict = mutableMapOf() + this.marqueeWatchFontDict = mutableMapOf() return VH(parent) diff --git a/app/src/main/java/com/veloria/now/shortapp/texturedAsink/JumpLaunchVideoBean.kt b/app/src/main/java/com/veloria/now/shortapp/texturedAsink/JumpLaunchVideoBean.kt new file mode 100644 index 0000000..63dfebe --- /dev/null +++ b/app/src/main/java/com/veloria/now/shortapp/texturedAsink/JumpLaunchVideoBean.kt @@ -0,0 +1,53 @@ +package com.veloria.now.shortapp.texturedAsink + +data class JumpLaunchVideoBean( + val jump_msg: String, + val jump_status: Boolean, + val app_schema: String, + val launch_url: String, + val revolution: Int, + val shortPlayInfo: ShortPlayInfo, + val site_info: SiteInfo, + val video_info: VideoInfo +) { + data class ShortPlayInfo( + val all_coins: Int, + val buy_type: Int, + val category: List, + val collect_total: Int, + val description: String, + val episode_total: Int, + val ffmpeg_id: Int, + val horizontally_img: String, + val id: Int, + val image_url: String, + val jump_ffmpeg_id: Any, + val manual_hot_count: Int, + val name: String, + val process: Int, + val short_id: Int, + val watch_total: Int + ) + + data class SiteInfo( + val logo_url: String, + val name: String, + val style_color: String + ) + + data class VideoInfo( + val coins: Int, + val coins_level: Any, + val episode: Int, + val id: Int, + val is_vip: Int, + val play_seconds: Int, + val promise_view_ad: Int, + val short_id: Int, + val short_play_id: Int, + val short_play_video_id: Int, + val video_url: String, + val vip_coins: Int + ) +} + diff --git a/app/src/main/java/com/veloria/now/shortapp/texturedAsink/JumpLaunchVideoReqBean.kt b/app/src/main/java/com/veloria/now/shortapp/texturedAsink/JumpLaunchVideoReqBean.kt new file mode 100644 index 0000000..1a7f0b5 --- /dev/null +++ b/app/src/main/java/com/veloria/now/shortapp/texturedAsink/JumpLaunchVideoReqBean.kt @@ -0,0 +1,7 @@ +package com.veloria.now.shortapp.texturedAsink + +data class JumpLaunchVideoReqBean( + val jump_short_play_id: Int, + val short_play_id: Int, + val video_id: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/veloria/now/shortapp/texturedAsink/XAboutBean.kt b/app/src/main/java/com/veloria/now/shortapp/texturedAsink/XAboutBean.kt index 618bdd5..e658eaf 100644 --- a/app/src/main/java/com/veloria/now/shortapp/texturedAsink/XAboutBean.kt +++ b/app/src/main/java/com/veloria/now/shortapp/texturedAsink/XAboutBean.kt @@ -3,10 +3,9 @@ package com.veloria.now.shortapp.texturedAsink import android.os.Parcel import android.os.Parcelable import kotlin.math.min -import kotlin.math.max -class XAboutBean( +data class XAboutBean( val episodeList: List, val is_collect: Boolean, val show_share_coin: Boolean, @@ -15,20 +14,22 @@ class XAboutBean( val unlock_video_ad_count: Int, val revolution: Int, val discount: Int, + val jump_type: Int, + var jump_short_play_id: Int, var business_model: String, val shortPlayInfo: ShortPlayInfo, val video_info: KPLeftList ) { -@Volatile - var moduleJob_string: String = "vect" -@Volatile -private var watchingLockSetupString: String = "corners" -@Volatile - var recentBodyloadMin: Float = 157.0f + @Volatile + var moduleJob_string: String = "vect" + @Volatile + private var watchingLockSetupString: String = "corners" + @Volatile + var recentBodyloadMin: Float = 157.0f - data class Episode ( + data class Episode( val coins: Int, val episode: Int, val id: Int, @@ -40,7 +41,8 @@ private var watchingLockSetupString: String = "corners" val vip_coins: Int, var play_seconds: String?, var promise_view_ad: Int, - ) : Parcelable{ + var shortPlayInfo: ShortPlayInfo? + ) : Parcelable { constructor(parcel: Parcel) : this( parcel.readInt(), parcel.readInt(), @@ -51,274 +53,42 @@ private var watchingLockSetupString: String = "corners" parcel.readInt(), parcel.readString().toString(), parcel.readInt(), - parcel.readString().toString(), - parcel.readInt() + parcel.readString(), + parcel.readInt(), + parcel.readParcelable(ShortPlayInfo::class.java.classLoader) ) { } - -private fun surfaceModelReadItemCloseArrangement(variableCenter: MutableList) :Boolean { - var playfairPlayfair = 6746 - var jobSeconds:Boolean = true - var recommendsService = 4565.0 - println(recommendsService) - var animatingDragging:MutableList = mutableListOf() - var existedDbsizeGeotags = false - playfairPlayfair *= 454 - existedDbsizeGeotags = playfairPlayfair > 28 - jobSeconds = false - existedDbsizeGeotags = !jobSeconds - recommendsService -= 451.0 - existedDbsizeGeotags = recommendsService > 18 - - return existedDbsizeGeotags - -} - - -override fun writeToParcel(parcel: Parcel, flags: Int) { -var composition_f:MutableList = mutableListOf() - -var invisibleTimescale:Boolean = this.surfaceModelReadItemCloseArrangement(composition_f) - - if (invisibleTimescale) { - println("history") - } - -println(invisibleTimescale) - - - var horizontally9:Float = 7990.0f - if (horizontally9 >= 44.0f) {} - - + override fun writeToParcel(parcel: Parcel, flags: Int) { parcel.writeInt(coins) - var movec:MutableMap = mutableMapOf() - movec.put("packed", 40L) - movec.put("nextl", 456L) - movec.put("mage", 120L) - movec.put("start", 602L) - while (movec.size > 186) { break } - println(movec) - - parcel.writeInt(episode) - var lifecycleV:Double = 3477.0 - while (lifecycleV >= 40.0) { break } - - parcel.writeInt(id) - var size_dN:String = "gens" - if (size_dN.length > 197) {} - - parcel.writeByte(if (is_lock) 1 else 0) - var local_9uD:Boolean = false - while (local_9uD) { break } - - parcel.writeInt(is_vip) - var recentv:MutableMap = mutableMapOf() - recentv.put("unread", false) - recentv.put("nulls", false) - recentv.put("notget", false) - recentv.put("colspan", false) - recentv.put("dynamically", false) - recentv.put("comparable", false) - if (recentv.get("5") != null) {} - - parcel.writeInt(short_play_id) - var exploreo:Long = 7484L - - parcel.writeInt(short_play_video_id) - var againH:Double = 2197.0 - if (againH < 143.0) {} - - parcel.writeString(video_url) - var itemt:MutableList = mutableListOf() - itemt.add("truncate") - itemt.add("vpcx") - itemt.add("cine") - while (itemt.size > 168) { break } - - parcel.writeInt(vip_coins) - var backg:MutableList = mutableListOf() - backg.add(135L) - backg.add(727L) - backg.add(842L) - backg.add(795L) - if (backg.size > 122) {} - - parcel.writeString(play_seconds) - var appvelorias:MutableList = mutableListOf() - appvelorias.add("movenc") - appvelorias.add("trezor") - appvelorias.add("qcelpdata") - appvelorias.add("sinqb") - appvelorias.add("downloadable") - if (appvelorias.contains("launches")) {} - - parcel.writeInt(promise_view_ad) + parcel.writeParcelable(shortPlayInfo, flags) } - -private fun lastCheckedPageScan(verticalString: Boolean, skewedDialog: Float, checkDialog: Int) :MutableList { - var activityHistory:Long = 3131L - var dialogComplete:MutableList = mutableListOf() - var closeHeight = "guid" - var currentRecent = "stop" - var mailtoSframeSubviewer = mutableListOf() - activityHistory = activityHistory - var f_position_len1:Int = mailtoSframeSubviewer.size - var client_s = min(kotlin.random.Random.nextInt(48), 1) % max(1, mailtoSframeSubviewer.size) - mailtoSframeSubviewer.add(client_s, 5142.0f) - var transparent_len:Int = dialogComplete.size - for(k in 0 .. min(1, transparent_len - 1) ){ - if (k < mailtoSframeSubviewer.size){ - break - } else { - println(dialogComplete.get(k)) - } - -} - println("renderers: " + closeHeight) - if (closeHeight != null) { - for(i in 0 .. min(1, closeHeight.length - 1)) { - if (i < mailtoSframeSubviewer.size){ - mailtoSframeSubviewer.add(i,if (closeHeight.get(i).toString().matches(Regex("(-)?(^[0-9]+$)|(\\d.\\d+)"))) closeHeight.get(i).toString().toFloat() else 92.0f) - } - println(closeHeight.get(i)) - } - } - if (currentRecent.equals("measure")) { - println(currentRecent) - } - if (null != currentRecent) { - for(i in 0 .. min(1, currentRecent.length - 1)) { - if (i < mailtoSframeSubviewer.size){ - mailtoSframeSubviewer.add(i,if (currentRecent.get(i).toString().matches(Regex("(-)?(^[0-9]+$)|(\\d.\\d+)"))) currentRecent.get(i).toString().toFloat() else 35.0f) - } - println(currentRecent.get(i)) - } - } - - return mailtoSframeSubviewer - -} - - -override fun describeContents(): Int { - -var hostportfileColumnlist = this.lastCheckedPageScan(true,6435.0f,6849) - - var hostportfileColumnlist_len:Int = hostportfileColumnlist.size - for(obj8 in hostportfileColumnlist) { - println(obj8) - } - -println(hostportfileColumnlist) - - - var selectR:Int = 15 - while (selectR == 74) { break } - - + override fun describeContents(): Int { return 0 } companion object CREATOR : Parcelable.Creator { - -private fun invokeZoneEmptyPaintPrice(extractionInterpolator: String, visibleWatching: MutableList, stringsOnclick: String) :Double { - var justAddition = 6507.0 - var arrangementFddebcdbeeffcebdf:Double = 9539.0 - println(arrangementFddebcdbeeffcebdf) - var onclickColors = false - println(onclickColors) - var appendPager = true - var smilingBounciness:Double = 7441.0 - justAddition = 7655.0 - smilingBounciness -= justAddition - arrangementFddebcdbeeffcebdf *= 2990.0 - smilingBounciness -= arrangementFddebcdbeeffcebdf - onclickColors = false - smilingBounciness += if(onclickColors) 4 else 20 - appendPager = false - smilingBounciness *= if(appendPager) 14 else 67 - - return smilingBounciness - -} - - -override fun createFromParcel(parcel: Parcel): Episode { -var prehash_v = "blur" -var davd_j:MutableList = mutableListOf() -var vdrawable_a:String = "colr" - -var bufferBitreader:Double = this.invokeZoneEmptyPaintPrice(prehash_v,davd_j,vdrawable_a) - - println(bufferBitreader) - -println(bufferBitreader) - - - var favoritesZ:Float = 7846.0f - if (favoritesZ >= 126.0f) {} - println(favoritesZ) - - + override fun createFromParcel(parcel: Parcel): Episode { return Episode(parcel) } - -private fun staySourceCommitCycleRight(shapeCover: MutableMap) :MutableMap { - var processScope:String = "layout" - var bannerDelete_hv = mutableMapOf() - var loadDetailed = 2244L - println(loadDetailed) - var fontArrangement = 7012 - println(fontArrangement) - var vivoReached = mutableMapOf() - vivoReached.put("premultiplied", 1075.0) - for(mbufchain in 0 .. bannerDelete_hv.keys.toList().size - 1) { - vivoReached.put("minmax", if (bannerDelete_hv.get(bannerDelete_hv.keys.toList()[mbufchain])?.matches(Regex("(-)?(^[0-9]+$)|(\\d.\\d+)")) ?: false) bannerDelete_hv.get(bannerDelete_hv.keys.toList()[mbufchain])!!.toDouble() else 81.0 ?: 5141.0) - -} - loadDetailed -= loadDetailed - vivoReached.put("birthLimit", 2970.0) - - return vivoReached - -} - - -override fun newArray(size: Int): Array { - -var vbrushFuzzer = this.staySourceCommitCycleRight(mutableMapOf()) - - for(object_k in vbrushFuzzer) { - println(object_k.key) - println(object_k.value) - } - var vbrushFuzzer_len = vbrushFuzzer.size - -println(vbrushFuzzer) - - - var cellb:Double = 1073.0 - println(cellb) - - + override fun newArray(size: Int): Array { return arrayOfNulls(size) } } + } data class ShortPlayInfo( @@ -327,7 +97,7 @@ println(vbrushFuzzer) var collect_total: Int, val description: String, val episode_total: Int, - val id: Int, + var id: Int, val image_url: String, var is_collect: Boolean, val name: String, @@ -350,255 +120,288 @@ println(vbrushFuzzer) parcel.readInt(), parcel.readInt(), parcel.createStringArrayList() - ){ + ) { } - -private fun callNowDecodeOneEventFrom(renderersWidth: MutableMap, applicationClose: Int, spacingCoins: Long) :String { - var fddebcdbeeffcebdfHeader:Boolean = true - println(fddebcdbeeffcebdfHeader) - var resourceResponse:Long = 9715L - var lastRestart = true - var modityController:Double = 8204.0 - var textElevated = "btree" - if (fddebcdbeeffcebdfHeader == false){ - println("top") - } - if (resourceResponse <= 128 && resourceResponse >= -128){ - var marquee_r = min(1, kotlin.random.Random.nextInt(94)) % textElevated.length - textElevated += resourceResponse.toString() - } - if (lastRestart){ - println("bottom") - } - if (modityController >= -128 && modityController <= 128){ - var point_h = min(1, kotlin.random.Random.nextInt(91)) % textElevated.length - textElevated += modityController.toString() - } - return textElevated + private fun callNowDecodeOneEventFrom( + renderersWidth: MutableMap, + applicationClose: Int, + spacingCoins: Long + ): String { + var fddebcdbeeffcebdfHeader: Boolean = true + println(fddebcdbeeffcebdfHeader) + var resourceResponse: Long = 9715L + var lastRestart = true + var modityController: Double = 8204.0 + var textElevated = "btree" + if (fddebcdbeeffcebdfHeader == false) { + println("top") + } + if (resourceResponse <= 128 && resourceResponse >= -128) { + var marquee_r = min(1, kotlin.random.Random.nextInt(94)) % textElevated.length + textElevated += resourceResponse.toString() + } + if (lastRestart) { + println("bottom") + } + if (modityController >= -128 && modityController <= 128) { + var point_h = min(1, kotlin.random.Random.nextInt(91)) % textElevated.length + textElevated += modityController.toString() + } -} + return textElevated + + } -override fun writeToParcel(parcel: Parcel, flags: Int) { + override fun writeToParcel(parcel: Parcel, flags: Int) { -var gnutlsPager:String = this.callNowDecodeOneEventFrom(mutableMapOf(),286,9501L) + var gnutlsPager: String = + this.callNowDecodeOneEventFrom(mutableMapOf(), 286, 9501L) - var gnutlsPager_len = gnutlsPager.length - println(gnutlsPager) + var gnutlsPager_len = gnutlsPager.length + println(gnutlsPager) -println(gnutlsPager) + println(gnutlsPager) - var p_view3:Long = 6163L - while (p_view3 < 199L) { break } + var p_view3: Long = 6163L + while (p_view3 < 199L) { + break + } parcel.writeInt(all_coins) - var bingeZ:Int = 5369 - if (bingeZ == 111) {} + var bingeZ: Int = 5369 + if (bingeZ == 111) { + } parcel.writeInt(buy_type) - var footer1:Float = 3680.0f + var footer1: Float = 3680.0f println(footer1) parcel.writeInt(collect_total) - var renderersr:MutableMap = mutableMapOf() - renderersr.put("eyboard", 131) - renderersr.put("dctcoef", 16) - while (renderersr.size > 185) { break } + var renderersr: MutableMap = mutableMapOf() + renderersr.put("eyboard", 131) + renderersr.put("dctcoef", 16) + while (renderersr.size > 185) { + break + } parcel.writeString(description) - var collectionsB:MutableMap = mutableMapOf() - collectionsB.put("postproc", true) - collectionsB.put("inserts", false) - collectionsB.put("silent", true) - collectionsB.put("archiving", true) - collectionsB.put("leak", true) - while (collectionsB.size > 94) { break } + var collectionsB: MutableMap = mutableMapOf() + collectionsB.put("postproc", true) + collectionsB.put("inserts", false) + collectionsB.put("silent", true) + collectionsB.put("archiving", true) + collectionsB.put("leak", true) + while (collectionsB.size > 94) { + break + } parcel.writeInt(episode_total) - var observe_:Double = 2966.0 + var observe_: Double = 2966.0 parcel.writeInt(id) - var playfairk:MutableList = mutableListOf() - playfairk.add(555.0) - playfairk.add(649.0) - playfairk.add(126.0) - playfairk.add(178.0) + var playfairk: MutableList = mutableListOf() + playfairk.add(555.0) + playfairk.add(649.0) + playfairk.add(126.0) + playfairk.add(178.0) println(playfairk) parcel.writeString(image_url) - var animatorA:MutableMap = mutableMapOf() - animatorA.put("small", 808.0f) - animatorA.put("honeyswap", 204.0f) - animatorA.put("getp", 595.0f) - animatorA.put("w_28", 608.0f) - animatorA.put("notificatons", 757.0f) - if (animatorA.get("A") != null) {} + var animatorA: MutableMap = mutableMapOf() + animatorA.put("small", 808.0f) + animatorA.put("honeyswap", 204.0f) + animatorA.put("getp", 595.0f) + animatorA.put("w_28", 608.0f) + animatorA.put("notificatons", 757.0f) + if (animatorA.get("A") != null) { + } parcel.writeByte(if (is_collect) 1 else 0) - var adverti:MutableMap = mutableMapOf() - adverti.put("lebn", 676.0) - adverti.put("output", 288.0) - adverti.put("socantsendmore", 824.0) - adverti.put("covered", 798.0) - adverti.put("oval", 12.0) - while (adverti.size > 147) { break } + var adverti: MutableMap = mutableMapOf() + adverti.put("lebn", 676.0) + adverti.put("output", 288.0) + adverti.put("socantsendmore", 824.0) + adverti.put("covered", 798.0) + adverti.put("oval", 12.0) + while (adverti.size > 147) { + break + } parcel.writeString(name) - var completey:Float = 3099.0f - while (completey > 32.0f) { break } + var completey: Float = 3099.0f + while (completey > 32.0f) { + break + } parcel.writeInt(process) - var contenta:Double = 6480.0 - if (contenta >= 198.0) {} + var contenta: Double = 6480.0 + if (contenta >= 198.0) { + } parcel.writeInt(short_id) - var categoriesv:Long = 9306L - if (categoriesv >= 76L) {} + var categoriesv: Long = 9306L + if (categoriesv >= 76L) { + } parcel.writeInt(watch_total) - var authorization2:Double = 2660.0 - while (authorization2 < 80.0) { break } + var authorization2: Double = 2660.0 + while (authorization2 < 80.0) { + break + } parcel.writeStringList(category) } - -private fun singleManualModel(titleRight: Float, modelTab: Int, keywordPager: Boolean) :String { - var keywordFree = false - var imageLoading:String = "tcp" - var playfairVariable:Long = 8926L - println(playfairVariable) - var langContext = false - var strcatBoundary = "squared" - if (keywordFree == false){ - println("current") - } - println("bottom: " + imageLoading) - var selected_n = min(1, kotlin.random.Random.nextInt(18)) % imageLoading.length - var gift_j = min(1, kotlin.random.Random.nextInt(41)) % strcatBoundary.length - strcatBoundary += imageLoading.get(selected_n) - if (playfairVariable >= -128 && playfairVariable <= 128){ - var detailed_o:Int = min(1, kotlin.random.Random.nextInt(91)) % strcatBoundary.length - strcatBoundary += playfairVariable.toString() - } - if (true == langContext){ - println("fddebcdbeeffcebdf") - } - return strcatBoundary + private fun singleManualModel( + titleRight: Float, + modelTab: Int, + keywordPager: Boolean + ): String { + var keywordFree = false + var imageLoading: String = "tcp" + var playfairVariable: Long = 8926L + println(playfairVariable) + var langContext = false + var strcatBoundary = "squared" + if (keywordFree == false) { + println("current") + } + println("bottom: " + imageLoading) + var selected_n = min(1, kotlin.random.Random.nextInt(18)) % imageLoading.length + var gift_j = min(1, kotlin.random.Random.nextInt(41)) % strcatBoundary.length + strcatBoundary += imageLoading.get(selected_n) + if (playfairVariable >= -128 && playfairVariable <= 128) { + var detailed_o: Int = + min(1, kotlin.random.Random.nextInt(91)) % strcatBoundary.length + strcatBoundary += playfairVariable.toString() + } + if (true == langContext) { + println("fddebcdbeeffcebdf") + } -} + return strcatBoundary + + } -override fun describeContents(): Int { + override fun describeContents(): Int { -var productfIccp = this.singleManualModel(9004.0f,1947,true) + var productfIccp = this.singleManualModel(9004.0f, 1947, true) - if (productfIccp == "onclick") { - println(productfIccp) - } - var productfIccp_len:Int = productfIccp.length + if (productfIccp == "onclick") { + println(productfIccp) + } + var productfIccp_len: Int = productfIccp.length -println(productfIccp) + println(productfIccp) - var listW:MutableMap = mutableMapOf() - listW.put("beneficiary", "webs") - listW.put("create", "sharegroup") - listW.put("charlen", "descent") - if (listW.size > 68) {} + var listW: MutableMap = mutableMapOf() + listW.put("beneficiary", "webs") + listW.put("create", "sharegroup") + listW.put("charlen", "descent") + if (listW.size > 68) { + } return 0 } companion object CREATOR : Parcelable.Creator { - -private fun writeCloseMinuteFeature(playingMove: String, coverMove: Double) :Double { - var managerPlay = "vmatrix" - var heightHandler:Int = 2355 - var languageNotifications:Float = 9886.0f - var bingeImg:Long = 1551L - println(bingeImg) - var lasrOpenglMessage:Double = 1720.0 - heightHandler = 2016 - languageNotifications = 6074.0f - bingeImg *= 6094L - return lasrOpenglMessage + private fun writeCloseMinuteFeature(playingMove: String, coverMove: Double): Double { + var managerPlay = "vmatrix" + var heightHandler: Int = 2355 + var languageNotifications: Float = 9886.0f + var bingeImg: Long = 1551L + println(bingeImg) + var lasrOpenglMessage: Double = 1720.0 + heightHandler = 2016 + languageNotifications = 6074.0f + bingeImg *= 6094L -} + return lasrOpenglMessage + + } -override fun createFromParcel(parcel: Parcel): ShortPlayInfo { -var fiat_k = "initial" + override fun createFromParcel(parcel: Parcel): ShortPlayInfo { + var fiat_k = "initial" -var winthreadStorex:Double = this.writeCloseMinuteFeature(fiat_k,3341.0) + var winthreadStorex: Double = this.writeCloseMinuteFeature(fiat_k, 3341.0) - if (winthreadStorex < 15.0) { - println(winthreadStorex) - } + if (winthreadStorex < 15.0) { + println(winthreadStorex) + } -println(winthreadStorex) + println(winthreadStorex) - var dimensL:String = "rsaz" - if (dimensL.length > 55) {} + var dimensL: String = "rsaz" + if (dimensL.length > 55) { + } return ShortPlayInfo(parcel) } - -private fun needShareMinimumAudioVisitLight(attrsDialog: MutableList, workWith_gl: Boolean) :Double { - var focusItems = false - var scanDetached = 2391L - var default_n8String = mutableListOf() - var applicationUtil:Boolean = true - println(applicationUtil) - var sinewinAuxiliary:Double = 9570.0 - focusItems = false - sinewinAuxiliary -= if(focusItems) 64 else 4 - scanDetached = 4895L - applicationUtil = false - sinewinAuxiliary += if(applicationUtil) 57 else 36 - return sinewinAuxiliary + private fun needShareMinimumAudioVisitLight( + attrsDialog: MutableList, + workWith_gl: Boolean + ): Double { + var focusItems = false + var scanDetached = 2391L + var default_n8String = mutableListOf() + var applicationUtil: Boolean = true + println(applicationUtil) + var sinewinAuxiliary: Double = 9570.0 + focusItems = false + sinewinAuxiliary -= if (focusItems) 64 else 4 + scanDetached = 4895L + applicationUtil = false + sinewinAuxiliary += if (applicationUtil) 57 else 36 -} + return sinewinAuxiliary + + } -override fun newArray(size: Int): Array { -var cut_x:MutableList = mutableListOf() + override fun newArray(size: Int): Array { + var cut_x: MutableList = mutableListOf() -var hashkeyPip:Double = this.needShareMinimumAudioVisitLight(cut_x,true) + var hashkeyPip: Double = this.needShareMinimumAudioVisitLight(cut_x, true) - if (hashkeyPip <= 96.0) { - println(hashkeyPip) - } + if (hashkeyPip <= 96.0) { + println(hashkeyPip) + } -println(hashkeyPip) + println(hashkeyPip) - var manual9:String = "unrolled" - while (manual9.length > 106) { break } + var manual9: String = "unrolled" + while (manual9.length > 106) { + break + } return arrayOfNulls(size) diff --git a/app/src/main/res/drawable/bg_player_ad.xml b/app/src/main/res/drawable/bg_player_ad.xml new file mode 100644 index 0000000..d4ee6a9 --- /dev/null +++ b/app/src/main/res/drawable/bg_player_ad.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/j_details_layout.xml b/app/src/main/res/layout/j_details_layout.xml index b7c4968..4808617 100644 --- a/app/src/main/res/layout/j_details_layout.xml +++ b/app/src/main/res/layout/j_details_layout.xml @@ -35,6 +35,10 @@ android:id="@+id/layout_recommend" layout="@layout/layout_player_recommend" /> + + @@ -45,8 +49,7 @@ android:layout_marginTop="@dimen/dp_35" android:padding="@dimen/dp_15" android:src="@mipmap/right_dimens" - android:visibility="gone" - /> + android:visibility="gone" /> \ No newline at end of file diff --git a/app/src/main/res/layout/layout_ad_player_view.xml b/app/src/main/res/layout/layout_ad_player_view.xml new file mode 100644 index 0000000..b423534 --- /dev/null +++ b/app/src/main/res/layout/layout_ad_player_view.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_ad_player_view_controller.xml b/app/src/main/res/layout/layout_ad_player_view_controller.xml new file mode 100644 index 0000000..107e1d6 --- /dev/null +++ b/app/src/main/res/layout/layout_ad_player_view_controller.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_player_ad.xml b/app/src/main/res/layout/layout_player_ad.xml new file mode 100644 index 0000000..28d94c2 --- /dev/null +++ b/app/src/main/res/layout/layout_player_ad.xml @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/ic_palyer_ad.png b/app/src/main/res/mipmap-xxhdpi/ic_palyer_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..69cef74a04b61ebb14ad5500cb7a095c7314a436 GIT binary patch literal 2468 zcmV;V30wAwP)WobM7>FDU__xt_-YQbbC#l^+b zHf`EexP1BY0ut9W{yMDD$B!QmSj9(Q2?*jLm(^r;S)HAo{b$df?bX7W96(5W_UxIv zc=2LG19l?%LO^g^B%VLa;<8P)-pS^YK)>6KY0Gr&|0kb=Eo8N$# z$1EOlS3xbF$qVki&*uyBeS|d7i1{2tKp3W*17=vBix)3WC?}xFJT6_j6oMA`J~YzW z+G?b7%ogYuzCoj_khVM;4zzIR&K*M!B%)vW_PBteNy2g0MS=3jxpU|Gm_}oQ22p(& ziDMgDfo8BhE}*foF~fCrb#)COx5G3V6T`#9k=wU#8&)V9XnP@1!3Xmdh_PZ$l=3>@3AB}apFW3O8}~9M@B|QA}?ON2vf)~)YH@R?)mfQ z%8q<9NlpZ3ux7q_?T-(SiUAY%lydiClF&l;($ zto)Hl3gRObEKx=T(G<{TS&h+Wiv*yj4mlsd4 z4@=bB+xzaujT?hZQZhn7)z#G#77yTVESb@m6(pV^rxBG^ zx!W%m{EwJH$|OX20XexZ#16PYA~&{X%^KTlq>7kszps$tf3!kr0mb9K_%_v?Yz2e_ zWV&4hs@#D;3!p(#1&1nQIb{$Gm=D zEO~i(=;~X_5`??4bX30!3JP*W$7P(ir<{OlYHEb;E1GaiDqjLO=JWabS&9+$bfaP~ zV@ro}E-V!({dBo8(Pw-4@}-oshLsY~%9Sf~leI4KkdDz94GaoJpUqs?lL@5+R9#)2 zvOG;Ho4AmcAh&5-N`d>rT7^tPloC)XE7DXpNXg%Vcn%&sxKw0)uxcEW6lH>FC-+6) z&}S13d@*%~&kl_RZVbcf@3r6-az3@SwZ-T*6ir8h^^tkiIAsLnVrSr`ZJdyCcDYU)X9mC&DSHCokx&}_4 zKK+bIjuHZLS~TJM_3H@-nYV7;623Pbi!i|QG&MCnW(uH$fJBQXB zz-Kvi>eM|IEDuNe7zhbAQLvee`vPdUO z6ibrs?(RWR(2Lot-%3DeXu~RHp-?D{Ci;$!jzN`ID08*8w*Jj`_U+qugK0DloH=vm zXTFUX$cP_wH=f3cn5MTd)`>O*B;&LZja*QY)R-B9XU@CF#>N8tg++@NNwaRCMo#dA zXTFW+sKNpnL&kKrb86IJ{`~po#A?7jIy&0U_hgt{r;!(Q4wzShgLd4}$2gC>G1(V0 z(xjIS8#Wj-R`3L8Xoo+su#F#(c`+kR`hfL8ahdOvfc*G9E}&hzcKwBb2-~nid-v{D zW}RY9YN)TTpUVr{&W*l-=#pX=?r%#`n`L-dT9Xoae zNLfC_wm(3WWO0?Pvp@O`*0 z8hQO`KF1aNCOnBZJ3G6{{3uK;oZZsW(x-CKPZK{VS2Q#<%r&?BLOf((4n#-o1}>`$ zScwR|DpdInUAuN|Knp1|v1{~)SBgX;zr~6Nxa=-QBJz-k8tKh-vB%IqgVnxzdwavd zVDO!a3nOX%7fex6Q4R&jc~r*Aw`uhE!)=jxESvUR%mKgOUo&OOlt!~P(qukxSs0mP za3wsC#R-H&7u|(tg)>bi6F_3wJkk;ow}3c^kH{ibyWQ@kuu9R#hD*7My2g=kw4EnF ixt$*R`Nt~G5%C{5_Axn)gOQE^0000VcWJ%(#@_r=-*5xNE3!V6{g

a_8!foDb(feCeOXn+S>5}A$e&3r7BEoFiHg!7b6R68y=MhLVpzt6M zS@CM`BzbfRukcR3k=zDke<#`Okz7jFdL!8}I>#ipS~RvvzSjX5CldVmM-hgfjrG_i z`Ci2D{-8tws8FlFr$T}1(WF)ZmNcqG*G#1n4A*a`24oqhr;Qh>I1IwsbAJ3Y09H^q zAT|I10FVO!odGHy01^N`ku;=IC88svlmM_2326WTJz=KF5E5Kkq5uH?_)i!AR;A*9 K|M#r`0002Gjc7gq literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/iv_download.png b/app/src/main/res/mipmap-xxhdpi/iv_download.png new file mode 100644 index 0000000000000000000000000000000000000000..2804617a5ab76a971fd3a68c595ffe55df8a3398 GIT binary patch literal 18105 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 Y1NL7(p~BfTTL1t607*qoM6N<$f{x&y3jhEB literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 8cfc569..ce28963 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -6,6 +6,7 @@ #FF03DAC5 #FF018786 #FF000000 + #80000000 #00000000 #FFFFFFFF #F2FFFFFF