mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-26 03:16:02 +03:00
Merge pull request #1996 from johnjohndoe/file-extensions
Use File extension functions to make code more concise.
This commit is contained in:
commit
a5f537f251
10 changed files with 13 additions and 22 deletions
|
@ -20,7 +20,7 @@ Build 🧱:
|
||||||
- Some dependencies have been upgraded (coroutine, recyclerView, appCompat, core-ktx, firebase-messaging)
|
- Some dependencies have been upgraded (coroutine, recyclerView, appCompat, core-ktx, firebase-messaging)
|
||||||
|
|
||||||
Other changes:
|
Other changes:
|
||||||
-
|
- Use File extension functions to make code more concise (#1996)
|
||||||
|
|
||||||
Changes in Element 1.0.5 (2020-08-21)
|
Changes in Element 1.0.5 (2020-08-21)
|
||||||
===================================================
|
===================================================
|
||||||
|
|
|
@ -29,7 +29,6 @@ import org.junit.FixMethodOrder
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.junit.runners.MethodSorters
|
import org.junit.runners.MethodSorters
|
||||||
import java.io.ByteArrayInputStream
|
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,7 +45,7 @@ class AttachmentEncryptionTest {
|
||||||
val inputStream: InputStream
|
val inputStream: InputStream
|
||||||
|
|
||||||
inputStream = if (`in`.isEmpty()) {
|
inputStream = if (`in`.isEmpty()) {
|
||||||
ByteArrayInputStream(`in`)
|
`in`.inputStream()
|
||||||
} else {
|
} else {
|
||||||
val memoryFile = MemoryFile("file" + System.currentTimeMillis(), `in`.size)
|
val memoryFile = MemoryFile("file" + System.currentTimeMillis(), `in`.size)
|
||||||
memoryFile.outputStream.write(`in`)
|
memoryFile.outputStream.write(`in`)
|
||||||
|
|
|
@ -21,7 +21,6 @@ import android.util.Base64
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.EncryptedFileInfo
|
import org.matrix.android.sdk.internal.crypto.model.rest.EncryptedFileInfo
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.EncryptedFileKey
|
import org.matrix.android.sdk.internal.crypto.model.rest.EncryptedFileKey
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.ByteArrayInputStream
|
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.security.MessageDigest
|
import java.security.MessageDigest
|
||||||
|
@ -179,7 +178,7 @@ internal object MXEncryptedAttachments {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
return ByteArrayInputStream(outputStream.toByteArray())
|
return outputStream.toByteArray().inputStream()
|
||||||
.also { Timber.v("Decrypt in ${System.currentTimeMillis() - t0}ms") }
|
.also { Timber.v("Decrypt in ${System.currentTimeMillis() - t0}ms") }
|
||||||
} catch (oom: OutOfMemoryError) {
|
} catch (oom: OutOfMemoryError) {
|
||||||
Timber.e(oom, "## decryptAttachment() failed: OOM")
|
Timber.e(oom, "## decryptAttachment() failed: OOM")
|
||||||
|
|
|
@ -21,7 +21,6 @@ import android.util.Base64
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import io.realm.RealmObject
|
import io.realm.RealmObject
|
||||||
import java.io.ByteArrayInputStream
|
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.ObjectOutputStream
|
import java.io.ObjectOutputStream
|
||||||
import java.util.zip.GZIPInputStream
|
import java.util.zip.GZIPInputStream
|
||||||
|
@ -96,7 +95,7 @@ fun <T> deserializeFromRealm(string: String?): T? {
|
||||||
}
|
}
|
||||||
val decodedB64 = Base64.decode(string.toByteArray(), Base64.DEFAULT)
|
val decodedB64 = Base64.decode(string.toByteArray(), Base64.DEFAULT)
|
||||||
|
|
||||||
val bais = ByteArrayInputStream(decodedB64)
|
val bais = decodedB64.inputStream()
|
||||||
val gzis = GZIPInputStream(bais)
|
val gzis = GZIPInputStream(bais)
|
||||||
val ois = SafeObjectInputStream(gzis)
|
val ois = SafeObjectInputStream(gzis)
|
||||||
return ois.use {
|
return ois.use {
|
||||||
|
|
|
@ -42,10 +42,7 @@ import org.matrix.android.sdk.internal.worker.SessionWorkerParams
|
||||||
import org.matrix.android.sdk.internal.worker.WorkerParamsFactory
|
import org.matrix.android.sdk.internal.worker.WorkerParamsFactory
|
||||||
import org.matrix.android.sdk.internal.worker.getSessionComponent
|
import org.matrix.android.sdk.internal.worker.getSessionComponent
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.ByteArrayInputStream
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileInputStream
|
|
||||||
import java.io.FileOutputStream
|
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -130,7 +127,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
|
||||||
val contentUploadResponse = if (params.isEncrypted) {
|
val contentUploadResponse = if (params.isEncrypted) {
|
||||||
Timber.v("Encrypt thumbnail")
|
Timber.v("Encrypt thumbnail")
|
||||||
notifyTracker(params) { contentUploadStateTracker.setEncryptingThumbnail(it) }
|
notifyTracker(params) { contentUploadStateTracker.setEncryptingThumbnail(it) }
|
||||||
val encryptionResult = MXEncryptedAttachments.encryptAttachment(ByteArrayInputStream(thumbnailData.bytes), thumbnailData.mimeType)
|
val encryptionResult = MXEncryptedAttachments.encryptAttachment(thumbnailData.bytes.inputStream(), thumbnailData.mimeType)
|
||||||
uploadedThumbnailEncryptedFileInfo = encryptionResult.encryptedFileInfo
|
uploadedThumbnailEncryptedFileInfo = encryptionResult.encryptedFileInfo
|
||||||
fileUploader.uploadByteArray(encryptionResult.encryptedByteArray,
|
fileUploader.uploadByteArray(encryptionResult.encryptedByteArray,
|
||||||
"thumb_${attachment.name}",
|
"thumb_${attachment.name}",
|
||||||
|
@ -176,7 +173,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
|
||||||
cacheFile.createNewFile()
|
cacheFile.createNewFile()
|
||||||
cacheFile.deleteOnExit()
|
cacheFile.deleteOnExit()
|
||||||
|
|
||||||
val outputStream = FileOutputStream(cacheFile)
|
val outputStream = cacheFile.outputStream()
|
||||||
outputStream.use {
|
outputStream.use {
|
||||||
inputStream.copyTo(outputStream)
|
inputStream.copyTo(outputStream)
|
||||||
}
|
}
|
||||||
|
@ -203,7 +200,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
|
||||||
Timber.v("Encrypt file")
|
Timber.v("Encrypt file")
|
||||||
notifyTracker(params) { contentUploadStateTracker.setEncrypting(it) }
|
notifyTracker(params) { contentUploadStateTracker.setEncrypting(it) }
|
||||||
|
|
||||||
val encryptionResult = MXEncryptedAttachments.encryptAttachment(FileInputStream(cacheFile), attachment.getSafeMimeType())
|
val encryptionResult = MXEncryptedAttachments.encryptAttachment(cacheFile.inputStream(), attachment.getSafeMimeType())
|
||||||
uploadedFileEncryptedFileInfo = encryptionResult.encryptedFileInfo
|
uploadedFileEncryptedFileInfo = encryptionResult.encryptedFileInfo
|
||||||
|
|
||||||
fileUploader
|
fileUploader
|
||||||
|
|
|
@ -219,7 +219,7 @@ internal class SecretStoringUtils @Inject constructor(private val context: Conte
|
||||||
|
|
||||||
@RequiresApi(Build.VERSION_CODES.M)
|
@RequiresApi(Build.VERSION_CODES.M)
|
||||||
private fun decryptStringM(encryptedChunk: ByteArray, keyAlias: String): String {
|
private fun decryptStringM(encryptedChunk: ByteArray, keyAlias: String): String {
|
||||||
val (iv, encryptedText) = formatMExtract(ByteArrayInputStream(encryptedChunk))
|
val (iv, encryptedText) = formatMExtract(encryptedChunk.inputStream())
|
||||||
|
|
||||||
val secretKey = getOrGenerateSymmetricKeyForAliasM(keyAlias)
|
val secretKey = getOrGenerateSymmetricKeyForAliasM(keyAlias)
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@ package org.matrix.android.sdk.internal.util
|
||||||
|
|
||||||
import androidx.annotation.WorkerThread
|
import androidx.annotation.WorkerThread
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,7 +26,7 @@ import java.io.InputStream
|
||||||
*/
|
*/
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
fun writeToFile(inputStream: InputStream, outputFile: File) {
|
fun writeToFile(inputStream: InputStream, outputFile: File) {
|
||||||
FileOutputStream(outputFile).use {
|
outputFile.outputStream().use {
|
||||||
inputStream.copyTo(it)
|
inputStream.copyTo(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,6 @@ import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileInputStream
|
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
|
@ -97,7 +96,7 @@ class VectorGlideDataFetcher(private val activeSessionHolder: ActiveSessionHolde
|
||||||
Timber.v("Load data: $data")
|
Timber.v("Load data: $data")
|
||||||
if (data.isLocalFile() && data.url != null) {
|
if (data.isLocalFile() && data.url != null) {
|
||||||
val initialFile = File(data.url)
|
val initialFile = File(data.url)
|
||||||
callback.onDataReady(FileInputStream(initialFile))
|
callback.onDataReady(initialFile.inputStream())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val contentUrlResolver = activeSessionHolder.getActiveSession().contentUrlResolver()
|
val contentUrlResolver = activeSessionHolder.getActiveSession().contentUrlResolver()
|
||||||
|
|
|
@ -518,8 +518,8 @@ fun saveFileIntoLegacy(sourceFile: File, dstDirPath: File, outputFilename: Strin
|
||||||
var outputStream: FileOutputStream? = null
|
var outputStream: FileOutputStream? = null
|
||||||
try {
|
try {
|
||||||
dstFile.createNewFile()
|
dstFile.createNewFile()
|
||||||
inputStream = FileInputStream(sourceFile)
|
inputStream = sourceFile.inputStream()
|
||||||
outputStream = FileOutputStream(dstFile)
|
outputStream = dstFile.outputStream()
|
||||||
val buffer = ByteArray(1024 * 10)
|
val buffer = ByteArray(1024 * 10)
|
||||||
var len: Int
|
var len: Int
|
||||||
while (inputStream.read(buffer).also { len = it } != -1) {
|
while (inputStream.read(buffer).also { len = it } != -1) {
|
||||||
|
|
|
@ -32,7 +32,6 @@ import org.matrix.android.sdk.api.session.content.ContentUrlResolver
|
||||||
import me.gujun.android.span.span
|
import me.gujun.android.span.span
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileInputStream
|
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
@ -494,7 +493,7 @@ class NotificationDrawerManager @Inject constructor(private val context: Context
|
||||||
try {
|
try {
|
||||||
val file = File(context.applicationContext.cacheDir, ROOMS_NOTIFICATIONS_FILE_NAME)
|
val file = File(context.applicationContext.cacheDir, ROOMS_NOTIFICATIONS_FILE_NAME)
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
FileInputStream(file).use {
|
file.inputStream().use {
|
||||||
val events: ArrayList<NotifiableEvent>? = currentSession?.loadSecureSecret(it, KEY_ALIAS_SECRET_STORAGE)
|
val events: ArrayList<NotifiableEvent>? = currentSession?.loadSecureSecret(it, KEY_ALIAS_SECRET_STORAGE)
|
||||||
if (events != null) {
|
if (events != null) {
|
||||||
return events.toMutableList()
|
return events.toMutableList()
|
||||||
|
|
Loading…
Reference in a new issue