Skip to content

Commit 5c0defb

Browse files
author
Alexey Nesterov
committed
Add OptIn annotations
1 parent 7a66558 commit 5c0defb

File tree

6 files changed

+13
-3
lines changed

6 files changed

+13
-3
lines changed

media/src/iosMain/kotlin/dev/icerock/moko/media/Bitmap.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package dev.icerock.moko.media
66

77
import kotlinx.cinterop.ByteVar
88
import kotlinx.cinterop.CPointer
9+
import kotlinx.cinterop.ExperimentalForeignApi
910
import kotlinx.cinterop.get
1011
import kotlinx.cinterop.reinterpret
1112
import kotlinx.cinterop.useContents
@@ -18,6 +19,7 @@ import platform.UIKit.UIGraphicsGetImageFromCurrentImageContext
1819
import platform.UIKit.UIImage
1920
import platform.UIKit.UIImageJPEGRepresentation
2021

22+
@OptIn(ExperimentalForeignApi::class)
2123
actual class Bitmap(val image: UIImage) {
2224

2325
actual fun toByteArray(): ByteArray {
@@ -34,7 +36,7 @@ actual class Bitmap(val image: UIImage) {
3436
val imageData = UIImageJPEGRepresentation(image, COMPRESSION_QUALITY)
3537
?: throw IllegalArgumentException("image data is null")
3638

37-
return imageData.base64EncodedStringWithOptions(0)
39+
return imageData.base64EncodedStringWithOptions(0u)
3840
}
3941

4042
actual fun toBase64WithCompress(maxSize: Int): String {
@@ -54,7 +56,7 @@ actual class Bitmap(val image: UIImage) {
5456
val imageData = UIImageJPEGRepresentation(newImage!!, COMPRESSION_QUALITY)
5557
?: throw IllegalArgumentException("image data is null")
5658

57-
return imageData.base64EncodedStringWithOptions(0)
59+
return imageData.base64EncodedStringWithOptions(0u)
5860
}
5961

6062
private companion object {

media/src/iosMain/kotlin/dev/icerock/moko/media/FileMediaExt.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package dev.icerock.moko.media
66

77
import kotlinx.cinterop.ByteVar
88
import kotlinx.cinterop.CPointer
9+
import kotlinx.cinterop.ExperimentalForeignApi
910
import kotlinx.cinterop.get
1011
import kotlinx.cinterop.reinterpret
1112
import platform.Foundation.NSData
@@ -18,6 +19,7 @@ fun FileMedia.toNSData(): NSData {
1819
return NSData.dataWithContentsOfURL(url) ?: throw IllegalArgumentException("invalid file data")
1920
}
2021

22+
@OptIn(ExperimentalForeignApi::class)
2123
actual fun FileMedia.toByteArray(): ByteArray {
2224
val data = toNSData()
2325
val bytes = data.bytes ?: throw IllegalArgumentException("file bytes is null")

media/src/iosMain/kotlin/dev/icerock/moko/media/picker/ImagePickerDelegateToContinuation.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import dev.icerock.moko.media.Bitmap
88
import dev.icerock.moko.media.Media
99
import dev.icerock.moko.media.MediaType
1010
import dev.icerock.moko.media.picker.ios.MediaPickerController
11+
import kotlinx.cinterop.ExperimentalForeignApi
1112
import platform.AVFoundation.AVAsset
1213
import platform.AVFoundation.AVAssetImageGenerator
1314
import platform.AVFoundation.AVURLAsset
@@ -91,6 +92,7 @@ internal class ImagePickerDelegateToContinuation constructor(
9192
}
9293

9394
// Стоит сделать асинхронно и придумать что делать с ошибкой
95+
@OptIn(ExperimentalForeignApi::class)
9496
private fun fetchThumbnail(videoAsset: AVAsset): UIImage {
9597
val imageGenerator = AVAssetImageGenerator(
9698
asset = videoAsset

media/src/iosMain/kotlin/dev/icerock/moko/media/picker/ios/MediaPickerController.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import dev.icerock.moko.media.picker.ImagePickerDelegateToContinuation
1515
import dev.icerock.moko.media.picker.MediaSource
1616
import dev.icerock.moko.permissions.Permission
1717
import dev.icerock.moko.permissions.PermissionsController
18+
import kotlinx.cinterop.ExperimentalForeignApi
1819
import platform.CoreServices.kUTTypeData
1920
import platform.CoreServices.kUTTypeImage
2021
import platform.CoreServices.kUTTypeMovie
@@ -155,6 +156,7 @@ class MediaPickerController(
155156
return media
156157
}
157158

159+
@OptIn(ExperimentalForeignApi::class)
158160
internal companion object {
159161
val kVideoType = CFBridgingRelease(kUTTypeVideo) as String
160162
val kMovieType = CFBridgingRelease(kUTTypeMovie) as String

media/src/iosMain/kotlin/dev/icerock/moko/media/player/MediaPlayerController.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
package dev.icerock.moko.media.player
66

7+
import kotlinx.cinterop.ExperimentalForeignApi
78
import kotlinx.cinterop.cValue
89
import platform.AVFoundation.AVPlayer
910
import platform.AVFoundation.AVPlayerItemDidPlayToEndTimeNotification
@@ -72,6 +73,7 @@ actual class MediaPlayerController {
7273
player?.pause()
7374
}
7475

76+
@OptIn(ExperimentalForeignApi::class)
7577
actual fun stop() {
7678
player?.run {
7779
pause()

sample/ios-app/Podfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ source 'https://cdn.cocoapods.org/'
44
inhibit_all_warnings!
55

66
use_frameworks!
7-
platform :ios, '11.0'
7+
platform :ios, '12.0'
88
# workaround for https://github.com/CocoaPods/CocoaPods/issues/8073
99
# need for correct invalidate of cache MultiPlatformLibrary.framework
1010
install! 'cocoapods', :disable_input_output_paths => true

0 commit comments

Comments
 (0)