0
0
mirror of https://github.com/mueller-ma/PrepaidBalance.git synced 2024-09-20 00:12:15 +02:00

feat: add splash screen (#132)

Closes #121
This commit is contained in:
Tiago Araujo 2022-09-29 18:50:37 +02:00 committed by GitHub
parent 593161e76f
commit d47c25247a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 2 deletions

View File

@ -73,6 +73,7 @@ dependencies {
implementation "androidx.room:room-ktx:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "com.mikepenz:aboutlibraries:$about_libraries_version"
implementation "androidx.core:core-splashscreen:1.0.0"
testImplementation "junit:junit:4.13.2"
androidTestImplementation "androidx.test.ext:junit:1.1.3"

View File

@ -10,7 +10,7 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.App">
android:theme="@style/Theme.App.Starting">
<activity
android:name="com.github.muellerma.prepaidbalance.ui.MainActivity"
android:exported="true">

View File

@ -13,6 +13,7 @@ import androidx.annotation.StringRes
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.edit
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.core.view.isVisible
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.LinearLayoutManager
@ -36,6 +37,7 @@ class MainActivity : AppCompatActivity(), CoroutineScope, SwipeRefreshLayout.OnR
override val coroutineContext: CoroutineContext get() = Dispatchers.IO + Job()
private lateinit var binding: ActivityMainBinding
private lateinit var database: AppDatabase
private var databaseLoaded = false
private val requestPermissionLauncher = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
@ -48,8 +50,10 @@ class MainActivity : AppCompatActivity(), CoroutineScope, SwipeRefreshLayout.OnR
}
override fun onCreate(savedInstanceState: Bundle?) {
val splashScreen = installSplashScreen()
super.onCreate(savedInstanceState)
Log.d(TAG, "onCreate()")
splashScreen.setKeepOnScreenCondition { !databaseLoaded }
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
@ -73,11 +77,11 @@ class MainActivity : AppCompatActivity(), CoroutineScope, SwipeRefreshLayout.OnR
Log.d(TAG, "updateBalanceList()")
launch {
val entries = database.balanceDao().getAll()
Handler(Looper.getMainLooper()).post {
(binding.list.adapter as BalanceListAdapter).balances = entries
binding.list.isVisible = entries.isNotEmpty()
binding.hint.isVisible = entries.isEmpty()
databaseLoaded = true
}
}
}

View File

@ -1,4 +1,5 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.App" parent="Theme.Material3.DayNight">
<item name="colorPrimary">@color/golden</item>
<item name="colorPrimaryContainer">@color/dark_golden</item>
@ -17,4 +18,10 @@
<item name="android:statusBarColor">?android:windowBackgroundFallback</item>
<item name="android:navigationBarColor">?android:windowBackgroundFallback</item>
</style>
<style name="Theme.App.Starting" parent="Theme.SplashScreen">
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_foreground</item>
<item name="postSplashScreenTheme">@style/Theme.App</item>
</style>
</resources>