diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/ScreenSaverService.kt b/android/app/src/main/kotlin/deckers/thibault/aves/ScreenSaverService.kt index 931fe9560..c1e3ae096 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/ScreenSaverService.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/ScreenSaverService.kt @@ -5,7 +5,15 @@ import android.util.Log import android.view.View import app.loup.streams_channel.StreamsChannel import deckers.thibault.aves.channel.AvesByteSendingMethodCodec -import deckers.thibault.aves.channel.calls.* +import deckers.thibault.aves.channel.calls.AccessibilityHandler +import deckers.thibault.aves.channel.calls.DeviceHandler +import deckers.thibault.aves.channel.calls.EmbeddedDataHandler +import deckers.thibault.aves.channel.calls.MediaFetchBytesHandler +import deckers.thibault.aves.channel.calls.MediaFetchObjectHandler +import deckers.thibault.aves.channel.calls.MediaSessionHandler +import deckers.thibault.aves.channel.calls.MediaStoreHandler +import deckers.thibault.aves.channel.calls.MetadataFetchHandler +import deckers.thibault.aves.channel.calls.StorageHandler import deckers.thibault.aves.channel.calls.window.ServiceWindowHandler import deckers.thibault.aves.channel.calls.window.WindowHandler import deckers.thibault.aves.channel.streams.ImageByteStreamHandler diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/SearchSuggestionsProvider.kt b/android/app/src/main/kotlin/deckers/thibault/aves/SearchSuggestionsProvider.kt index c7f2f8fd4..e182f56f3 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/SearchSuggestionsProvider.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/SearchSuggestionsProvider.kt @@ -16,8 +16,12 @@ import deckers.thibault.aves.utils.FlutterUtils import deckers.thibault.aves.utils.LogUtils import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugin.common.MethodChannel -import kotlinx.coroutines.* -import java.util.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking +import java.util.Locale import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException import kotlin.coroutines.suspendCoroutine diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DebugHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DebugHandler.kt index 0f230102b..ab8e20783 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DebugHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DebugHandler.kt @@ -12,7 +12,6 @@ import android.os.Handler import android.os.Looper import android.provider.MediaStore import android.util.Log -import androidx.exifinterface.media.ExifInterfaceFork as ExifInterface import com.drew.metadata.file.FileTypeDirectory import deckers.thibault.aves.channel.calls.Coresult.Companion.safe import deckers.thibault.aves.metadata.ExifInterfaceHelper @@ -44,6 +43,7 @@ import org.beyka.tiffbitmapfactory.TiffBitmapFactory import org.mp4parser.IsoFile import java.io.FileInputStream import java.io.IOException +import androidx.exifinterface.media.ExifInterfaceFork as ExifInterface class DebugHandler(private val context: Context) : MethodCallHandler { private val ioScope = CoroutineScope(SupervisorJob() + Dispatchers.IO) diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DeviceHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DeviceHandler.kt index 15cd66c86..e6130d087 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DeviceHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/DeviceHandler.kt @@ -24,7 +24,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.launch import java.util.Locale -import java.util.TimeZone class DeviceHandler(private val context: Context) : MethodCallHandler { private val defaultScope = CoroutineScope(SupervisorJob() + Dispatchers.Default) diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MediaSessionHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MediaSessionHandler.kt index f78099e0c..e336cd28f 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MediaSessionHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/MediaSessionHandler.kt @@ -1,6 +1,10 @@ package deckers.thibault.aves.channel.calls -import android.content.* +import android.content.BroadcastReceiver +import android.content.ComponentName +import android.content.Context +import android.content.Intent +import android.content.IntentFilter import android.media.AudioManager import android.media.session.PlaybackState import android.net.Uri diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/streams/ImageOpStreamHandler.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/streams/ImageOpStreamHandler.kt index 42de00276..d81b8cd82 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/streams/ImageOpStreamHandler.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/streams/ImageOpStreamHandler.kt @@ -1,10 +1,10 @@ package deckers.thibault.aves.channel.streams import android.app.Activity -import android.net.Uri import android.os.Handler import android.os.Looper import android.util.Log +import androidx.core.net.toUri import deckers.thibault.aves.channel.calls.MediaEditHandler.Companion.cancelledOps import deckers.thibault.aves.model.AvesEntry import deckers.thibault.aves.model.FieldMap @@ -141,7 +141,7 @@ class ImageOpStreamHandler(private val activity: Activity, private val arguments // assume same provider for all entries val firstEntry = entryMapList.first() - val provider = (firstEntry["uri"] as String?)?.let { Uri.parse(it) }?.let { getProvider(activity, it) } + val provider = (firstEntry["uri"] as String?)?.toUri()?.let { getProvider(activity, it) } if (provider == null) { error("convert-provider", "failed to find provider for entry=$firstEntry", null) return diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/ExifInterfaceHelper.kt b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/ExifInterfaceHelper.kt index 8b5aa7114..2f9b6525b 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/ExifInterfaceHelper.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/ExifInterfaceHelper.kt @@ -1,7 +1,6 @@ package deckers.thibault.aves.metadata import android.util.Log -import androidx.exifinterface.media.ExifInterfaceFork as ExifInterface import com.drew.lang.Rational import com.drew.metadata.Directory import com.drew.metadata.exif.ExifDirectoryBase @@ -19,6 +18,7 @@ import java.util.Locale import kotlin.math.abs import kotlin.math.floor import kotlin.math.roundToLong +import androidx.exifinterface.media.ExifInterfaceFork as ExifInterface object ExifInterfaceHelper { private val LOG_TAG = LogUtils.createTag() diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/Mp4ParserHelper.kt b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/Mp4ParserHelper.kt index 6761d47a5..2f9801b70 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/Mp4ParserHelper.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/Mp4ParserHelper.kt @@ -9,7 +9,11 @@ import deckers.thibault.aves.utils.MimeTypes import deckers.thibault.aves.utils.StorageUtils import deckers.thibault.aves.utils.toByteArray import deckers.thibault.aves.utils.toHex -import org.mp4parser.* +import org.mp4parser.BasicContainer +import org.mp4parser.Box +import org.mp4parser.Container +import org.mp4parser.IsoFile +import org.mp4parser.PropertyBoxParserImpl import org.mp4parser.boxes.UnknownBox import org.mp4parser.boxes.UserBox import org.mp4parser.boxes.apple.AppleCoverBox @@ -17,7 +21,16 @@ import org.mp4parser.boxes.apple.AppleGPSCoordinatesBox import org.mp4parser.boxes.apple.AppleItemListBox import org.mp4parser.boxes.apple.AppleVariableSignedIntegerBox import org.mp4parser.boxes.apple.Utf8AppleDataBox -import org.mp4parser.boxes.iso14496.part12.* +import org.mp4parser.boxes.iso14496.part12.FreeBox +import org.mp4parser.boxes.iso14496.part12.HandlerBox +import org.mp4parser.boxes.iso14496.part12.MediaDataBox +import org.mp4parser.boxes.iso14496.part12.MetaBox +import org.mp4parser.boxes.iso14496.part12.MovieBox +import org.mp4parser.boxes.iso14496.part12.MovieFragmentBox +import org.mp4parser.boxes.iso14496.part12.SampleTableBox +import org.mp4parser.boxes.iso14496.part12.SegmentIndexBox +import org.mp4parser.boxes.iso14496.part12.TrackHeaderBox +import org.mp4parser.boxes.iso14496.part12.UserDataBox import org.mp4parser.boxes.threegpp.ts26244.AuthorBox import org.mp4parser.support.AbstractBox import org.mp4parser.support.Matrix diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/PixyMetaHelper.kt b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/PixyMetaHelper.kt index 200379383..04e5365ef 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/PixyMetaHelper.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/PixyMetaHelper.kt @@ -26,7 +26,6 @@ import pixy.meta.string.XMLUtils import java.io.File import java.io.InputStream import java.io.OutputStream -import java.util.* object PixyMetaHelper { fun describe(input: InputStream): HashMap { diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/QuickTimeMetadata.kt b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/QuickTimeMetadata.kt index 0c198ad29..e9b2206e0 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/metadata/QuickTimeMetadata.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/metadata/QuickTimeMetadata.kt @@ -3,7 +3,6 @@ package deckers.thibault.aves.metadata import deckers.thibault.aves.utils.toHex import java.math.BigInteger import java.nio.charset.Charset -import java.util.* class QuickTimeMetadataBlock(val type: String, val value: String, val language: String) diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ImageProvider.kt b/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ImageProvider.kt index 8b2d530e5..4239a60ad 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ImageProvider.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/ImageProvider.kt @@ -63,6 +63,7 @@ import java.util.Date import java.util.TimeZone import kotlin.math.absoluteValue import androidx.exifinterface.media.ExifInterfaceFork as ExifInterface +import androidx.core.net.toUri abstract class ImageProvider { open fun fetchSingle(context: Context, uri: Uri, sourceMimeType: String?, allowUnsized: Boolean, callback: ImageOpCallback) { @@ -360,7 +361,7 @@ abstract class ImageProvider { ) val newFields = scanNewPath(activity, targetPath, exportMimeType) - val targetUri = Uri.parse(newFields["uri"] as String) + val targetUri = (newFields["uri"] as String).toUri() if (writeMetadata) { copyMetadata( context = activity, diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/MediaStoreImageProvider.kt b/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/MediaStoreImageProvider.kt index fc921de8c..9843a354c 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/MediaStoreImageProvider.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/model/provider/MediaStoreImageProvider.kt @@ -40,7 +40,6 @@ import java.io.FileOutputStream import java.io.IOException import java.io.OutputStream import java.io.SyncFailedException -import java.util.Date import java.util.Locale import java.util.concurrent.CompletableFuture import kotlin.coroutines.Continuation diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt b/android/app/src/main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt index 8cc0aa52a..b7f236f33 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/utils/MimeTypes.kt @@ -1,8 +1,8 @@ package deckers.thibault.aves.utils import android.webkit.MimeTypeMap -import androidx.exifinterface.media.ExifInterfaceFork as ExifInterface import deckers.thibault.aves.decoder.MultiPageImage +import androidx.exifinterface.media.ExifInterfaceFork as ExifInterface object MimeTypes { const val ANY = "*/*" diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/utils/StorageUtils.kt b/android/app/src/main/kotlin/deckers/thibault/aves/utils/StorageUtils.kt index 136d3827d..c05ab4808 100644 --- a/android/app/src/main/kotlin/deckers/thibault/aves/utils/StorageUtils.kt +++ b/android/app/src/main/kotlin/deckers/thibault/aves/utils/StorageUtils.kt @@ -9,7 +9,6 @@ import android.content.pm.PackageManager import android.media.MediaMetadataRetriever import android.net.Uri import android.os.Build -import android.os.Environment import android.os.ParcelFileDescriptor import android.os.storage.StorageManager import android.provider.DocumentsContract