Skip to content

Commit 777cb6c

Browse files
committed
refactor: implement Modifier.node
1 parent a4cf140 commit 777cb6c

File tree

2 files changed

+2
-64
lines changed

2 files changed

+2
-64
lines changed

app/src/main/java/to/bitkit/ui/screens/wallets/activity/AllActivityScreen.kt

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package to.bitkit.ui.screens.wallets.activity
22

33
import androidx.activity.compose.BackHandler
4-
import androidx.compose.foundation.gestures.detectHorizontalDragGestures
54
import androidx.compose.foundation.layout.Box
65
import androidx.compose.foundation.layout.Column
76
import androidx.compose.foundation.layout.PaddingValues
@@ -12,11 +11,7 @@ import androidx.compose.foundation.layout.padding
1211
import androidx.compose.material3.ExperimentalMaterial3Api
1312
import androidx.compose.runtime.Composable
1413
import androidx.compose.runtime.getValue
15-
import androidx.compose.runtime.remember
1614
import androidx.compose.ui.Modifier
17-
import androidx.compose.ui.composed
18-
import androidx.compose.ui.input.pointer.pointerInput
19-
import androidx.compose.ui.input.pointer.util.VelocityTracker
2015
import androidx.compose.ui.platform.testTag
2116
import androidx.compose.ui.res.stringResource
2217
import androidx.compose.ui.tooling.preview.Preview
@@ -33,6 +28,7 @@ import to.bitkit.ui.screens.wallets.activity.components.ActivityListFilter
3328
import to.bitkit.ui.screens.wallets.activity.components.ActivityListGrouped
3429
import to.bitkit.ui.screens.wallets.activity.components.ActivityTab
3530
import to.bitkit.ui.screens.wallets.activity.utils.previewActivityItems
31+
import to.bitkit.ui.shared.modifiers.swipeToChangeTab
3632
import to.bitkit.ui.shared.util.screen
3733
import to.bitkit.ui.theme.AppThemeSurface
3834
import to.bitkit.viewmodels.ActivityListViewModel
@@ -146,30 +142,6 @@ private fun AllActivityScreenContent(
146142
}
147143
}
148144

149-
private fun Modifier.swipeToChangeTab(currentTabIndex: Int, tabCount: Int, onTabChange: (Int) -> Unit) = composed {
150-
val threshold = remember { 1500f }
151-
val velocityTracker = remember { VelocityTracker() }
152-
153-
pointerInput(currentTabIndex) {
154-
detectHorizontalDragGestures(
155-
onHorizontalDrag = { change, _ ->
156-
velocityTracker.addPosition(change.uptimeMillis, change.position)
157-
},
158-
onDragEnd = {
159-
val velocity = velocityTracker.calculateVelocity().x
160-
when {
161-
velocity >= threshold && currentTabIndex > 0 -> onTabChange(currentTabIndex - 1)
162-
velocity <= -threshold && currentTabIndex < tabCount - 1 -> onTabChange(currentTabIndex + 1)
163-
}
164-
velocityTracker.resetTracking()
165-
},
166-
onDragCancel = {
167-
velocityTracker.resetTracking()
168-
},
169-
)
170-
}
171-
}
172-
173145
@Preview(showSystemUi = true)
174146
@Composable
175147
private fun Preview() {

app/src/main/java/to/bitkit/ui/screens/wallets/receive/ReceiveQrScreen.kt

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package to.bitkit.ui.screens.wallets.receive
33
import android.graphics.Bitmap
44
import androidx.compose.animation.AnimatedVisibility
55
import androidx.compose.foundation.background
6-
import androidx.compose.foundation.gestures.detectHorizontalDragGestures
76
import androidx.compose.foundation.layout.Arrangement
87
import androidx.compose.foundation.layout.Box
98
import androidx.compose.foundation.layout.Column
@@ -31,11 +30,8 @@ import androidx.compose.runtime.rememberCoroutineScope
3130
import androidx.compose.runtime.setValue
3231
import androidx.compose.ui.Alignment
3332
import androidx.compose.ui.Modifier
34-
import androidx.compose.ui.composed
3533
import androidx.compose.ui.draw.clip
3634
import androidx.compose.ui.graphics.painter.Painter
37-
import androidx.compose.ui.input.pointer.pointerInput
38-
import androidx.compose.ui.input.pointer.util.VelocityTracker
3935
import androidx.compose.ui.keepScreenOn
4036
import androidx.compose.ui.platform.LocalContext
4137
import androidx.compose.ui.platform.testTag
@@ -64,6 +60,7 @@ import to.bitkit.ui.scaffold.SheetTopBar
6460
import to.bitkit.ui.screens.wallets.activity.components.CustomTabRowWithSpacing
6561
import to.bitkit.ui.shared.effects.SetMaxBrightness
6662
import to.bitkit.ui.shared.modifiers.sheetHeight
63+
import to.bitkit.ui.shared.modifiers.swipeToChangeTab
6764
import to.bitkit.ui.shared.util.gradientBackground
6865
import to.bitkit.ui.shared.util.shareQrCode
6966
import to.bitkit.ui.shared.util.shareText
@@ -756,34 +753,3 @@ private fun PreviewDetailsMode() {
756753
}
757754
}
758755
}
759-
760-
private fun Modifier.swipeToChangeTab(
761-
currentTabIndex: Int,
762-
tabCount: Int,
763-
onTabChange: (Int) -> Unit,
764-
) = composed {
765-
val threshold = remember { 1500f }
766-
val velocityTracker = remember { VelocityTracker() }
767-
768-
pointerInput(currentTabIndex) {
769-
detectHorizontalDragGestures(
770-
onHorizontalDrag = { change, _ ->
771-
velocityTracker.addPosition(change.uptimeMillis, change.position)
772-
},
773-
onDragEnd = {
774-
val velocity = velocityTracker.calculateVelocity().x
775-
when {
776-
velocity >= threshold && currentTabIndex > 0 ->
777-
onTabChange(currentTabIndex - 1)
778-
779-
velocity <= -threshold && currentTabIndex < tabCount - 1 ->
780-
onTabChange(currentTabIndex + 1)
781-
}
782-
velocityTracker.resetTracking()
783-
},
784-
onDragCancel = {
785-
velocityTracker.resetTracking()
786-
},
787-
)
788-
}
789-
}

0 commit comments

Comments
 (0)