Advertisement
Guest User

p

a guest
Sep 14th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.79 KB | None | 0 0
  1. package com.example.firebasestorageexample
  2.  
  3. import android.app.Activity
  4. import android.content.Intent
  5. import android.net.Uri
  6. import androidx.appcompat.app.AppCompatActivity
  7. import android.os.Bundle
  8. import android.provider.MediaStore
  9. import com.google.android.gms.tasks.Continuation
  10. import com.google.android.gms.tasks.Task
  11. import com.google.firebase.storage.FirebaseStorage
  12. import com.google.firebase.storage.StorageReference
  13. import com.google.firebase.storage.UploadTask
  14. import kotlinx.android.synthetic.main.activity_main.*
  15. import java.io.IOException
  16. import java.util.*
  17.  
  18. class MainActivity : AppCompatActivity() {
  19.  
  20.     private val PICK_IMAGE_REQUEST = 71
  21.     private var filePath: Uri? = null
  22.     private var FirebaseStorage: FirebaseStorage? = null
  23.     private var storageReference: StorageReference? = null
  24.  
  25.     override fun onCreate(savedInstanceState: Bundle?) {
  26.         super.onCreate(savedInstanceState)
  27.         setContentView(R.layout.activity_main)
  28.  
  29.         btn_chose_img.setOnClickListener{ launchGallery() }
  30.         btn_upload_img.setOnClickListener{ uploadImage() }
  31.     }
  32.  
  33.     private fun launchGallery(){
  34.         val i = Intent()
  35.         i.type = "image/*"
  36.         i.action = Intent.ACTION_GET_CONTENT
  37.         startActivityForResult(Intent.createChooser(i, "Select Picture"), PICK_IMAGE_REQUEST)
  38.     }
  39.  
  40.     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
  41.         super.onActivityResult(requestCode, resultCode, data)
  42.         if (requestCode == PICK_IMAGE_REQUEST && resultCode == Activity.RESULT_OK){
  43.             if (data == null || data.data == null){
  44.                 return
  45.             }
  46.             filePath = data.data
  47.             try {
  48.                 val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, filePath)
  49.                 img_preview.setImageBitmap(bitmap)
  50.             }catch (e : IOException){
  51.                 e.printStackTrace()
  52.             }
  53.         }
  54.     }
  55.  
  56.     private fun uploadImage(){
  57.         if (filePath != null){
  58.             val ref = storageReference?.child("Uploads/" + UUID.randomUUID().toString())
  59.             val uploadTask = ref?.putFile(filePath!!)
  60.  
  61.             val urlTask = uploadTask?.continueWithTask(Continuation<UploadTask.TaskSnapshot, Task<Uri>>{
  62.                 if (!it.isSuccessful) {
  63.                     it.exception?.let { throw it}
  64.                 }
  65.                 return@Continuation ref.downloadUrl
  66.             })?.addOnCompleteListener{
  67.                 if (it.isSuccessful) {
  68.                     val downloadUri = it.result
  69.                     addUploadRecordToDb (downloadUri.toString())
  70.                 }else {
  71.  
  72.                 }
  73.             }?.addOnFailureListener{
  74.  
  75.             }
  76.         }
  77.     }
  78.  
  79.     private fun addUploadRecordToDb(uri: String) {
  80.        
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement