Add a loading indicator for initial load

This commit is contained in:
Harsh Shandilya 2021-08-27 00:50:08 +05:30
parent be4a66dddf
commit 9e67e7cc0f
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80

View file

@ -4,10 +4,18 @@ import android.os.Bundle
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.CircularProgressIndicator
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Scaffold import androidx.compose.material.Scaffold
import androidx.compose.material.rememberScaffoldState import androidx.compose.material.rememberScaffoldState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.paging.LoadState
import androidx.paging.Pager import androidx.paging.Pager
import androidx.paging.PagingConfig import androidx.paging.PagingConfig
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
@ -38,11 +46,22 @@ class MainActivity : AppCompatActivity() {
topBar = { ClawAppBar() }, topBar = { ClawAppBar() },
modifier = Modifier, modifier = Modifier,
) { padding -> ) { padding ->
NetworkPosts( if (items.loadState.refresh != LoadState.Loading) {
items = items, NetworkPosts(
urlLauncher = urlLauncher, items = items,
modifier = Modifier.padding(padding), urlLauncher = urlLauncher,
) modifier = Modifier.padding(padding),
)
} else {
Box(
modifier = Modifier.fillMaxSize(),
) {
CircularProgressIndicator(
modifier = Modifier.size(64.dp).align(Alignment.Center),
color = MaterialTheme.colors.secondary,
)
}
}
} }
} }
} }