Skip to content

Commit 41830dc

Browse files
committed
Remove Swipe to dismiss on JetNews, replace with PullToRefresh
1 parent 3b079f5 commit 41830dc

9 files changed

Lines changed: 26 additions & 16 deletions

File tree

JetLagged/gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ version-catalog-update = "0.8.5"
6060
[libraries]
6161
accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" }
6262
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
63-
accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" }
6463
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
6564
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity-compose" }
6665
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }

JetNews/app/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,6 @@ dependencies {
9999
debugImplementation(libs.androidx.compose.ui.test.manifest)
100100
debugImplementation(libs.androidx.compose.ui.tooling)
101101

102-
implementation(libs.accompanist.swiperefresh)
103-
104102
implementation(libs.androidx.appcompat)
105103
implementation(libs.androidx.activity.ktx)
106104
implementation(libs.androidx.core.ktx)

JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreens.kt

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ import androidx.compose.material3.TextButton
6767
import androidx.compose.material3.TopAppBarDefaults
6868
import androidx.compose.material3.TopAppBarScrollBehavior
6969
import androidx.compose.material3.TopAppBarState
70+
import androidx.compose.material3.pulltorefresh.PullToRefreshBox
71+
import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults.Indicator
72+
import androidx.compose.material3.pulltorefresh.PullToRefreshState
73+
import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState
7074
import androidx.compose.material3.rememberTopAppBarState
7175
import androidx.compose.runtime.Composable
7276
import androidx.compose.runtime.LaunchedEffect
@@ -110,8 +114,6 @@ import com.example.jetnews.ui.utils.BookmarkButton
110114
import com.example.jetnews.ui.utils.FavoriteButton
111115
import com.example.jetnews.ui.utils.ShareButton
112116
import com.example.jetnews.ui.utils.TextSettingsButton
113-
import com.google.accompanist.swiperefresh.SwipeRefresh
114-
import com.google.accompanist.swiperefresh.rememberSwipeRefreshState
115117
import kotlinx.coroutines.currentCoroutineContext
116118
import kotlinx.coroutines.isActive
117119
import kotlinx.coroutines.runBlocking
@@ -306,6 +308,7 @@ private fun HomeScreenWithList(
306308
val contentModifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection)
307309

308310
LoadingContent(
311+
modifier = Modifier.padding(innerPadding),
309312
empty = when (uiState) {
310313
is HomeUiState.HasPosts -> false
311314
is HomeUiState.NoPosts -> uiState.isLoading
@@ -317,12 +320,15 @@ private fun HomeScreenWithList(
317320
when (uiState) {
318321
is HomeUiState.HasPosts ->
319322
hasPostsContent(uiState, innerPadding, contentModifier)
323+
320324
is HomeUiState.NoPosts -> {
321325
if (uiState.errorMessages.isEmpty()) {
322326
// if there are no posts, and no error, let the user refresh manually
323327
TextButton(
324328
onClick = onRefreshPosts,
325-
modifier.padding(innerPadding).fillMaxSize()
329+
modifier
330+
.padding(innerPadding)
331+
.fillMaxSize()
326332
) {
327333
Text(
328334
stringResource(id = R.string.home_tap_to_load_content),
@@ -383,21 +389,34 @@ private fun HomeScreenWithList(
383389
* @param onRefresh (event) event to request refresh
384390
* @param content (slot) the main content to show
385391
*/
392+
@OptIn(ExperimentalMaterial3Api::class)
386393
@Composable
387394
private fun LoadingContent(
388395
empty: Boolean,
389396
emptyContent: @Composable () -> Unit,
390397
loading: Boolean,
391398
onRefresh: () -> Unit,
392-
content: @Composable () -> Unit
399+
content: @Composable () -> Unit,
400+
modifier : Modifier = Modifier
393401
) {
394402
if (empty) {
395403
emptyContent()
396404
} else {
397-
SwipeRefresh(
398-
state = rememberSwipeRefreshState(loading),
405+
val refreshState = rememberPullToRefreshState()
406+
PullToRefreshBox(
407+
isRefreshing = loading,
399408
onRefresh = onRefresh,
400-
content = content,
409+
content = { content() },
410+
state = refreshState,
411+
indicator = {
412+
Indicator(
413+
modifier = modifier
414+
.align(Alignment.TopCenter)
415+
.padding(),
416+
isRefreshing = loading,
417+
state = refreshState
418+
)
419+
}
401420
)
402421
}
403422
}

JetNews/gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ version-catalog-update = "0.8.5"
6060
[libraries]
6161
accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" }
6262
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
63-
accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" }
6463
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
6564
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity-compose" }
6665
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }

Jetcaster/gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ version-catalog-update = "0.8.5"
6060
[libraries]
6161
accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" }
6262
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
63-
accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" }
6463
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
6564
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity-compose" }
6665
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }

Jetchat/gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ version-catalog-update = "0.8.5"
6060
[libraries]
6161
accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" }
6262
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
63-
accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" }
6463
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
6564
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity-compose" }
6665
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }

Jetsnack/gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ version-catalog-update = "0.8.5"
6060
[libraries]
6161
accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" }
6262
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
63-
accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" }
6463
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
6564
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity-compose" }
6665
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }

Reply/gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ version-catalog-update = "0.8.5"
6060
[libraries]
6161
accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" }
6262
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
63-
accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" }
6463
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
6564
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity-compose" }
6665
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }

scripts/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ version-catalog-update = "0.8.5"
6060
[libraries]
6161
accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" }
6262
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
63-
accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanist" }
6463
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity-compose" }
6564
androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity-compose" }
6665
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }

0 commit comments

Comments
 (0)