diff options
| author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-11-15 13:38:14 +0100 | 
|---|---|---|
| committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-11-15 13:38:14 +0100 | 
| commit | 110d3aa04dc4b6872e5d8892a6625e2660d8ab7f (patch) | |
| tree | 398e2036eb2743bea082c3129c12cb6606d8f07a /Client | |
| parent | 71474d5ea285b1e42da23bfe70bc4108d71fa902 (diff) | |
Povezano uplodovanje objave slikanjem sa kamerom.
Diffstat (limited to 'Client')
| -rw-r--r-- | Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt | 122 | 
1 files changed, 112 insertions, 10 deletions
| diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt index 312dc77..e2dbb7c 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt @@ -1,14 +1,12 @@  package com.example.brzodolokacije.Activities  import android.Manifest -import android.app.Activity  import android.content.Intent  import android.content.pm.PackageManager  import android.graphics.Bitmap  import android.graphics.Color  import android.net.Uri  import android.os.Bundle -import android.os.Environment  import android.provider.MediaStore  import android.util.Log  import android.view.View @@ -16,17 +14,26 @@ import android.widget.Button  import android.widget.EditText  import android.widget.ImageView  import android.widget.Toast -import androidx.activity.result.ActivityResultLauncher  import androidx.activity.result.contract.ActivityResultContracts  import androidx.appcompat.app.AppCompatActivity  import androidx.core.app.ActivityCompat  import androidx.core.content.ContextCompat -import androidx.core.content.FileProvider  import androidx.core.view.isVisible +import com.example.brzodolokacije.Models.Location +import com.example.brzodolokacije.Models.LocationType +import com.example.brzodolokacije.Models.PostPreview  import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper +import okhttp3.MediaType.Companion.toMediaTypeOrNull +import okhttp3.MultipartBody +import okhttp3.RequestBody +import retrofit2.Call +import retrofit2.Response +import java.io.ByteArrayInputStream +import java.io.ByteArrayOutputStream  import java.io.File -import java.text.SimpleDateFormat -import java.util.* +import java.io.InputStream  class ActivityCapturePost : AppCompatActivity() { @@ -38,12 +45,11 @@ class ActivityCapturePost : AppCompatActivity() {      private lateinit var descriptionString: String      private lateinit var post: Button      private lateinit var showImage: ImageView -    private var uploadedImages: ArrayList<Uri?>? = null +    private var uploadedImages: Uri? = null      override fun onCreate(savedInstanceState: Bundle?) {          super.onCreate(savedInstanceState)          setContentView(R.layout.activity_capture_post) -          location = findViewById<View>(R.id.etActivityCapturePostLocation) as EditText          description = findViewById<View>(R.id.etActivityCapturePostDescription) as EditText          post = findViewById<View>(R.id.btnActivityCapturePostPost) as Button @@ -126,27 +132,123 @@ class ActivityCapturePost : AppCompatActivity() {              if (locationString.isEmpty()) {                  location.hint = "Unesite lokaciju"                  location.setHintTextColor(Color.RED) -            } +            }else              if (descriptionString.isEmpty()) { -                description.hint = "Unesite lokaciju" +                description.hint = "Unesite opis"                  description.setHintTextColor(Color.RED) +            }else if(f!=null){ +                    uploadLocation()              } +          }      } + +    var f:File?=null          private val cameraActivityResultLauncher =          registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->              if (result.resultCode === RESULT_OK && result.data != null) {                  val bundle = result.data!!.extras                  val bitmap = bundle!!["data"] as Bitmap? +                val outputStream = ByteArrayOutputStream() +                bitmap!!.compress(Bitmap.CompressFormat.PNG,100,outputStream) +                val bitmapdata = outputStream.toByteArray() +                val inputstream: InputStream = ByteArrayInputStream(bitmapdata) +                f=File.createTempFile("temp","12345") +                f!!.writeBytes(inputstream!!.readBytes()) + + +                  showImage.setImageBitmap(bitmap)                  takePhoto.isVisible=false              }          } +    fun uploadLocation() { +        val api = RetrofitHelper.getInstance() +        var loc: Location = Location("",locationString,"","","",0.0,0.0, LocationType.GRAD) +        var jwtString= SharedPreferencesHelper.getValue("jwt",this) +        var data=api.addLocation("Bearer "+jwtString,loc) + + +        data.enqueue(object : retrofit2.Callback<Location?> { +            override fun onResponse(call: Call<Location?>, response: Response<Location?>) { +                if(response.isSuccessful()){ +                    Toast.makeText( +                        applicationContext, "USPEH", Toast.LENGTH_LONG +                    ).show(); +                    uploadPost(response.body()!!._id) +                    Log.d("MAIN","RADI") +                    Log.d("MAIN","RADI") + +                }else { + +                    if (response.errorBody() != null) { +                        Log.d("Main",response.errorBody()!!.string()) +                    } +                    Log.d("Main",response.message()) +                } + + +            } + +            override fun onFailure(call: Call<Location?>, t: Throwable) { +                Log.d("Main",t.toString()) +            } +        }) +    } +    fun uploadPost(loc:String){ +        val api = RetrofitHelper.getInstance() +        var desc=descriptionString +        description.text.clear() +        //loc +        //desc +        var locReq= RequestBody.create("text/plain".toMediaTypeOrNull(),loc) +        var descReq= RequestBody.create("text/plain".toMediaTypeOrNull(),desc) +        var idReq= RequestBody.create("text/plain".toMediaTypeOrNull(),"dsa") +        val imagesParts = arrayOfNulls<MultipartBody.Part>( +            1 +        ) + +            var imageBody= RequestBody.create("image/*".toMediaTypeOrNull(),f!!) +            imagesParts[0]= MultipartBody.Part.createFormData("images",f!!.name,imageBody) + +        var jwtString= SharedPreferencesHelper.getValue("jwt",this) +        var data=api.addPost("Bearer "+jwtString,imagesParts,idReq,descReq,locReq) + + +        data.enqueue(object : retrofit2.Callback<PostPreview?> { +            override fun onResponse(call: Call<PostPreview?>, response: Response<PostPreview?>) { +                if(response.isSuccessful()){ +                    Toast.makeText( +                        applicationContext, "USPEH", Toast.LENGTH_LONG +                    ).show(); +                }else { + +                    if (response.errorBody() != null) { +                        Toast.makeText( +                            applicationContext, +                            response.errorBody()!!.string(), +                            Toast.LENGTH_LONG +                        ).show(); +                        Log.d("Main",response.errorBody()!!.string()) +                    } +                } + + +            } + +            override fun onFailure(call: Call<PostPreview?>, t: Throwable) { +                Toast.makeText( +                    applicationContext, t.toString(), Toast.LENGTH_LONG +                ).show(); +                Log.d("Main",t.toString()) +            } +        }) +    }      } | 
