Skip to content

Commit 40a52f8

Browse files
committed
Deprecate NativeCanvas typealias
Change-Id: I26098f1b585f1e902ab4cab83f5525beb4dc54eb
1 parent eec67cf commit 40a52f8

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidCanvas.android.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ import androidx.compose.ui.unit.IntOffset
2222
import androidx.compose.ui.unit.IntSize
2323
import androidx.compose.ui.util.fastForEach
2424

25+
@Deprecated(
26+
message = "Use android.graphics.Canvas directly instead",
27+
replaceWith = ReplaceWith("android.graphics.Canvas"),
28+
)
2529
actual typealias NativeCanvas = android.graphics.Canvas
2630

2731
/** Create a new Canvas instance that targets its drawing commands to the provided [ImageBitmap] */
@@ -30,6 +34,12 @@ internal actual fun ActualCanvas(image: ImageBitmap): Canvas =
3034

3135
fun Canvas(c: android.graphics.Canvas): Canvas = AndroidCanvas().apply { internalCanvas = c }
3236

37+
fun android.graphics.Canvas.asComposeCanvas(): Canvas =
38+
AndroidCanvas().apply { internalCanvas = this@asComposeCanvas }
39+
40+
fun Canvas.asAndroidCanvas(): android.graphics.Canvas =
41+
(this as AndroidCanvas).internalCanvas
42+
3343
/**
3444
* Holder class that is used to issue scoped calls to a [Canvas] from the framework equivalent
3545
* canvas without having to allocate an object on each draw call
@@ -46,6 +56,11 @@ class CanvasHolder {
4656
}
4757

4858
/** Return an instance of the native primitive that implements the Canvas interface */
59+
@Suppress("DEPRECATION")
60+
@Deprecated(
61+
message = "Use Canvas.asAndroidCanvas() extension instead",
62+
replaceWith = ReplaceWith("asAndroidCanvas()"),
63+
)
4964
actual val Canvas.nativeCanvas: NativeCanvas
5065
get() = (this as AndroidCanvas).internalCanvas
5166

compose/ui/ui-graphics/src/commonMain/kotlin/androidx/compose/ui/graphics/Canvas.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ fun Canvas(image: ImageBitmap): Canvas = ActualCanvas(image)
2727

2828
internal expect fun ActualCanvas(image: ImageBitmap): Canvas
2929

30+
@Deprecated("Use direct reference to platform type instead of typealias")
3031
expect class NativeCanvas
3132

3233
/**
@@ -147,6 +148,8 @@ fun Canvas.scale(sx: Float, sy: Float = sx, pivotX: Float, pivotY: Float) {
147148
}
148149

149150
/** Return an instance of the native primitive that implements the Canvas interface */
151+
@Suppress("DEPRECATION")
152+
@Deprecated("Use platform-specific extension to get platform reference")
150153
expect val Canvas.nativeCanvas: NativeCanvas
151154

152155
@JvmDefaultWithCompatibility

0 commit comments

Comments
 (0)