Skip to content

Commit 47223ab

Browse files
committed
lint
다운로드 방식 변경
1 parent 58bedea commit 47223ab

File tree

1 file changed

+26
-27
lines changed

1 file changed

+26
-27
lines changed

app/src/main/java/com/wafflestudio/siksha2/ui/menuDetail/LeaveReviewFragment.kt

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.wafflestudio.siksha2.ui.menuDetail
22

33
import android.Manifest
44
import android.app.Activity.RESULT_OK
5+
import android.content.Context
56
import android.content.Intent
67
import android.content.pm.PackageManager
78
import android.net.Uri
@@ -17,7 +18,6 @@ import androidx.activity.result.PickVisualMediaRequest
1718
import androidx.activity.result.contract.ActivityResultContracts
1819
import androidx.compose.ui.unit.dp
1920
import androidx.core.content.ContextCompat
20-
import androidx.core.content.FileProvider
2121
import androidx.core.view.forEachIndexed
2222
import androidx.core.widget.addTextChangedListener
2323
import androidx.fragment.app.Fragment
@@ -38,7 +38,6 @@ import kotlinx.coroutines.withContext
3838
import java.io.File
3939
import java.net.HttpURLConnection
4040
import java.net.URL
41-
import java.util.UUID
4241

4342
class LeaveReviewFragment : Fragment() {
4443
private lateinit var binding: FragmentLeaveReviewBinding
@@ -117,9 +116,10 @@ class LeaveReviewFragment : Fragment() {
117116
review.etc?.images?.let { urls ->
118117
lifecycleScope.launch {
119118
urls.forEach { url: String ->
120-
val uri: Uri? = downloadToUri(url)
121-
uri?.let { realUri ->
122-
vm.addImageUri(realUri, onFailure = {})
119+
val file = downloadImageToFile(requireContext(), url)
120+
file?.let {
121+
val uri = Uri.fromFile(it)
122+
vm.addImageUri(uri, onFailure = {})
123123
}
124124
}
125125
}
@@ -226,32 +226,31 @@ class LeaveReviewFragment : Fragment() {
226226
}
227227
}
228228

229-
private suspend fun downloadToUri(url: String): Uri? =
230-
withContext(Dispatchers.IO) {
231-
try {
232-
val connection = URL(url).openConnection() as HttpURLConnection
233-
connection.connect()
229+
suspend fun downloadImageToFile(
230+
context: Context,
231+
imageUrl: String
232+
): File? = withContext(Dispatchers.IO) {
233+
return@withContext try {
234+
val url = URL(imageUrl)
235+
val connection = url.openConnection() as HttpURLConnection
236+
connection.connect()
237+
238+
if (connection.responseCode != HttpURLConnection.HTTP_OK) {
239+
return@withContext null
240+
}
234241

235-
val input = connection.inputStream
236-
val file = File(
237-
requireContext().cacheDir,
238-
UUID.randomUUID().toString() + ".jpg"
239-
)
242+
val input = connection.inputStream
243+
val tempFile = File.createTempFile("review_img_", ".jpg", context.cacheDir)
240244

241-
file.outputStream().use { output ->
242-
input.copyTo(output)
243-
}
244-
245-
FileProvider.getUriForFile(
246-
requireContext(),
247-
"${requireContext().packageName}.provider",
248-
file
249-
)
250-
} catch (e: Exception) {
251-
null
245+
tempFile.outputStream().use { output ->
246+
input.copyTo(output)
252247
}
253-
}
254248

249+
tempFile
250+
} catch (e: Exception) {
251+
null
252+
}
253+
}
255254

256255
private fun requestPermission(onGranted: () -> Unit) {
257256
if (Build.VERSION.SDK_INT >= 33) {

0 commit comments

Comments
 (0)