Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
efa663e868
14 changed files with 42 additions and 17 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<ExifInterfaceHelper>()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<String, String> {
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = "*/*"
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue