新增splash页

This commit is contained in:
renhaoting 2025-12-17 14:07:58 +08:00
parent 96a3e641ce
commit 17441a0d78
9 changed files with 64 additions and 22 deletions

View File

@ -25,10 +25,12 @@
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/Theme.Architectureandroid"> android:theme="@style/Theme.Architectureandroid">
<activity <activity
android:name="com.gamedog.vididin.main.MainActivity" android:name="com.gamedog.vididin.features.splash.SplashActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTask"> android:launchMode="singleTop"
android:screenOrientation="portrait">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
@ -36,13 +38,13 @@
</activity> </activity>
<activity android:name="com.gamedog.vididin.main.MainActivity" android:exported="true" android:launchMode="singleTask" />
<activity android:name="com.gamedog.vididin.login.LoginActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.login.LoginActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.benefit.BenefitActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.benefit.BenefitActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.zero.ZeroBuyActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.zero.ZeroBuyActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.winrecords.WinRecordsActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.winrecords.WinRecordsActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.withdraw.WithDrawActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.withdraw.WithDrawActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.withdraw.WithDrawSubActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.withdraw.WithDrawSubActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.splash.SplashActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.version.VersionActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.version.VersionActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.feedback.FeedbackActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.feedback.FeedbackActivity" android:exported="false" />
<activity android:name="com.gamedog.vididin.features.withdrawrecord.WithdrawRecordActivity" android:exported="false" /> <activity android:name="com.gamedog.vididin.features.withdrawrecord.WithdrawRecordActivity" android:exported="false" />

View File

@ -11,6 +11,7 @@ import com.gamedog.vididin.features.withdraw.WithdrawSubRouter
import com.gamedog.vididin.features.zero.DefaultZeroBuyRouter import com.gamedog.vididin.features.zero.DefaultZeroBuyRouter
import com.gamedog.vididin.features.zero.ZeroBuyRouter import com.gamedog.vididin.features.zero.ZeroBuyRouter
import com.gamedog.vididin.router.DefaultFeedbackRouter import com.gamedog.vididin.router.DefaultFeedbackRouter
import com.gamedog.vididin.router.DefaultMainRouter
import com.gamedog.vididin.router.DefaultPrivacyRouter import com.gamedog.vididin.router.DefaultPrivacyRouter
import com.gamedog.vididin.router.DefaultSplashRouter import com.gamedog.vididin.router.DefaultSplashRouter
import com.gamedog.vididin.router.DefaultVersionRouter import com.gamedog.vididin.router.DefaultVersionRouter
@ -22,6 +23,7 @@ import com.gamedog.vididin.router.IRouterSplash
import com.gamedog.vididin.router.IRouterVersion import com.gamedog.vididin.router.IRouterVersion
import com.gamedog.vididin.router.IRouterWithdrawRecord import com.gamedog.vididin.router.IRouterWithdrawRecord
import com.gamedog.vididin.router.IRouterWatchAd import com.gamedog.vididin.router.IRouterWatchAd
import com.gamedog.vididin.router.MainRouter
import dagger.Module import dagger.Module
import dagger.Provides import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
@ -72,6 +74,14 @@ object WinRecordModule {
fun provideRouter(): WinRecordRouter = DefaultWinRecordRouter() fun provideRouter(): WinRecordRouter = DefaultWinRecordRouter()
} }
@Module
@InstallIn(SingletonComponent::class)
object MainModule {
@Provides
@Singleton
fun provideRouter(): MainRouter = DefaultMainRouter()
}
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)

View File

@ -15,6 +15,7 @@ import com.gamedog.vididin.router.IRouterSplash
import com.gamedog.vididin.router.IRouterVersion import com.gamedog.vididin.router.IRouterVersion
import com.gamedog.vididin.router.IRouterWithdrawRecord import com.gamedog.vididin.router.IRouterWithdrawRecord
import com.gamedog.vididin.router.IRouterWatchAd import com.gamedog.vididin.router.IRouterWatchAd
import com.gamedog.vididin.router.MainRouter
import dagger.hilt.EntryPoint import dagger.hilt.EntryPoint
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
@ -34,6 +35,7 @@ interface RouterEntryPoint {
fun withdrawRouter(): WithdrawRouter fun withdrawRouter(): WithdrawRouter
fun withdrawSubRouter(): WithdrawSubRouter fun withdrawSubRouter(): WithdrawSubRouter
fun winRecordBuyRouter(): WinRecordRouter fun winRecordBuyRouter(): WinRecordRouter
fun mainRouter(): MainRouter
fun privacyRouter(): IRouterPrivacy fun privacyRouter(): IRouterPrivacy

View File

@ -3,23 +3,25 @@ package com.gamedog.vididin.features.splash
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import androidx.activity.viewModels
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import com.ama.core.architecture.appBase.AppViewsActivity import androidx.lifecycle.lifecycleScope
import com.ama.core.architecture.appBase.AppViewsEmptyViewModelActivity
import com.gamedog.vididin.main.interfaces.OnTabStyleListener import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.router.Router
import com.remax.bill.ads.ext.AdShowExt
import com.remax.bill.ads.log.AdLogger
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlin.getValue import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import com.vididin.real.money.game.databinding.ActivitySplashBinding as ViewBinding import com.vididin.real.money.game.databinding.ActivitySplashBinding as ViewBinding
import com.gamedog.vididin.main.MainUiState as UiState
import com.gamedog.vididin.main.MainViewModel as ViewModel
@AndroidEntryPoint @AndroidEntryPoint
class SplashActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabStyleListener { class SplashActivity : AppViewsEmptyViewModelActivity<ViewBinding>(), OnTabStyleListener {
override val mViewModel: ViewModel by viewModels()
override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater) override fun inflateViewBinding(inflater: LayoutInflater) = ViewBinding.inflate(inflater)
override fun ViewBinding.initViews() { override fun ViewBinding.initViews() {
@ -30,32 +32,32 @@ class SplashActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTa
} }
override fun ViewBinding.initWindowInsets() { override fun ViewBinding.initWindowInsets() {
ViewCompat.setOnApplyWindowInsetsListener(contentRoot) { v, insets -> setImmerseRootView(contentRoot)
val systemBars =
insets.getInsets(WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout())
v.updatePadding(top = systemBars.top)
insets
}
} }
override fun ViewBinding.initListeners() { override fun ViewBinding.initListeners() {
//TODO("Not yet implemented") startFallbackTimer()
} }
override fun ViewBinding.initObservers() { override fun ViewBinding.initObservers() {
//TODO("Not yet implemented") //TODO("Not yet implemented")
} }
override fun ViewBinding.onUiStateCollect(uiState: UiState) {
//TODO("Not yet implemented")
}
override fun onTabIsDarkFont(isDarkFont: Boolean) { override fun onTabIsDarkFont(isDarkFont: Boolean) {
//TODO("Not yet implemented") //TODO("Not yet implemented")
} }
private fun startFallbackTimer() {
lifecycleScope.launch {
delay(MAX_SPLASH_TIME)
Router.Main.startActivity(this@SplashActivity)
}
}
companion object { companion object {
const val MAX_SPLASH_TIME = 5 * 1000L
internal fun startActivity(activity: Activity) { internal fun startActivity(activity: Activity) {
activity.startActivity(Intent(activity.applicationContext, SplashActivity::class.java)) activity.startActivity(Intent(activity.applicationContext, SplashActivity::class.java))
} }

View File

@ -2,6 +2,7 @@ package com.gamedog.vididin.main
import android.app.Activity
import android.content.Intent import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import com.ama.core.common.util.asSafe import com.ama.core.common.util.asSafe
@ -26,6 +27,7 @@ import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VididinEvents import com.gamedog.vididin.VididinEvents
import com.gamedog.vididin.adapter.MainTabsAdapter import com.gamedog.vididin.adapter.MainTabsAdapter
import com.gamedog.vididin.adapter.MainViewPagerAdapter import com.gamedog.vididin.adapter.MainViewPagerAdapter
import com.gamedog.vididin.features.winrecords.WinRecordsActivity
import com.gamedog.vididin.main.fragments.task.DailySignSuccessDialog import com.gamedog.vididin.main.fragments.task.DailySignSuccessDialog
import com.gamedog.vididin.main.interfaces.OnTabStyleListener import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.manager.DateChangeReceiver import com.gamedog.vididin.manager.DateChangeReceiver
@ -158,6 +160,11 @@ class MainActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTabS
} }
companion object {
internal fun startActivity(activity: Activity) {
activity.startActivity(Intent(activity.applicationContext, MainActivity::class.java))
}
}
} }

View File

@ -0,0 +1,10 @@
package com.gamedog.vididin.router
import android.app.Activity
import com.gamedog.vididin.main.MainActivity
class DefaultMainRouter: MainRouter {
override fun startActivity(activity: Activity) {
MainActivity.Companion.startActivity(activity)
}
}

View File

@ -0,0 +1,7 @@
package com.gamedog.vididin.router
import android.app.Activity
interface MainRouter {
fun startActivity(activity: Activity)
}

View File

@ -31,8 +31,9 @@ object Router : RouterContract {
override val ZeroBuy: ZeroBuyRouter by lazy { routerEntryPoint.zeroBuyRouter() } override val ZeroBuy: ZeroBuyRouter by lazy { routerEntryPoint.zeroBuyRouter() }
override val Withdraw: WithdrawRouter by lazy { routerEntryPoint.withdrawRouter() } override val Withdraw: WithdrawRouter by lazy { routerEntryPoint.withdrawRouter() }
override val WithdrawSub: WithdrawSubRouter by lazy { routerEntryPoint.withdrawSubRouter() } override val WithdrawSub: WithdrawSubRouter by lazy { routerEntryPoint.withdrawSubRouter() }
override val WinRecord: WinRecordRouter by lazy { routerEntryPoint.winRecordBuyRouter() } override val WinRecord: WinRecordRouter by lazy { routerEntryPoint.winRecordBuyRouter() }
override val Main: MainRouter by lazy { routerEntryPoint.mainRouter() }
override val Privacy: IRouterPrivacy override val Privacy: IRouterPrivacy
get() = routerEntryPoint.privacyRouter() get() = routerEntryPoint.privacyRouter()

View File

@ -23,6 +23,7 @@ interface RouterContract {
val Withdraw: WithdrawRouter val Withdraw: WithdrawRouter
val WithdrawSub: WithdrawSubRouter val WithdrawSub: WithdrawSubRouter
val WinRecord: WinRecordRouter val WinRecord: WinRecordRouter
val Main: MainRouter
val Privacy: IRouterPrivacy val Privacy: IRouterPrivacy
val Version: IRouterVersion val Version: IRouterVersion