diff --git a/node_modules/expo-file-system/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt b/node_modules/expo-file-system/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt
index 53bf40f..0ba5d89 100644
--- a/node_modules/expo-file-system/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt
+++ b/node_modules/expo-file-system/android/src/main/java/expo/modules/filesystem/FileSystemModule.kt
@@ -56,6 +56,7 @@ import okhttp3.Callback
 import okhttp3.Headers
 import okhttp3.JavaNetCookieJar
 import okhttp3.MediaType
+import okhttp3.MediaType.Companion.toMediaTypeOrNull
 import okhttp3.MultipartBody
 import okhttp3.OkHttpClient
 import okhttp3.Request
@@ -63,11 +64,7 @@ import okhttp3.RequestBody
 import okhttp3.Response
 import okhttp3.ResponseBody
 
-import okio.Buffer
-import okio.BufferedSource
-import okio.ForwardingSource
-import okio.Okio
-import okio.Source
+import okio.*
 
 import org.apache.commons.codec.binary.Hex
 import org.apache.commons.codec.digest.DigestUtils
@@ -766,7 +763,7 @@ open class FileSystemModule(
       }
 
       val body = createRequestBody(options, decorator, fileUri.toFile())
-      return requestBuilder.method(method, body).build()
+      return method?.let { requestBuilder.method(it, body).build() }
     } catch (e: Exception) {
       e.message?.let { Log.e(TAG, it) }
       promise.reject(e)
@@ -791,7 +788,7 @@ open class FileSystemModule(
         } ?: URLConnection.guessContentTypeFromName(file.name)
 
         val fieldName = options["fieldName"]?.let { it as String } ?: file.name
-        bodyBuilder.addFormDataPart(fieldName, file.name, decorator.decorate(RequestBody.create(MediaType.parse(mimeType), file)))
+        bodyBuilder.addFormDataPart(fieldName, file.name, decorator.decorate(RequestBody.create(mimeType.toMediaTypeOrNull(), file)))
         bodyBuilder.build()
       }
       else -> {
@@ -816,9 +813,9 @@ open class FileSystemModule(
 
         override fun onResponse(call: Call, response: Response) {
           val result = Bundle().apply {
-            putString("body", response.body()?.string())
-            putInt("status", response.code())
-            putBundle("headers", translateHeaders(response.headers()))
+            putString("body", response.body?.string())
+            putInt("status", response.code)
+            putBundle("headers", translateHeaders(response.headers))
           }
           response.close()
           promise.resolve(result)
@@ -866,7 +863,7 @@ open class FileSystemModule(
     taskHandlers[uuid] = TaskHandler(call)
     call.enqueue(object : Callback {
       override fun onFailure(call: Call, e: IOException) {
-        if (call.isCanceled) {
+        if (call.isCanceled()) {
           promise.resolve(null)
           return
         }
@@ -876,11 +873,11 @@ open class FileSystemModule(
 
       override fun onResponse(call: Call, response: Response) {
         val result = Bundle()
-        val body = response.body()
+        val body = response.body
         result.apply {
           putString("body", body?.string())
-          putInt("status", response.code())
-          putBundle("headers", translateHeaders(response.headers()))
+          putInt("status", response.code)
+          putBundle("headers", translateHeaders(response.headers))
         }
         response.close()
         promise.resolve(result)
@@ -900,10 +897,10 @@ open class FileSystemModule(
           val resources = context.resources
           val packageName = context.packageName
           val resourceId = resources.getIdentifier(url, "raw", packageName)
-          val bufferedSource = Okio.buffer(Okio.source(context.resources.openRawResource(resourceId)))
+          val bufferedSource = context.resources.openRawResource(resourceId).source().buffer()
           val file = uri.toFile()
           file.delete()
-          val sink = Okio.buffer(Okio.sink(file))
+          val sink = file.sink().buffer()
           sink.writeAll(bufferedSource)
           sink.close()
           val result = Bundle()
@@ -934,13 +931,13 @@ open class FileSystemModule(
             override fun onResponse(call: Call, response: Response) {
               val file = uri.toFile()
               file.delete()
-              val sink = Okio.buffer(Okio.sink(file))
-              sink.writeAll(response.body()!!.source())
+              val sink = file.sink().buffer()
+              sink.writeAll(response.body!!.source())
               sink.close()
               val result = Bundle().apply {
                 putString("uri", Uri.fromFile(file).toString())
-                putInt("status", response.code())
-                putBundle("headers", translateHeaders(response.headers()))
+                putInt("status", response.code)
+                putBundle("headers", translateHeaders(response.headers))
                 if (options?.get("md5") == true) {
                   putString("md5", md5(file))
                 }
@@ -1003,7 +1000,7 @@ open class FileSystemModule(
         ?.addNetworkInterceptor { chain ->
           val originalResponse = chain.proceed(chain.request())
           originalResponse.newBuilder()
-            .body(ProgressResponseBody(originalResponse.body(), progressListener))
+            .body(ProgressResponseBody(originalResponse.body, progressListener))
             .build()
         }
         ?.build()
@@ -1098,7 +1095,7 @@ open class FileSystemModule(
       val options = params[0]?.options
       return try {
         val response = call!!.execute()
-        val responseBody = response.body()
+        val responseBody = response.body
         val input = BufferedInputStream(responseBody!!.byteStream())
         val output = FileOutputStream(file, isResume == true)
         val data = ByteArray(1024)
@@ -1108,15 +1105,15 @@ open class FileSystemModule(
         }
         val result = Bundle().apply {
           putString("uri", Uri.fromFile(file).toString())
-          putInt("status", response.code())
-          putBundle("headers", translateHeaders(response.headers()))
+          putInt("status", response.code)
+          putBundle("headers", translateHeaders(response.headers))
           options?.get("md5").takeIf { it == true }?.let { putString("md5", file?.let { md5(it) }) }
         }
         response.close()
         promise?.resolve(result)
         null
       } catch (e: Exception) {
-        if (call?.isCanceled == true) {
+        if (call?.isCanceled() == true) {
           promise?.resolve(null)
           return null
         }
@@ -1139,7 +1136,7 @@ open class FileSystemModule(
     override fun contentLength(): Long = responseBody?.contentLength() ?: -1
 
     override fun source(): BufferedSource =
-      bufferedSource ?: Okio.buffer(source(responseBody!!.source()))
+      bufferedSource ?: source(responseBody!!.source()).buffer()
 
     private fun source(source: Source): Source {
       return object : ForwardingSource(source) {
@@ -1304,7 +1301,7 @@ open class FileSystemModule(
   // Copied out of React Native's `NetworkingModule.java`
   private fun translateHeaders(headers: Headers): Bundle {
     val responseHeaders = Bundle()
-    for (i in 0 until headers.size()) {
+    for (i in 0 until headers.size) {
       val headerName = headers.name(i)
       // multiple values for the same header
       if (responseHeaders[headerName] != null) {