新增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:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/Theme.Architectureandroid">
<activity
android:name="com.gamedog.vididin.main.MainActivity"
android:name="com.gamedog.vididin.features.splash.SplashActivity"
android:exported="true"
android:launchMode="singleTask">
android:launchMode="singleTop"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
@ -36,13 +38,13 @@
</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.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.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.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.feedback.FeedbackActivity" 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.ZeroBuyRouter
import com.gamedog.vididin.router.DefaultFeedbackRouter
import com.gamedog.vididin.router.DefaultMainRouter
import com.gamedog.vididin.router.DefaultPrivacyRouter
import com.gamedog.vididin.router.DefaultSplashRouter
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.IRouterWithdrawRecord
import com.gamedog.vididin.router.IRouterWatchAd
import com.gamedog.vididin.router.MainRouter
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
@ -72,6 +74,14 @@ object WinRecordModule {
fun provideRouter(): WinRecordRouter = DefaultWinRecordRouter()
}
@Module
@InstallIn(SingletonComponent::class)
object MainModule {
@Provides
@Singleton
fun provideRouter(): MainRouter = DefaultMainRouter()
}
@Module
@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.IRouterWithdrawRecord
import com.gamedog.vididin.router.IRouterWatchAd
import com.gamedog.vididin.router.MainRouter
import dagger.hilt.EntryPoint
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
@ -34,6 +35,7 @@ interface RouterEntryPoint {
fun withdrawRouter(): WithdrawRouter
fun withdrawSubRouter(): WithdrawSubRouter
fun winRecordBuyRouter(): WinRecordRouter
fun mainRouter(): MainRouter
fun privacyRouter(): IRouterPrivacy

View File

@ -3,23 +3,25 @@ package com.gamedog.vididin.features.splash
import android.app.Activity
import android.content.Intent
import android.view.LayoutInflater
import androidx.activity.viewModels
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
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.router.Router
import com.remax.bill.ads.ext.AdShowExt
import com.remax.bill.ads.log.AdLogger
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.gamedog.vididin.main.MainUiState as UiState
import com.gamedog.vididin.main.MainViewModel as ViewModel
@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 ViewBinding.initViews() {
@ -30,32 +32,32 @@ class SplashActivity : AppViewsActivity<ViewBinding, UiState, ViewModel>(), OnTa
}
override fun ViewBinding.initWindowInsets() {
ViewCompat.setOnApplyWindowInsetsListener(contentRoot) { v, insets ->
val systemBars =
insets.getInsets(WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout())
v.updatePadding(top = systemBars.top)
insets
}
setImmerseRootView(contentRoot)
}
override fun ViewBinding.initListeners() {
//TODO("Not yet implemented")
startFallbackTimer()
}
override fun ViewBinding.initObservers() {
//TODO("Not yet implemented")
}
override fun ViewBinding.onUiStateCollect(uiState: UiState) {
//TODO("Not yet implemented")
}
override fun onTabIsDarkFont(isDarkFont: Boolean) {
//TODO("Not yet implemented")
}
private fun startFallbackTimer() {
lifecycleScope.launch {
delay(MAX_SPLASH_TIME)
Router.Main.startActivity(this@SplashActivity)
}
}
companion object {
const val MAX_SPLASH_TIME = 5 * 1000L
internal fun startActivity(activity: Activity) {
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.IntentFilter
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.adapter.MainTabsAdapter
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.interfaces.OnTabStyleListener
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 Withdraw: WithdrawRouter by lazy { routerEntryPoint.withdrawRouter() }
override val WithdrawSub: WithdrawSubRouter by lazy { routerEntryPoint.withdrawSubRouter() }
override val WinRecord: WinRecordRouter by lazy { routerEntryPoint.winRecordBuyRouter() }
override val Main: MainRouter by lazy { routerEntryPoint.mainRouter() }
override val Privacy: IRouterPrivacy
get() = routerEntryPoint.privacyRouter()

View File

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