Skip to content

Commit ecea86f

Browse files
committed
Rename ZoomInteractions -> EnabledZoomGestures
1 parent 1f1075f commit ecea86f

7 files changed

Lines changed: 78 additions & 75 deletions

File tree

zoomable-image/coil/src/main/kotlin/me/saket/telephoto/zoomable/coil/ZoomableAsyncImage.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import coil.compose.DefaultModelEqualityDelegate
2222
import coil.imageLoader
2323
import kotlinx.coroutines.flow.distinctUntilChanged
2424
import me.saket.telephoto.zoomable.DoubleClickToZoomListener
25-
import me.saket.telephoto.zoomable.ZoomInteractions
25+
import me.saket.telephoto.zoomable.EnabledZoomGestures
2626
import me.saket.telephoto.zoomable.ZoomableImage
2727
import me.saket.telephoto.zoomable.ZoomableImageSource
2828
import me.saket.telephoto.zoomable.ZoomableImageState
@@ -55,7 +55,7 @@ import me.saket.telephoto.zoomable.rememberZoomableState
5555
fun ZoomableAsyncImage(
5656
model: Any?,
5757
contentDescription: String?,
58-
interactions: ZoomInteractions,
58+
gestures: EnabledZoomGestures,
5959
modifier: Modifier = Modifier,
6060
state: ZoomableImageState = rememberZoomableImageState(rememberZoomableState()),
6161
imageLoader: ImageLoader = LocalContext.current.imageLoader,
@@ -78,7 +78,7 @@ fun ZoomableAsyncImage(
7878
colorFilter = colorFilter,
7979
alignment = alignment,
8080
contentScale = contentScale,
81-
interactions = interactions,
81+
gestures = gestures,
8282
onClick = onClick,
8383
onLongClick = onLongClick,
8484
onDoubleClick = onDoubleClick,
@@ -115,7 +115,7 @@ fun ZoomableAsyncImage(
115115
colorFilter = colorFilter,
116116
alignment = alignment,
117117
contentScale = contentScale,
118-
interactions = ZoomInteractions.ZoomAndPan,
118+
gestures = EnabledZoomGestures.ZoomAndPan,
119119
onClick = onClick,
120120
onLongClick = onLongClick,
121121
onDoubleClick = onDoubleClick,
@@ -125,9 +125,9 @@ fun ZoomableAsyncImage(
125125
}
126126

127127
@Deprecated(
128-
"Use the 'interactions' parameter instead. " +
129-
"Replace `gesturesEnabled = true` with `interactions = ZoomInteractions.ZoomAndPan`, " +
130-
"or `gesturesEnabled = false` with `interactions = ZoomInteractions.None`.",
128+
"Use the 'gestures' parameter instead. " +
129+
"Replace `gesturesEnabled = true` with `gestures = ZoomInteractions.ZoomAndPan`, " +
130+
"or `gesturesEnabled = false` with `gestures = ZoomInteractions.None`.",
131131
)
132132
@Composable
133133
@NonRestartableComposable
@@ -158,7 +158,7 @@ fun ZoomableAsyncImage(
158158
colorFilter = colorFilter,
159159
alignment = alignment,
160160
contentScale = contentScale,
161-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
161+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
162162
onClick = onClick,
163163
onLongClick = onLongClick,
164164
onDoubleClick = onDoubleClick,
@@ -234,7 +234,7 @@ fun ZoomableAsyncImage(
234234
colorFilter = colorFilter,
235235
alignment = alignment,
236236
contentScale = contentScale,
237-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
237+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
238238
onClick = onClick,
239239
onLongClick = onLongClick,
240240
onDoubleClick = onDoubleClick,
@@ -272,7 +272,7 @@ fun ZoomableAsyncImage(
272272
colorFilter = colorFilter,
273273
alignment = alignment,
274274
contentScale = contentScale,
275-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
275+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
276276
onClick = onClick,
277277
onLongClick = onLongClick,
278278
onDoubleClick = DoubleClickToZoomListener.cycle(),

zoomable-image/coil3/src/main/kotlin/me/saket/telephoto/zoomable/coil3/ZoomableAsyncImage.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import coil3.compose.LocalAsyncImageModelEqualityDelegate
2323
import coil3.imageLoader
2424
import kotlinx.coroutines.flow.distinctUntilChanged
2525
import me.saket.telephoto.zoomable.DoubleClickToZoomListener
26-
import me.saket.telephoto.zoomable.ZoomInteractions
26+
import me.saket.telephoto.zoomable.EnabledZoomGestures
2727
import me.saket.telephoto.zoomable.ZoomableImage
2828
import me.saket.telephoto.zoomable.ZoomableImageSource
2929
import me.saket.telephoto.zoomable.ZoomableImageState
@@ -56,7 +56,7 @@ import me.saket.telephoto.zoomable.rememberZoomableState
5656
fun ZoomableAsyncImage(
5757
model: Any?,
5858
contentDescription: String?,
59-
interactions: ZoomInteractions,
59+
gestures: EnabledZoomGestures,
6060
modifier: Modifier = Modifier,
6161
state: ZoomableImageState = rememberZoomableImageState(rememberZoomableState()),
6262
imageLoader: ImageLoader = LocalContext.current.imageLoader,
@@ -79,7 +79,7 @@ fun ZoomableAsyncImage(
7979
colorFilter = colorFilter,
8080
alignment = alignment,
8181
contentScale = contentScale,
82-
interactions = interactions,
82+
gestures = gestures,
8383
onClick = onClick,
8484
onLongClick = onLongClick,
8585
onDoubleClick = onDoubleClick,
@@ -116,7 +116,7 @@ fun ZoomableAsyncImage(
116116
colorFilter = colorFilter,
117117
alignment = alignment,
118118
contentScale = contentScale,
119-
interactions = ZoomInteractions.ZoomAndPan,
119+
gestures = EnabledZoomGestures.ZoomAndPan,
120120
onClick = onClick,
121121
onLongClick = onLongClick,
122122
onDoubleClick = onDoubleClick,
@@ -126,9 +126,9 @@ fun ZoomableAsyncImage(
126126
}
127127

128128
@Deprecated(
129-
"Use the 'interactions' parameter instead. " +
130-
"Replace `gesturesEnabled = true` with `interactions = ZoomInteractions.ZoomAndPan`, " +
131-
"or `gesturesEnabled = false` with `interactions = ZoomInteractions.None`.",
129+
"Use the 'gestures' parameter instead. " +
130+
"Replace `gesturesEnabled = true` with `gestures = ZoomInteractions.ZoomAndPan`, " +
131+
"or `gesturesEnabled = false` with `gestures = ZoomInteractions.None`.",
132132
)
133133
@Composable
134134
@NonRestartableComposable
@@ -159,7 +159,7 @@ fun ZoomableAsyncImage(
159159
colorFilter = colorFilter,
160160
alignment = alignment,
161161
contentScale = contentScale,
162-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
162+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
163163
onClick = onClick,
164164
onLongClick = onLongClick,
165165
onDoubleClick = onDoubleClick,
@@ -237,7 +237,7 @@ fun ZoomableAsyncImage(
237237
colorFilter = colorFilter,
238238
alignment = alignment,
239239
contentScale = contentScale,
240-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
240+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
241241
onClick = onClick,
242242
onLongClick = onLongClick,
243243
onDoubleClick = onDoubleClick,

zoomable-image/core/src/main/kotlin/me/saket/telephoto/zoomable/ZoomableImage.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ import me.saket.telephoto.zoomable.internal.receiveFocusFrom
6464
fun ZoomableImage(
6565
image: ZoomableImageSource,
6666
contentDescription: String?,
67-
interactions: ZoomInteractions,
67+
gestures: EnabledZoomGestures,
6868
modifier: Modifier = Modifier,
6969
state: ZoomableImageState = rememberZoomableImageState(rememberZoomableState()),
7070
alpha: Float = DefaultAlpha,
@@ -186,7 +186,7 @@ fun ZoomableImage(
186186
.receiveFocusFrom(focusForwarder)
187187
.zoomable(
188188
state = state.zoomableState,
189-
interactions = if (state.isPlaceholderDisplayed) ZoomInteractions.None else interactions,
189+
gestures = if (state.isPlaceholderDisplayed) EnabledZoomGestures.None else gestures,
190190
onClick = onClick,
191191
onLongClick = onLongClick,
192192
onDoubleClick = onDoubleClick,
@@ -265,7 +265,7 @@ fun ZoomableImage(
265265
colorFilter = colorFilter,
266266
alignment = alignment,
267267
contentScale = contentScale,
268-
interactions = ZoomInteractions.ZoomAndPan,
268+
gestures = EnabledZoomGestures.ZoomAndPan,
269269
onClick = onClick,
270270
onLongClick = onLongClick,
271271
onDoubleClick = onDoubleClick,
@@ -275,9 +275,9 @@ fun ZoomableImage(
275275
}
276276

277277
@Deprecated(
278-
"Use the 'interactions' parameter instead. " +
279-
"Replace `gesturesEnabled = true` with `interactions = ZoomInteractions.ZoomAndPan`, " +
280-
"or `gesturesEnabled = false` with `interactions = ZoomInteractions.None`.",
278+
"Use the 'gestures' parameter instead. " +
279+
"Replace `gesturesEnabled = true` with `gestures = ZoomInteractions.ZoomAndPan`, " +
280+
"or `gesturesEnabled = false` with `gestures = ZoomInteractions.None`.",
281281
)
282282
@Composable
283283
fun ZoomableImage(
@@ -305,7 +305,7 @@ fun ZoomableImage(
305305
colorFilter = colorFilter,
306306
alignment = alignment,
307307
contentScale = contentScale,
308-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
308+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
309309
onClick = onClick,
310310
onLongClick = onLongClick,
311311
onDoubleClick = onDoubleClick,
@@ -354,7 +354,7 @@ fun ZoomableImage(
354354
colorFilter = colorFilter,
355355
alignment = alignment,
356356
contentScale = contentScale,
357-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
357+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
358358
onClick = onClick,
359359
onLongClick = onLongClick,
360360
onDoubleClick = onDoubleClick,
@@ -387,7 +387,7 @@ fun ZoomableImage(
387387
colorFilter = colorFilter,
388388
alignment = alignment,
389389
contentScale = contentScale,
390-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
390+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
391391
onClick = onClick,
392392
onLongClick = onLongClick,
393393
onDoubleClick = DoubleClickToZoomListener.cycle(),

zoomable-image/glide/src/main/kotlin/me/saket/telephoto/zoomable/glide/ZoomableGlideImage.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import androidx.compose.ui.unit.dp
1818
import com.bumptech.glide.Glide
1919
import com.bumptech.glide.RequestBuilder
2020
import me.saket.telephoto.zoomable.DoubleClickToZoomListener
21-
import me.saket.telephoto.zoomable.ZoomInteractions
21+
import me.saket.telephoto.zoomable.EnabledZoomGestures
2222
import me.saket.telephoto.zoomable.ZoomableImage
2323
import me.saket.telephoto.zoomable.ZoomableImageSource
2424
import me.saket.telephoto.zoomable.ZoomableImageState
@@ -57,7 +57,7 @@ import me.saket.telephoto.zoomable.rememberZoomableState
5757
fun ZoomableGlideImage(
5858
model: Any?,
5959
contentDescription: String?,
60-
interactions: ZoomInteractions,
60+
gestures: EnabledZoomGestures,
6161
modifier: Modifier = Modifier,
6262
state: ZoomableImageState = rememberZoomableImageState(rememberZoomableState()),
6363
alpha: Float = DefaultAlpha,
@@ -80,7 +80,7 @@ fun ZoomableGlideImage(
8080
colorFilter = colorFilter,
8181
alignment = alignment,
8282
contentScale = contentScale,
83-
interactions = interactions,
83+
gestures = gestures,
8484
onClick = onClick,
8585
onLongClick = onLongClick,
8686
onDoubleClick = onDoubleClick,
@@ -116,7 +116,7 @@ fun ZoomableGlideImage(
116116
colorFilter = colorFilter,
117117
alignment = alignment,
118118
contentScale = contentScale,
119-
interactions = ZoomInteractions.ZoomAndPan,
119+
gestures = EnabledZoomGestures.ZoomAndPan,
120120
onClick = onClick,
121121
onLongClick = onLongClick,
122122
onDoubleClick = onDoubleClick,
@@ -127,9 +127,9 @@ fun ZoomableGlideImage(
127127
}
128128

129129
@Deprecated(
130-
"Use the 'interactions' parameter instead. " +
131-
"Replace `gesturesEnabled = true` with `interactions = ZoomInteractions.ZoomAndPan`, " +
132-
"or `gesturesEnabled = false` with `interactions = ZoomInteractions.None`.",
130+
"Use the 'gestures' parameter instead. " +
131+
"Replace `gesturesEnabled = true` with `gestures = ZoomInteractions.ZoomAndPan`, " +
132+
"or `gesturesEnabled = false` with `gestures = ZoomInteractions.None`.",
133133
)
134134
@Composable
135135
@NonRestartableComposable
@@ -159,7 +159,7 @@ fun ZoomableGlideImage(
159159
colorFilter = colorFilter,
160160
alignment = alignment,
161161
contentScale = contentScale,
162-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
162+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
163163
onClick = onClick,
164164
onLongClick = onLongClick,
165165
onDoubleClick = onDoubleClick,
@@ -242,7 +242,7 @@ fun ZoomableGlideImage(
242242
colorFilter = colorFilter,
243243
alignment = alignment,
244244
contentScale = contentScale,
245-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
245+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
246246
onClick = onClick,
247247
onLongClick = onLongClick,
248248
clipToBounds = clipToBounds,
@@ -280,7 +280,7 @@ fun ZoomableGlideImage(
280280
colorFilter = colorFilter,
281281
alignment = alignment,
282282
contentScale = contentScale,
283-
interactions = if (gesturesEnabled) ZoomInteractions.ZoomAndPan else ZoomInteractions.None,
283+
gestures = if (gesturesEnabled) EnabledZoomGestures.ZoomAndPan else EnabledZoomGestures.None,
284284
onClick = onClick,
285285
onLongClick = onLongClick,
286286
onDoubleClick = DoubleClickToZoomListener.cycle(),

zoomable-peek-overlay/src/main/kotlin/me/saket/telephoto/zoomable/ZoomablePeekOverlay.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ fun Modifier.zoomablePeekOverlay(
5656
onClick = null,
5757
onLongClick = null,
5858
onDoubleClick = null,
59-
interactions = ZoomInteractions(
59+
gestures = EnabledZoomGestures(
6060
pinchToZoom = true,
6161
quickZoom = false,
6262
),

zoomable/src/commonMain/kotlin/me/saket/telephoto/zoomable/ZoomInteractions.kt renamed to zoomable/src/commonMain/kotlin/me/saket/telephoto/zoomable/EnabledZoomGestures.kt

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,28 @@ import androidx.compose.runtime.Immutable
66
import kotlin.jvm.JvmInline
77

88
/**
9-
* Gesture interactions that can be enabled for [Modifier.zoomable][zoomable].
9+
* Gestures that [Modifier.zoomable][zoomable] will observe and respond to.
10+
*
11+
* This acts as a simple toggle bag for different gesture types. To control _how_ [Modifier.zoomable][zoomable]
12+
* responds to them, use the params defined in [rememberZoomableState].
1013
*
1114
* Presets:
1215
*
13-
* - [ZoomInteractions.ZoomAndPan]
14-
* - [ZoomInteractions.ZoomOnly]
15-
* - [ZoomInteractions.PanOnly]
16-
* - [ZoomInteractions.None]
17-
* */
16+
* - [EnabledZoomGestures.ZoomAndPan]
17+
* - [EnabledZoomGestures.ZoomOnly]
18+
* - [EnabledZoomGestures.PanOnly]
19+
* - [EnabledZoomGestures.None]
20+
*/
1821
@Immutable
1922
@JvmInline
20-
value class ZoomInteractions private constructor(
23+
value class EnabledZoomGestures private constructor(
2124
private val flags: Int
2225
) {
2326
companion object {
24-
val ZoomAndPan = ZoomInteractions(Flag.PinchToZoom or Flag.QuickZoom or Flag.Pan)
25-
val ZoomOnly = ZoomInteractions(Flag.PinchToZoom or Flag.QuickZoom)
26-
val PanOnly = ZoomInteractions(Flag.Pan)
27-
val None = ZoomInteractions(0)
27+
val ZoomAndPan = EnabledZoomGestures(Flag.PinchToZoom or Flag.QuickZoom or Flag.Pan)
28+
val ZoomOnly = EnabledZoomGestures(Flag.PinchToZoom or Flag.QuickZoom)
29+
val PanOnly = EnabledZoomGestures(Flag.Pan)
30+
val None = EnabledZoomGestures(0)
2831
}
2932

3033
val zoom: Boolean
@@ -61,13 +64,13 @@ value class ZoomInteractions private constructor(
6164
fun copy(
6265
zoom: Boolean = this.zoom,
6366
pan: Boolean = this.pan,
64-
) = ZoomInteractions(
67+
) = EnabledZoomGestures(
6568
zoom = zoom,
6669
pan = pan,
6770
)
6871

6972
override fun toString(): String {
70-
return "ZoomInteractions(zoom=$zoom, pan=$pan)"
73+
return "EnabledZoomGestures(zoom=$zoom, pan=$pan)"
7174
}
7275

7376
private object Flag {

0 commit comments

Comments
 (0)