mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-18 13:47:02 +05:30
app: add a FAB to reload posts
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
9d22682626
commit
b28eb09e3f
3 changed files with 21 additions and 3 deletions
|
@ -9,8 +9,8 @@ import androidx.compose.foundation.layout.Column
|
|||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.lazy.LazyColumnForIndexed
|
||||
import androidx.compose.material.FloatingActionButton
|
||||
import androidx.compose.material.Scaffold
|
||||
import androidx.compose.material.TopAppBar
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Providers
|
||||
import androidx.compose.runtime.ambientOf
|
||||
|
@ -56,7 +56,6 @@ fun LobstersApp(
|
|||
val lastIndex = state.value.lastIndex
|
||||
|
||||
Scaffold(
|
||||
topBar = { TopAppBar({ Text(text = stringResource(R.string.app_name)) }) },
|
||||
bodyContent = {
|
||||
if (state.value.isEmpty()) {
|
||||
Column(
|
||||
|
@ -82,6 +81,11 @@ fun LobstersApp(
|
|||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
floatingActionButton = {
|
||||
FloatingActionButton(onClick = { viewModel.refreshPosts() }) {
|
||||
IconResource(resourceId = R.drawable.ic_refresh_24px)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
@ -41,6 +41,11 @@ class LobstersViewModel @ViewModelInject constructor(
|
|||
getMorePostsInternal(false)
|
||||
}
|
||||
|
||||
fun refreshPosts() {
|
||||
apiPage = 1
|
||||
getMorePostsInternal(true)
|
||||
}
|
||||
|
||||
private fun getMorePostsInternal(firstLoad: Boolean) {
|
||||
viewModelScope.launch(coroutineExceptionHandler) {
|
||||
val newPosts = lobstersApi.getHottestPosts(apiPage)
|
||||
|
|
9
app/src/main/res/drawable/ic_refresh_24px.xml
Normal file
9
app/src/main/res/drawable/ic_refresh_24px.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M17.65,6.35c-1.63,-1.63 -3.94,-2.57 -6.48,-2.31 -3.67,0.37 -6.69,3.35 -7.1,7.02C3.52,15.91 7.27,20 12,20c3.19,0 5.93,-1.87 7.21,-4.56 0.32,-0.67 -0.16,-1.44 -0.9,-1.44 -0.37,0 -0.72,0.2 -0.88,0.53 -1.13,2.43 -3.84,3.97 -6.8,3.31 -2.22,-0.49 -4.01,-2.3 -4.48,-4.52C5.31,9.44 8.26,6 12,6c1.66,0 3.14,0.69 4.22,1.78l-1.51,1.51c-0.63,0.63 -0.19,1.71 0.7,1.71H19c0.55,0 1,-0.45 1,-1V6.41c0,-0.89 -1.08,-1.34 -1.71,-0.71l-0.64,0.65z"/>
|
||||
</vector>
|
Loading…
Add table
Add a link
Reference in a new issue