From 52ada664d8d786a5eff353fc75ee3b781eceb267 Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Fri, 4 Nov 2022 00:23:49 +0100 Subject: Dodati modeli potrebni za objave, osnovni elementi izgleda liste objava, hardkodovane vrednosti #17 --- .../app/src/main/AndroidManifest.xml | 7 -- .../brzodolokacije/Activities/ActivityShowPosts.kt | 12 --- .../Activities/NavigationActivity.kt | 11 +-- .../brzodolokacije/Adapters/ShowPostsAdapter.kt | 35 +++++++++ .../brzodolokacije/Fragments/FragmentShowPosts.kt | 69 ++++++++++++++++++ .../com/example/brzodolokacije/Models/Location.kt | 12 +++ .../example/brzodolokacije/Models/LocationTypes.kt | 4 + .../java/com/example/brzodolokacije/Models/Post.kt | 13 ++-- .../app/src/main/res/drawable/filter.png | Bin 829 -> 1509 bytes .../app/src/main/res/drawable/grid.png | Bin 0 -> 661 bytes .../app/src/main/res/drawable/list.webp | Bin 0 -> 174 bytes .../res/drawable/rounded_picture_background.xml | 2 +- .../src/main/res/layout/activity_show_posts.xml | 7 -- .../src/main/res/layout/fragment_show_posts.xml | 81 +++++++++++++++++++++ .../app/src/main/res/layout/post_preview.xml | 31 ++++---- 15 files changed, 227 insertions(+), 57 deletions(-) delete mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityShowPosts.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/grid.png create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/list.webp delete mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/activity_show_posts.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/fragment_show_posts.xml (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index 7a257ec..f6e0fc5 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -15,13 +15,6 @@ android:theme="@style/Theme.BrzoDoLokacije" android:usesCleartextTraffic="true" tools:targetApi="31"> - - - diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityShowPosts.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityShowPosts.kt deleted file mode 100644 index d1ad0a9..0000000 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityShowPosts.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.example.brzodolokacije.Activities - -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle -import com.example.brzodolokacije.R - -class ActivityShowPosts : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_show_posts) - } -} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt index 0933460..d36dbae 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt @@ -5,10 +5,7 @@ import android.os.Bundle import android.view.View import android.widget.Button import androidx.fragment.app.Fragment -import com.example.brzodolokacije.Fragments.FragmentAddPost -import com.example.brzodolokacije.Fragments.FragmentBrowse -import com.example.brzodolokacije.Fragments.FragmentHome -import com.example.brzodolokacije.Fragments.FragmentProfile +import com.example.brzodolokacije.Fragments.* import com.example.brzodolokacije.R import com.google.android.material.bottomnavigation.BottomNavigationView @@ -17,15 +14,15 @@ class NavigationActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_navigation) - val homeFragment=FragmentHome() + val fragmentShowPosts=FragmentShowPosts() val browseFragment=FragmentBrowse() val addPostFragment=FragmentAddPost() val profileFragment=FragmentProfile() val bottomNav=findViewById(R.id.bottomNavigationView) as BottomNavigationView - setCurrentFragment(homeFragment) + setCurrentFragment(fragmentShowPosts) bottomNav.setOnNavigationItemSelectedListener { when(it.itemId){ - R.id.navHome->setCurrentFragment(homeFragment) + R.id.navHome->setCurrentFragment(fragmentShowPosts) R.id.navAddPost->setCurrentFragment(addPostFragment) R.id.navBrowse->setCurrentFragment(browseFragment) R.id.navProfile->setCurrentFragment(profileFragment) 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 new file mode 100644 index 0000000..c8a0b77 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt @@ -0,0 +1,35 @@ +package com.example.brzodolokacije.Adapters + +import android.view.LayoutInflater +import android.view.ViewGroup +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.databinding.PostPreviewBinding + +class ShowPostsAdapter (val items : MutableList) + : RecyclerView.Adapter(){ + //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) + 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 : PostPreviewBinding) : RecyclerView.ViewHolder(itemView.root){ + fun bind(item : Post){ + binding.apply { + tvTitle.text=item.location.name + tvLocationParent.text=item.location.country + tvLocationType.text=item.location.type.toString() + } + } + } +} \ 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 new file mode 100644 index 0000000..8dcef02 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt @@ -0,0 +1,69 @@ +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.SampleAdapter +import com.example.brzodolokacije.Adapters.ShowPostsAdapter +import com.example.brzodolokacije.Models.ListItemModel +import com.example.brzodolokacije.Models.Location +import com.example.brzodolokacije.Models.LocationTypes +import com.example.brzodolokacije.Models.Post +import com.example.brzodolokacije.R +import com.example.brzodolokacije.databinding.FragmentHomeBinding + + +class FragmentShowPosts : Fragment() { + + private lateinit var binding: FragmentShowPosts + private var posts : MutableList = mutableListOf() + private var layoutManagerVar: RecyclerView.LayoutManager? = null + private var adapterVar: RecyclerView.Adapter? = 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=ShowPostsAdapter(posts) + layoutManagerVar= LinearLayoutManager(activity) + } + + private fun loadData() { + posts.add(Post("123","213", + Location("asd","Ajfelov toranj","Pariz", + "Francuska","idk","asda","asdsd",LocationTypes.Grad),"opsiopsaid",1.1,56, + mutableListOf(),mutableListOf())) + posts.add(Post("123","213", + Location("asd","Ajfelov toranj","Pariz", + "Francuska","idk","asda","asdsd",LocationTypes.Grad),"opsiopsaid",1.1,56, + mutableListOf(),mutableListOf(),)) + posts.add(Post("123","213", + Location("asd","Ajfelov toranj","Pariz", + "Francuska","idk","asda","asdsd",LocationTypes.Grad),"opsiopsaid",1.1,56, + mutableListOf(),mutableListOf(),)) + posts.add(Post("123","213", + Location("asd","Ajfelov toranj","Pariz", + "Francuska","idk","asda","asdsd",LocationTypes.Grad),"opsiopsaid",1.1,56, + mutableListOf(),mutableListOf(),)) + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + val rootView = inflater?.inflate(R.layout.fragment_show_posts, 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/Models/Location.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt new file mode 100644 index 0000000..ab47149 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt @@ -0,0 +1,12 @@ +package com.example.brzodolokacije.Models + +data class Location( + val _id:String, + val name:String, + val city:String, + val country:String, + val address:String, + val latitude:String, + val longitude:String, + val type:LocationTypes +) diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/LocationTypes.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/LocationTypes.kt index c599dae..cc61526 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/LocationTypes.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/LocationTypes.kt @@ -1,4 +1,8 @@ package com.example.brzodolokacije.Models enum class LocationTypes { + Plaza, + Grad, + Zgrada, + Setaliste } \ No newline at end of file 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 9c0eae1..4359cea 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,12 +1,15 @@ package com.example.brzodolokacije.Models +import java.io.File import java.util.* data class Post ( var _id:String, - var creationDate: Date, - var country:String,//drzava - var city:String, - var location:String,//naziv grada/naziv planine/naziv jezera/....... - var type:LocationTypes //tip lokacije + var ownerId:String, + var location:Location, + var description:String, + var ratings:Number, + var views:Int, + var reviews:List, + var images:List ) \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/filter.png b/Client/BrzoDoLokacije/app/src/main/res/drawable/filter.png index 8cf4b39..4342c2c 100644 Binary files a/Client/BrzoDoLokacije/app/src/main/res/drawable/filter.png and b/Client/BrzoDoLokacije/app/src/main/res/drawable/filter.png differ diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/grid.png b/Client/BrzoDoLokacije/app/src/main/res/drawable/grid.png new file mode 100644 index 0000000..03d9ef9 Binary files /dev/null and b/Client/BrzoDoLokacije/app/src/main/res/drawable/grid.png differ diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/list.webp b/Client/BrzoDoLokacije/app/src/main/res/drawable/list.webp new file mode 100644 index 0000000..608932f Binary files /dev/null and b/Client/BrzoDoLokacije/app/src/main/res/drawable/list.webp differ diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_picture_background.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_picture_background.xml index 85f54be..2f898b0 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_picture_background.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_picture_background.xml @@ -1,5 +1,5 @@ - + diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_show_posts.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_show_posts.xml deleted file mode 100644 index 20c7560..0000000 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_show_posts.xml +++ /dev/null @@ -1,7 +0,0 @@ - - \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_show_posts.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_show_posts.xml new file mode 100644 index 0000000..4565b74 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_show_posts.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + \ 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 abbd549..e8ad501 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/post_preview.xml @@ -4,17 +4,15 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_padding="5dp" - android:layout_margin="0dp" + android:layout_margin="5dp" android:background="@drawable/rounded_picture_background" android:clipToOutline="true" > -- cgit v1.2.3