aboutsummaryrefslogtreecommitdiff
path: root/Client
diff options
context:
space:
mode:
authorTAMARA JERINIC <tamara.jerinic@gmail.com>2022-11-07 02:23:06 +0100
committerTAMARA JERINIC <tamara.jerinic@gmail.com>2022-11-07 02:23:06 +0100
commit4e833f3651e304d35f91f43a3d46112f10873f45 (patch)
treed15b65ce1958157f28ada9fa5fa8311605e00f62 /Client
parent3a6537bc3060d818d522e33f03321fd8aba1c0d9 (diff)
parentf12280f2396d424ca43893a32939b1b016158b7b (diff)
Merge branch 'develop' of http://gitlab.pmf.kg.ac.rs/BrzoDoLokacije2022/odyssey/brzodolokacije into develop
# Conflicts: # Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
Diffstat (limited to 'Client')
-rw-r--r--Client/BrzoDoLokacije/app/build.gradle4
-rw-r--r--Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml17
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt60
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/PostImageAdapter.kt7
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt48
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt1
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentPost.kt50
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt71
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt11
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml128
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml19
15 files changed, 309 insertions, 125 deletions
diff --git a/Client/BrzoDoLokacije/app/build.gradle b/Client/BrzoDoLokacije/app/build.gradle
index f6faf0d..fa85692 100644
--- a/Client/BrzoDoLokacije/app/build.gradle
+++ b/Client/BrzoDoLokacije/app/build.gradle
@@ -1,6 +1,7 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
+ id 'org.jetbrains.kotlin.android.extensions'
}
android {
@@ -34,6 +35,9 @@ android {
buildFeatures {
viewBinding true
}
+ androidExtensions {
+ experimental = true
+ }
}
dependencies {
diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
index 2af585f..1d2adb0 100644
--- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
+++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
@@ -20,13 +20,7 @@
android:theme="@style/Theme.BrzoDoLokacije"
android:usesCleartextTraffic="true"
tools:targetApi="31">
- <activity
- android:name=".Activities.ActivityCapturePost"
- android:exported="false">
- <meta-data
- android:name="android.app.lib_name"
- android:value="" />
- </activity>
+
<activity
android:name=".Activities.ActivityAddPost"
android:exported="false">
@@ -50,7 +44,14 @@
<activity android:name=".Activities.ActivityForgottenPasswordVerify" />
<activity android:name=".Activities.ActivityForgottenPassword" />
<activity android:name=".Activities.ActivityLoginRegister" />
- <activity android:name=".Activities.NavigationActivity" />
+ <activity
+ android:name=".Activities.NavigationActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
<activity
android:name=".MainActivity"
android:exported="false">
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..be4a73d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt
@@ -0,0 +1,60 @@
+package com.example.brzodolokacije.Activities
+
+import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.RecyclerView
+import com.example.brzodolokacije.Adapters.PostImageAdapter
+import com.example.brzodolokacije.Models.PostImage
+import com.example.brzodolokacije.Models.PostPreview
+import com.example.brzodolokacije.R
+import com.example.brzodolokacije.databinding.ActivitySinglePostBinding
+
+
+class ActivitySinglePost : AppCompatActivity() {
+ private lateinit var binding: ActivitySinglePostBinding
+ private var images : MutableList<PostImage> = mutableListOf()
+ private var layoutManagerVar: RecyclerView.LayoutManager? = null
+ private var adapterVar: RecyclerView.Adapter<PostImageAdapter.ViewHolder>? = null
+ private var recyclerView: RecyclerView?=null
+ private lateinit var post:PostPreview
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding=ActivitySinglePostBinding.inflate(layoutInflater)
+ setContentView(R.layout.activity_single_post)
+ post= intent.extras?.getParcelable("selectedPost")!!
+ /*//load data for the list
+
+ //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*/
+ loadTextComponents()
+ }
+
+ private fun loadImages(){
+
+ }
+
+ private fun loadTextComponents() {
+ binding.apply {
+ tvTitle.text= post.location.name
+ tvTitle.invalidate()
+ tvLocationType.text=post.location.type.name
+ tvLocationType.invalidate()
+ tvLocationParent.text=post.location.country
+ tvLocationParent.invalidate()
+ tvRating.text=post.ratings.toString()
+ tvRating.invalidate()
+ tvNumberOfRatings.text=post.ratings.toString()
+ tvNumberOfRatings.invalidate()
+ }
+ }
+
+} \ 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
index b2eaa30..3d2bf46 100644
--- 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
@@ -6,10 +6,11 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.example.brzodolokacije.Models.Post
+import com.example.brzodolokacije.Models.PostImage
import com.example.brzodolokacije.databinding.PostImageBinding
import com.example.brzodolokacije.databinding.PostPreviewBinding
-class PostImageAdapter(val items : MutableList<java.io.File>)
+class PostImageAdapter(val items : MutableList<PostImage>)
: RecyclerView.Adapter<PostImageAdapter.ViewHolder>(){
//constructer has one argument - list of objects that need to be displayed
//it is bound to xml of single item
@@ -25,9 +26,9 @@ class PostImageAdapter(val items : MutableList<java.io.File>)
}
override fun getItemCount() = items.size
inner class ViewHolder(itemView : PostImageBinding) : RecyclerView.ViewHolder(itemView.root){
- fun bind(item : java.io.File){
+ fun bind(item : PostImage){
binding.apply {
- locationImage.setImageBitmap(BitmapFactory.decodeStream(item.inputStream()))
+ //locationImage.setImageBitmap(BitmapFactory.decodeStream(item.inputStream()))
}
}
}
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 56220d5..8e6093e 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,40 +1,52 @@
package com.example.brzodolokacije.Adapters
+import android.app.Activity
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
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.Activities.ActivitySinglePost
+import com.example.brzodolokacije.Models.PostPreview
import com.example.brzodolokacije.databinding.PostPreviewBinding
-import java.io.Console
-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])
-/* holder.itemView.setOnClickListener {
- fun listener(position: Int){
- binding.tvTitle.text="klik"
- }
- }*/
+ holder.itemView.setOnClickListener {
+ //Toast.makeText(activity,item._id,Toast.LENGTH_LONG).show()
+ val intent:Intent = Intent(activity,ActivitySinglePost::class.java)
+ var b=Bundle()
+ b.putParcelable("selectedPost", items[position])
+ intent.putExtras(b)
+ activity.startActivity(intent)
+ }
}
+
+
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
+
}
}
}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt
index 9092700..01b3f1d 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt
@@ -95,6 +95,7 @@ class FragmentLogin : Fragment() {
SharedPreferencesHelper.addValue("jwt",token,activity!!)
val intent= Intent(activity!!, NavigationActivity::class.java)
startActivity(intent)
+ activity!!.finish()
}else{
if(response.errorBody()!=null)
Toast.makeText(activity, response.errorBody()!!.string(), Toast.LENGTH_LONG).show();
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentPost.kt
deleted file mode 100644
index 82835f2..0000000
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentPost.kt
+++ /dev/null
@@ -1,50 +0,0 @@
-package com.example.brzodolokacije.Fragments
-
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-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.Adapters.ShowPostsAdapter
-import com.example.brzodolokacije.Models.Post
-import com.example.brzodolokacije.R
-import com.example.brzodolokacije.databinding.FragmentPostBinding
-
-
-class FragmentPost : Fragment() {
-
- private lateinit var binding: FragmentPostBinding
- 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)
- //load data for the list
- loadData()
- //instantiate adapter and linearLayout
- adapterVar=PostImageAdapter(images)
- layoutManagerVar= LinearLayoutManager(activity)
- }
-
- private fun loadData() {
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- val rootView = inflater?.inflate(R.layout.fragment_post, container, false)
- recyclerView = rootView?.findViewById(R.id.rvMain)
- // set recyclerView attributes
- recyclerView?.setHasFixedSize(true)
- recyclerView?.layoutManager = layoutManagerVar
- recyclerView?.adapter = adapterVar
- return rootView
- }
-
-} \ No newline at end of file
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/java/com/example/brzodolokacije/MainActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt
index e55da11..0245e9b 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt
@@ -30,6 +30,7 @@ class MainActivity : AppCompatActivity() {
startActivity(intent)
+ finish()
}
fun checkLoggedIn():Boolean{
@@ -48,7 +49,6 @@ class MainActivity : AppCompatActivity() {
}
fun refreshJwt(token:String){
- Log.d("Main","RIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP")
if(token==null)
return
var refreshJwt= RetrofitHelper.getInstance().refreshJwt("Bearer "+token)
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt
index 25125cd..04bf3a1 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt
@@ -1,7 +1,10 @@
package com.example.brzodolokacije.Models
+import android.os.Parcelable
import com.example.brzodolokacije.Models.LocationType
+import kotlinx.android.parcel.Parcelize
+@Parcelize
data class Location (
var _id:String,
var name:String,
@@ -11,4 +14,4 @@ data class Location (
var latitude:Double,
var longitude:Double,
var type:LocationType
- )
+ ): Parcelable
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
index 2ac2619..f667fac 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
@@ -1,5 +1,7 @@
package com.example.brzodolokacije.Models
+import android.os.Parcelable
+import kotlinx.android.parcel.Parcelize
import okhttp3.MultipartBody
import java.time.LocalDateTime
@@ -23,7 +25,8 @@ data class PostSend(
var images: List<MultipartBody.Part>
)
-data class PostPreview(
+@Parcelize
+data class PostPreview (
var _id:String,
var ownerId:String,
var location:Location,
@@ -32,16 +35,16 @@ data class PostPreview(
var ratings:Float,
var comments:List<Comment>,
var images:List<PostImage>
-)
-
+):Parcelable
+@Parcelize
data class Comment (
var userId:String,
var comment:String,
var parent:Comment,
var timeStamp: LocalDateTime
-)
+):Parcelable
data class Rating(
var useridval :String,
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt
index d024272..93326b3 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/PostImage.kt
@@ -1,6 +1,10 @@
package com.example.brzodolokacije.Models
+import android.os.Parcelable
+import kotlinx.android.parcel.Parcelize
+
+@Parcelize
data class PostImage (
var _id:String,
var path:String
- ) \ No newline at end of file
+ ): Parcelable \ 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..d323d0c
--- /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/tvTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Naslov" />
+
+ <TextView
+ android:id="@+id/tvLocationType"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="11dp"
+ android:text="tip lokacije" />
+
+ <TextView
+ android:id="@+id/tvLocationParent"
+ 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/star1"
+ 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/star2"
+ 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/star3"
+ 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/star4"
+ 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/star5"
+ 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/tvRating"
+ 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/tvNumberOfRatings"
+ 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/tvDescription"
+ 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/fragment_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml
deleted file mode 100644
index 0b37348..0000000
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_post.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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:layout_width="match_parent"
- android:layout_height="match_parent"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- tools:context=".Fragments.FragmentPost">
-
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/rvMain"
- android:orientation="horizontal"
- android:layout_width="match_parent"
- android:layout_height="823dp"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" >
-
- </androidx.recyclerview.widget.RecyclerView>
-
-</LinearLayout> \ No newline at end of file