diff options
11 files changed, 444 insertions, 35 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index 870fa98..886666d 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -3,6 +3,10 @@ xmlns:tools="http://schemas.android.com/tools"> <uses-permission android:name="android.permission.INTERNET" /> + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.CAMERA" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> + <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <application android:allowBackup="true" @@ -16,7 +20,14 @@ android:usesCleartextTraffic="true" tools:targetApi="31"> <activity - android:name=".ActivityAddPost" + android:name=".ActivitySinglePost" + android:exported="false"> + <meta-data + android:name="android.app.lib_name" + android:value="" /> + </activity> + <activity + android:name=".Activities.ActivityAddPost" android:exported="false"> <meta-data android:name="android.app.lib_name" diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt new file mode 100644 index 0000000..0ada26a --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt @@ -0,0 +1,83 @@ +package com.example.brzodolokacije.Activities + +import android.Manifest +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.view.View +import android.widget.Button +import android.widget.ImageView +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import com.example.brzodolokacije.Models.PostImage +import com.example.brzodolokacije.R +import java.net.URI + + +class ActivityAddPost : AppCompatActivity() { + private lateinit var uploadFromGallery: Button + private lateinit var takePhoto: Button + private lateinit var image:ImageView + private lateinit var uploadedImages:ArrayList<Uri> + + var paths = mutableListOf<String>() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_add_post) + + uploadFromGallery=findViewById<View>(R.id.btnActivityAddPostUploadImages) as Button + takePhoto=findViewById<View>(R.id.btnActivityAddPosTakeImage) as Button + image=findViewById<View>(R.id.image) as ImageView + + //dodavanje iz galerije + uploadFromGallery.setOnClickListener{ + + //provera da li je odobrena upotreba galerije + if(ContextCompat.checkSelfPermission(this@ActivityAddPost, Manifest.permission.READ_EXTERNAL_STORAGE)!=PackageManager.PERMISSION_GRANTED){ + ActivityCompat.requestPermissions(this@ActivityAddPost, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),101) + } + + //otvaranje galerije + val intent= Intent(Intent.ACTION_PICK) + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) + intent.action = Intent.ACTION_GET_CONTENT + intent.type="image/*" + startActivityForResult(Intent.createChooser(intent,"Izaberi fotografije"),100) + } + + //fotografisanje + takePhoto.setOnClickListener { + //provera da li je odobrena upotreba kamere + if(ContextCompat.checkSelfPermission(this@ActivityAddPost, Manifest.permission.CAMERA)!=PackageManager.PERMISSION_GRANTED){ + ActivityCompat.requestPermissions(this@ActivityAddPost, arrayOf(Manifest.permission.CAMERA),200) + } + } + + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + //nakon otvaranja + if(requestCode==100 && resultCode== RESULT_OK){ + //samo jedna slika + //image.setImageURI(data?.data) + + //veci broj slika + if (data!!.getClipData() != null) { + var count = data!!.clipData!!.itemCount + + for (i in 0..count - 1) { + var _uri: Uri = data!!.clipData!!.getItemAt(i).uri + uploadedImages!!.add(_uri) + } + //jedna slika + } else if (data?.getData() != null) { + uploadedImages.add(data.data!!) + } + } + } + +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt new file mode 100644 index 0000000..137277f --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt @@ -0,0 +1,41 @@ +package com.example.brzodolokacije.Activities + +import android.content.Context +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Adapters.PostImageAdapter +import com.example.brzodolokacije.R +import com.example.brzodolokacije.databinding.ActivitySinglePostBinding + +class ActivitySinglePost : AppCompatActivity() { + private lateinit var binding: ActivitySinglePostBinding + private var images : MutableList<java.io.File> = mutableListOf() + private var layoutManagerVar: RecyclerView.LayoutManager? = null + private var adapterVar: RecyclerView.Adapter<PostImageAdapter.ViewHolder>? = null + private var recyclerView: RecyclerView?=null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_single_post) + //load data for the list + loadData() + //instantiate adapter and linearLayout + adapterVar= PostImageAdapter(images) + layoutManagerVar= LinearLayoutManager(this) + recyclerView = binding.rvMain + // set recyclerView attributes + recyclerView?.setHasFixedSize(true) + recyclerView?.layoutManager = layoutManagerVar + recyclerView?.adapter = adapterVar + } + + private fun loadData() { + } + +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt new file mode 100644 index 0000000..b2eaa30 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt @@ -0,0 +1,34 @@ +package com.example.brzodolokacije.Adapters + +import android.graphics.BitmapFactory +import android.media.Image +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Models.Post +import com.example.brzodolokacije.databinding.PostImageBinding +import com.example.brzodolokacije.databinding.PostPreviewBinding + +class PostImageAdapter(val items : MutableList<java.io.File>) + : RecyclerView.Adapter<PostImageAdapter.ViewHolder>(){ + //constructer has one argument - list of objects that need to be displayed + //it is bound to xml of single item + private lateinit var binding: PostImageBinding + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val inflater = LayoutInflater.from(parent.context) + binding= PostImageBinding.inflate(inflater,parent,false) + return ViewHolder(binding) + } + override fun onBindViewHolder(holder: ViewHolder, position: Int){ + //sets components of particular item + holder.bind(items[position]) + } + override fun getItemCount() = items.size + inner class ViewHolder(itemView : PostImageBinding) : RecyclerView.ViewHolder(itemView.root){ + fun bind(item : java.io.File){ + binding.apply { + locationImage.setImageBitmap(BitmapFactory.decodeStream(item.inputStream())) + } + } + } +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt index c8a0b77..9da0014 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt @@ -1,34 +1,43 @@ package com.example.brzodolokacije.Adapters +import android.app.Activity +import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup +import android.widget.Toast import androidx.recyclerview.widget.RecyclerView -import com.example.brzodolokacije.Models.ListItemModel -import com.example.brzodolokacije.Models.Post -import com.example.brzodolokacije.databinding.ListItemBinding +import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.databinding.PostPreviewBinding -class ShowPostsAdapter (val items : MutableList<Post>) - : RecyclerView.Adapter<ShowPostsAdapter.ViewHolder>(){ +class ShowPostsAdapter (val activity:Activity,val items : MutableList<PostPreview>) + : RecyclerView.Adapter<ShowPostsAdapter.ViewHolder>() { //constructer has one argument - list of objects that need to be displayed //it is bound to xml of single item private lateinit var binding: PostPreviewBinding override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val inflater = LayoutInflater.from(parent.context) - binding=PostPreviewBinding.inflate(inflater,parent,false) + binding = PostPreviewBinding.inflate(inflater, parent, false) return ViewHolder(binding) } - override fun onBindViewHolder(holder: ViewHolder, position: Int){ + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { //sets components of particular item holder.bind(items[position]) } + + override fun getItemCount() = items.size - inner class ViewHolder(itemView : PostPreviewBinding) : RecyclerView.ViewHolder(itemView.root){ - fun bind(item : Post){ + inner class ViewHolder(itemView: PostPreviewBinding) : RecyclerView.ViewHolder(itemView.root) { + fun bind(item: PostPreview) { binding.apply { - tvTitle.text=item.location.name - tvLocationParent.text=item.location.country - tvLocationType.text=item.location.type.toString() + tvTitle.text = item.location.name + tvLocationParent.text = item.location.country + tvLocationType.text = item.location.type.toString() + + itemView.isClickable = true + itemView.setOnClickListener { + Toast.makeText(activity,item._id,Toast.LENGTH_LONG).show() + } } } } 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 6bc9d12..e9b4c08 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 @@ -1,26 +1,32 @@ package com.example.brzodolokacije.Fragments +import android.content.Context +import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Activities.NavigationActivity import com.example.brzodolokacije.Adapters.SampleAdapter import com.example.brzodolokacije.Adapters.ShowPostsAdapter -import com.example.brzodolokacije.Models.ListItemModel -import com.example.brzodolokacije.Models.Location -import com.example.brzodolokacije.Models.LocationType -import com.example.brzodolokacije.Models.Post +import com.example.brzodolokacije.Models.* import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.example.brzodolokacije.databinding.FragmentHomeBinding +import okhttp3.ResponseBody +import retrofit2.Call +import retrofit2.Response class FragmentShowPosts : Fragment() { private lateinit var binding: FragmentShowPosts - private var posts : MutableList<Post> = mutableListOf() + private var posts : MutableList<PostPreview> = mutableListOf() private var layoutManagerVar: RecyclerView.LayoutManager? = null private var adapterVar: RecyclerView.Adapter<ShowPostsAdapter.ViewHolder>? = null private var recyclerView: RecyclerView?=null @@ -30,28 +36,55 @@ class FragmentShowPosts : Fragment() { //load data for the list loadData() //instantiate adapter and linearLayout - adapterVar=ShowPostsAdapter(posts) + val postApi= RetrofitHelper.getInstance() + val token=SharedPreferencesHelper.getValue("jwt", requireActivity()) + val request=postApi.getPosts("Bearer "+token) + + request.enqueue(object : retrofit2.Callback<MutableList<PostPreview>?> { + override fun onResponse(call: Call<MutableList<PostPreview>?>, response: Response<MutableList<PostPreview>?>) { + if(response.isSuccessful){ + //posts=response.body()!! + //recyclerView?.adapter=ShowPostsAdapter(requireActivity(),posts) + Toast.makeText( + activity, "prosao zahtev", Toast.LENGTH_LONG + ).show() + }else{ + if(response.errorBody()!=null) + Toast.makeText(activity, response.errorBody()!!.string(), Toast.LENGTH_LONG).show(); + } + + + } + + override fun onFailure(call: Call<MutableList<PostPreview>?>, t: Throwable) { + Toast.makeText( + activity, t.toString(), Toast.LENGTH_LONG + ).show(); + } + }) + + adapterVar=ShowPostsAdapter(requireActivity(),posts) layoutManagerVar= LinearLayoutManager(activity) } private fun loadData() { - posts.add(Post("123", + posts.add(PostPreview("123","asdasd", Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad", - mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf())) - posts.add(Post("123", + "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, + 4.3f,mutableListOf(),mutableListOf())) + posts.add(PostPreview("123","asdasd", Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad", - mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf())) - posts.add(Post("123", + "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, + 4.3f,mutableListOf(),mutableListOf())) + posts.add(PostPreview("123","asdasd", Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad", - mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf())) - posts.add(Post("123", + "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, + 4.3f,mutableListOf(),mutableListOf())) + posts.add(PostPreview("123","asdasd", Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad", - mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf())) - } + "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, + 4.3f,mutableListOf(),mutableListOf())) + } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt index 0bbf72e..bcb6e13 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt @@ -4,9 +4,11 @@ import com.example.brzodolokacije.Models.Auth.JustMail import com.example.brzodolokacije.Models.Auth.Login import com.example.brzodolokacije.Models.Auth.Register import com.example.brzodolokacije.Models.Auth.ResetPass +import com.example.brzodolokacije.Models.PostPreview import okhttp3.ResponseBody import retrofit2.Call import retrofit2.http.Body +import retrofit2.http.GET import retrofit2.http.Header import retrofit2.http.POST @@ -21,7 +23,8 @@ interface IBackendApi { fun forgotpass(@Body obj:JustMail):Call<ResponseBody> @POST("/api/auth/resetpass") fun resetpass(@Body obj:ResetPass):Call<ResponseBody> - + @GET("/api/post") + fun getPosts(@Header("Authorization") authHeader:String):Call<MutableList<PostPreview>> //@POST("putanja") //fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call<Post> }
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml new file mode 100644 index 0000000..da38262 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".Activities.ActivityAddPost"> + + <ImageView + android:id="@+id/image" + android:layout_width="200dp" + android:layout_height="200dp" + android:layout_weight="1" + app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostUploadImages" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <Button + android:id="@+id/btnActivityAddPostUploadImages" + android:layout_width="match_parent" + android:layout_height="40dp" + android:layout_gravity="center" + android:layout_weight="0" + android:text="Importuj" + app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPosTakeImage" + tools:layout_editor_absoluteX="-16dp" /> + + <Button + android:id="@+id/btnActivityAddPosTakeImage" + android:layout_width="match_parent" + android:layout_height="40dp" + android:layout_gravity="center" + android:layout_weight="0" + android:text="Slikaj" + app:layout_constraintBottom_toBottomOf="parent" + tools:layout_editor_absoluteX="-16dp" /> + +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml new file mode 100644 index 0000000..5688acd --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + xmlns:app="http://schemas.android.com/apk/res-auto" + tools:context=".Activities.ActivitySinglePost"> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/rvMain" + android:layout_width="match_parent" + android:layout_height="443dp" + android:orientation="horizontal" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + </androidx.recyclerview.widget.RecyclerView> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <TextView + android:id="@+id/textView6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Naslov" /> + + <TextView + android:id="@+id/textView7" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="11dp" + android:text="tip lokacije" /> + + <TextView + android:id="@+id/textView8" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Drzava, grad" /> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <LinearLayout + android:layout_width="213dp" + android:layout_height="27dp" + android:orientation="horizontal"> + + <ImageView + android:id="@+id/imageView8" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:src="@android:drawable/btn_star_big_on" /> + + <ImageView + android:id="@+id/imageView9" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:src="@android:drawable/btn_star_big_on" /> + + <ImageView + android:id="@+id/imageView10" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:src="@android:drawable/btn_star_big_on" /> + + <ImageView + android:id="@+id/imageView11" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:src="@android:drawable/btn_star_big_on" /> + + <ImageView + android:id="@+id/imageView12" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:src="@android:drawable/btn_star_big_on" /> + </LinearLayout> + + <TextView + android:id="@+id/textView9" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginEnd="8dp" + android:text="4.2" + app:layout_constraintEnd_toStartOf="@+id/textView10" + tools:layout_editor_absoluteY="0dp" /> + + <TextView + android:id="@+id/textView10" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="(10,500)" + app:layout_constraintEnd_toEndOf="parent" + tools:layout_editor_absoluteY="0dp" /> + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="10dp" + android:padding="10dp" + android:background="@drawable/rounded_picture_background" + android:elevation="5dp"> + + <TextView + android:id="@+id/textView11" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.048" + app:layout_constraintStart_toStartOf="parent" + tools:layout_editor_absoluteY="4dp" /> + </androidx.constraintlayout.widget.ConstraintLayout> + </LinearLayout> + + +</LinearLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/post_image.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/post_image.xml new file mode 100644 index 0000000..c2a999d --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/post_image.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="380dp" + android:layout_height="wrap_content" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_margin="10dp" + android:background="@drawable/rounded_picture_background" + android:clipToOutline="true" + android:clickable="true"> + + <ImageView + android:id="@+id/locationImage" + android:layout_width="match_parent" + android:layout_height="420dp" + android:outlineProvider="background" + android:scaleType="centerCrop" + android:src="@drawable/b1" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> + + + +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml index ffdd5d7..7283931 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml @@ -9,11 +9,13 @@ android:clipToOutline="true" > + <ImageView android:id="@+id/locationImage" android:layout_width="match_parent" - android:layout_height="330dp" + android:layout_height="250dp" android:outlineProvider="background" + android:scaleType="centerCrop" android:src="@drawable/b1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -75,5 +77,4 @@ app:layout_constraintTop_toTopOf="@+id/vBanner" app:layout_constraintVertical_bias="0.737" /> - </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file |