aboutsummaryrefslogtreecommitdiff
path: root/Client
diff options
context:
space:
mode:
Diffstat (limited to 'Client')
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt83
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml43
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml1
4 files changed, 101 insertions, 28 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 79062c9..062a505 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
@@ -18,6 +18,7 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
+import androidx.core.net.toUri
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.core.view.setMargins
@@ -28,6 +29,7 @@ import com.example.brzodolokacije.R
import com.example.brzodolokacije.Services.GeocoderHelper
import com.example.brzodolokacije.Services.RetrofitHelper
import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import com.google.android.material.button.MaterialButton
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody
import okhttp3.RequestBody
@@ -37,6 +39,8 @@ import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.InputStream
+import java.util.*
+import kotlin.collections.ArrayList
class ActivityCapturePost : AppCompatActivity() {
@@ -51,12 +55,14 @@ class ActivityCapturePost : AppCompatActivity() {
private lateinit var tagButtons:MutableList<Button>
private lateinit var tagText: EditText
private lateinit var tagButtonAdd:Button
+ private lateinit var addImage:MaterialButton
private lateinit var tagList: MutableList<String>
private var tagidcounter:Int = 0
private lateinit var addDescription:Button
private lateinit var locText: EditText
-
-
+ private lateinit var showNextImage:Button
+ private lateinit var showPreviousImage:Button
+ private var place=0;
val LOCATIONREQCODE=123
var locationId:String?=null
@@ -77,7 +83,9 @@ class ActivityCapturePost : AppCompatActivity() {
tagText =findViewById<View>(R.id.acTagsCap) as EditText
tagButtonAdd = findViewById<View>(R.id.btnActivityAddPostAddTagCap) as Button
tagLayout = findViewById<View>(R.id.llTagsCap) as LinearLayout
-
+ addImage=findViewById<View>(R.id.btnActivityCapturePostCaptureVisible1) as MaterialButton
+ showNextImage=findViewById<View>(R.id.nextImage) as Button
+ showPreviousImage=findViewById<View>(R.id.previousImage) as Button
addDescription=findViewById<View>(R.id.tvActivityCapturePostDescriptiontext)as Button
locText=findViewById<View>(R.id.etActivityAddPostLocationText) as EditText
@@ -110,6 +118,28 @@ class ActivityCapturePost : AppCompatActivity() {
}
false
})
+ showPreviousImage.setOnClickListener{
+ if(fileList!=null && fileList!!.size>0)
+ if(place>0){
+ place=place-1
+ showImage.setImageURI(fileList!![place].toUri())
+ showNextImage.isEnabled=true
+ }
+ else{
+ showPreviousImage.isEnabled=false
+ }
+ }
+ showNextImage.setOnClickListener{
+ if(fileList!=null && fileList!!.size>0)
+ if(place<fileList!!.size-1){
+ place=place+1
+ showImage.setImageURI(fileList!![place].toUri())
+ showPreviousImage.isEnabled=true
+ }
+ else{
+ showNextImage.isEnabled=false
+ }
+ }
//dodavanje sa kamere
@@ -168,23 +198,11 @@ class ActivityCapturePost : AppCompatActivity() {
val APP_TAG = "BrzoDoLokacije"
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
- /* val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
- //val storageDir: File? = getExternalFilesDir(Environment.DIRECTORY_PICTURES)
- //val photo= File(storageDir,"JPEG_${timeStamp}.jpg")
-
- val mediaStorageDir = File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), APP_TAG)
- if (!mediaStorageDir.exists() && !mediaStorageDir.mkdirs()) {
- Log.d(APP_TAG, "failed to create directory")
- }
- var photoFile = File(mediaStorageDir.path + File.separator + "${APP_TAG}_${timeStamp}.jpg")
-
- if (photoFile != null) {
- val fileProvider: Uri =
- FileProvider.getUriForFile(this, "com.codepath.fileprovider", photoFile!!)
- intent.putExtra(MediaStore.EXTRA_OUTPUT, fileProvider)
- }
-
-*/
+ cameraActivityResultLauncher.launch(takePictureIntent)
+ }
+ addImage.setOnClickListener {
+ val APP_TAG = "BrzoDoLokacije"
+ val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
cameraActivityResultLauncher.launch(takePictureIntent)
}
@@ -251,6 +269,7 @@ class ActivityCapturePost : AppCompatActivity() {
locText.setText(name,TextView.BufferType.EDITABLE)
}
}
+ var fileList:ArrayList<File>?=null
var f:File?=null
private val cameraActivityResultLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
@@ -261,13 +280,21 @@ class ActivityCapturePost : AppCompatActivity() {
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())
-
+ if(fileList==null)
+ fileList=ArrayList<File>()
+ var r= Random().nextInt(100000)
+ f=File.createTempFile("temp","12345"+r.toString())
+ f!!.writeBytes(inputstream!!.readBytes())
+ fileList!!.add(f!!)
showImage.setImageBitmap(bitmap)
+
takePhoto.isVisible=false
+ if(!addImage.isVisible)
+ addImage.isVisible=true
+ place=fileList!!.size-1
+
}
@@ -296,11 +323,15 @@ class ActivityCapturePost : AppCompatActivity() {
var tagReq=RequestBody.create("text/plain".toMediaTypeOrNull(),tagliststring)
val imagesParts = arrayOfNulls<MultipartBody.Part>(
- 1
+ fileList!!.size
)
- var imageBody= RequestBody.create("image/*".toMediaTypeOrNull(),f!!)
- imagesParts[0]= MultipartBody.Part.createFormData("images",f!!.name,imageBody)
+
+ for (i in 0 until fileList!!.size) {
+ var imageBody= RequestBody.create("image/*".toMediaTypeOrNull(),fileList!![i])
+ imagesParts[i]= MultipartBody.Part.createFormData("images",fileList!![i].name,imageBody)
+
+ }
var jwtString= SharedPreferencesHelper.getValue("jwt",this)
var data=api.addPost("Bearer "+jwtString,imagesParts,idReq,descReq,locReq,tagReq)
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt
index df307dc..042e596 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt
@@ -53,7 +53,7 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener {
private var swipeRefreshLayout:SwipeRefreshLayout?=null
private lateinit var searchButton: MaterialButton
private lateinit var searchPostsViewModel:SearchPostsViewModel
- private var searchParams:SearchParams?= SearchParams("Kragujevac",1,1)
+ private var searchParams:SearchParams?= SearchParams("-1",1,1)
private lateinit var btnFilter:ImageButton
private lateinit var btnSort:ImageButton
private lateinit var searchBar: AutoCompleteTextView
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml
index cb2c8dc..86d7a3f 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml
@@ -22,6 +22,49 @@
tools:srcCompat="@tools:sample/avatars" />
<Button
+ android:id="@+id/nextImage"
+ android:layout_width="78dp"
+ android:layout_height="0dp"
+ android:background="@drawable/rounded_transparent_button"
+ android:gravity="right"
+ android:padding="30dp"
+ app:icon="@drawable/ic_baseline_arrow_forward"
+ app:iconTint="#072242"
+ app:layout_constraintBottom_toTopOf="@+id/btnActivityCapturePostCapture"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:ignore="SpeakableTextPresentCheck" />
+
+ <Button
+ android:id="@+id/previousImage"
+ android:layout_width="70dp"
+ android:layout_height="0dp"
+ android:background="@drawable/rounded_transparent_button"
+ android:gravity="left"
+ android:padding="30dp"
+ app:icon="@drawable/ic_baseline_arrow_back"
+ app:iconTint="#0E283C"
+ app:layout_constraintBottom_toTopOf="@+id/btnActivityCapturePostCapture"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:ignore="SpeakableTextPresentCheck" />
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/btnActivityCapturePostCaptureVisible1"
+ android:layout_width="50dp"
+ android:layout_height="wrap_content"
+ android:stateListAnimator="@null"
+ android:layout_margin="5dp"
+ android:elevation="10dp"
+ app:backgroundTint="#00FFFFFF"
+ app:icon="@drawable/ic_baseline_add_a_photo_24"
+ app:iconGravity="textEnd"
+ app:iconSize="40dp"
+ app:iconTint="#1C7696"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ android:visibility="invisible"/>
+
+ <Button
android:id="@+id/btnActivityCapturePostCapture"
android:layout_width="68dp"
android:layout_height="15dp"
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml
index 7471321..3aa56f9 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/post_item_home_page.xml
@@ -69,7 +69,6 @@
android:layout_marginTop="3dp"
android:layout_marginEnd="4dp"
- android:drawableLeft="star"
android:elevation="3dp"
android:text="TextView"
android:textSize="11dp"