diff --git a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt index 4ae5cfda..eca23603 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt @@ -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) + } + }, ) } diff --git a/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt b/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt index 545fd881..29c5b008 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/data/LobstersViewModel.kt @@ -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) diff --git a/app/src/main/res/drawable/ic_refresh_24px.xml b/app/src/main/res/drawable/ic_refresh_24px.xml new file mode 100644 index 00000000..aac564c5 --- /dev/null +++ b/app/src/main/res/drawable/ic_refresh_24px.xml @@ -0,0 +1,9 @@ + + +