From 4eab4ea8df9e3aeb7db8c86fd54a6fa9d59d11a7 Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Mon, 5 Dec 2022 21:20:56 +0100 Subject: Izmenjena struktura stranice za prikaz objave. --- .../Activities/ActivitySinglePost.kt | 67 +++- .../brzodolokacije/Adapters/CommentsAdapter.kt | 2 +- .../brzodolokacije/FragmentSinglePostComments.kt | 59 +++ .../Fragments/FragmentSinglePostDescription.kt | 60 +++ .../brzodolokacije/Services/RetrofitHelper.kt | 4 +- .../app/src/main/res/drawable/gradient2.xml | 28 ++ .../drawable/ic_round_keyboard_arrow_down_24.xml | 5 + .../res/drawable/ic_round_keyboard_arrow_up_24.xml | 5 + .../main/res/drawable/ic_round_star_outline_24.xml | 5 + .../src/main/res/layout/activity_single_post.xml | 402 ++++++++------------- .../res/layout/fragment_single_post_comments.xml | 74 ++++ .../layout/fragment_single_post_description.xml | 187 ++++++++++ .../app/src/main/res/values/styles.xml | 5 + 13 files changed, 634 insertions(+), 269 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentSinglePostComments.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/gradient2.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_down_24.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_up_24.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_star_outline_24.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/fragment_single_post_comments.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/fragment_single_post_description.xml 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 index f3d8a63..5a1e8b1 100644 --- 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 @@ -6,10 +6,17 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.preference.PreferenceManager import android.util.Log +import android.view.ViewGroup +import android.view.ViewGroup.LayoutParams +import android.widget.Button +import android.widget.ImageView import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat +import androidx.core.view.isGone +import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.example.brzodolokacije.Adapters.CommentsAdapter @@ -21,6 +28,7 @@ import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.example.brzodolokacije.databinding.ActivitySinglePostBinding import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.gson.Gson +import kotlinx.android.synthetic.main.activity_single_post.view.* import org.osmdroid.config.Configuration import org.osmdroid.tileprovider.tilesource.TileSourceFactory import org.osmdroid.util.GeoPoint @@ -43,17 +51,38 @@ class ActivitySinglePost : AppCompatActivity() { private var starNumber:Number=0 private lateinit var userData:UserReceive private lateinit var user:TextView + private lateinit var linearLayout2:ConstraintLayout + private lateinit var btnChangeHeightUp:ImageView + private lateinit var btnChangeHeightDown:ImageView + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding=ActivitySinglePostBinding.inflate(layoutInflater) setContentView(binding.root) post= intent.extras?.getParcelable("selectedPost")!! + btnChangeHeightUp=findViewById(R.id.activitySinglePostChangeHeightUp) + btnChangeHeightDown=findViewById(R.id.activitySinglePostChangeHeightDown) + + btnChangeHeightDown.isVisible=false + btnChangeHeightDown.isGone=true + btnChangeHeightDown.isClickable=false + btnChangeHeightUp.isVisible=true + btnChangeHeightUp.isGone=false + btnChangeHeightUp.isClickable=true + + linearLayout2=findViewById(R.id.linearLayout2) + + linearLayout2.setOnClickListener { + linearLayout2.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT; + } + //instantiate adapter and linearLayout adapterImages= PostImageAdapter(this@ActivitySinglePost, post.images as MutableList) layoutManagerImages= LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false) recyclerViewImages = binding.rvMain + /* buildRecyclerViewComments() requestGetComments() @@ -67,7 +96,7 @@ class ActivitySinglePost : AppCompatActivity() { val alreadyrated= RatingReceive(starNumber.toInt(),post._id) requestAddRating(alreadyrated) - + */ binding.tvUser.setOnClickListener { val intent: Intent = Intent(this@ActivitySinglePost,ActivityUserProfile::class.java) var b= Bundle() @@ -78,16 +107,39 @@ class ActivitySinglePost : AppCompatActivity() { getMap() } + + btnChangeHeightUp.setOnClickListener { + btnChangeHeightUp.isVisible=false + btnChangeHeightUp.isGone=true + btnChangeHeightUp.isClickable=false + btnChangeHeightDown.isVisible=true + btnChangeHeightDown.isGone=false + btnChangeHeightDown.isClickable=true + linearLayout2.setMinHeight(0); + linearLayout2.setMinimumHeight(0); + linearLayout2.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT; + } + btnChangeHeightDown.setOnClickListener { + btnChangeHeightDown.isVisible=false + btnChangeHeightDown.isGone=true + btnChangeHeightDown.isClickable=false + btnChangeHeightUp.isVisible=true + btnChangeHeightUp.isGone=false + btnChangeHeightUp.isClickable=true + linearLayout2.setMinHeight(0); + linearLayout2.setMinimumHeight(0); + linearLayout2.getLayoutParams().height= ViewGroup.LayoutParams.WRAP_CONTENT; + } } fun getMap(){ - val mapDialogue = BottomSheetDialog(this@ActivitySinglePost, android.R.style.Theme_Black_NoTitleBar) + /*val mapDialogue = BottomSheetDialog(this@ActivitySinglePost, android.R.style.Theme_Black_NoTitleBar) mapDialogue.getWindow()?.setBackgroundDrawable(ColorDrawable(Color.argb(100, 0, 0, 0))) mapDialogue.setContentView(R.layout.map_dialogue) mapDialogue.setCancelable(true) - mapDialogue.setCanceledOnTouchOutside(true) + mapDialogue.setCanceledOnTouchOutside(true)*/ var map: MapView? = null Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this)); - map=mapDialogue.findViewById(R.id.MapDialogueMapView) + map=findViewById(R.id.MapDialogueMapView) //findViewById(R.id.MapDialogueMapView) as MapView map!!.setTileSource(TileSourceFactory.MAPNIK); map!!.setBuiltInZoomControls(true); @@ -103,11 +155,10 @@ class ActivitySinglePost : AppCompatActivity() { startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER) map!!.getOverlays().add(startMarker) map!!.controller.setCenter(LocMarker) - mapDialogue.show() - - } + } +/* fun buildRecyclerViewComments(){ recyclerViewComments=binding.rvComments adapterComments=CommentsAdapter(comments as MutableList,this@ActivitySinglePost) @@ -377,4 +428,6 @@ class ActivitySinglePost : AppCompatActivity() { binding.tvCommentCount.text=(Integer.parseInt(binding.tvCommentCount.text.toString())+1).toString() binding.tvCommentCount.invalidate() } + + */ } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/CommentsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/CommentsAdapter.kt index 06713ec..96e332a 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/CommentsAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/CommentsAdapter.kt @@ -125,7 +125,7 @@ class CommentsAdapter (val items : MutableList,val activity: Activi var adapter:CommentsAdapter=rv.adapter as CommentsAdapter adapter.items.add(0,newComment) rv.adapter=adapter - (activity as ActivitySinglePost).addedComment() + //(activity as ActivitySinglePost).addedComment() } } } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentSinglePostComments.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentSinglePostComments.kt new file mode 100644 index 0000000..046bdf6 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentSinglePostComments.kt @@ -0,0 +1,59 @@ +package com.example.brzodolokacije + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [FragmentSinglePostComments.newInstance] factory method to + * create an instance of this fragment. + */ +class FragmentSinglePostComments : Fragment() { + // TODO: Rename and change types of parameters + private var param1: String? = null + private var param2: String? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + arguments?.let { + param1 = it.getString(ARG_PARAM1) + param2 = it.getString(ARG_PARAM2) + } + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_single_post_comments, container, false) + } + + companion object { + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment FragmentSinglePostComments. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + FragmentSinglePostComments().apply { + arguments = Bundle().apply { + putString(ARG_PARAM1, param1) + putString(ARG_PARAM2, param2) + } + } + } +} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt new file mode 100644 index 0000000..1a7e7da --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt @@ -0,0 +1,60 @@ +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 com.example.brzodolokacije.R + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [FragmentSinglePostDescription.newInstance] factory method to + * create an instance of this fragment. + */ +class FragmentSinglePostDescription : Fragment() { + // TODO: Rename and change types of parameters + private var param1: String? = null + private var param2: String? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + arguments?.let { + param1 = it.getString(ARG_PARAM1) + param2 = it.getString(ARG_PARAM2) + } + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_single_post_description, container, false) + } + + companion object { + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment FragmentSinglePostDescription. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + FragmentSinglePostDescription().apply { + arguments = Bundle().apply { + putString(ARG_PARAM1, param1) + putString(ARG_PARAM2, param2) + } + } + } +} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt index 43c2109..88685e4 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt @@ -7,8 +7,8 @@ import retrofit2.converter.gson.GsonConverterFactory object RetrofitHelper { - val baseUrl="http://10.0.2.2:5279" - //val baseUrl="http://147.91.204.115:10082" + //val baseUrl="http://10.0.2.2:5279" + val baseUrl="http://147.91.204.115:10082" private var retrofit_noauth: IBackendApi? = null private var retrofit_auth: IBackendApi? = null diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient2.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient2.xml new file mode 100644 index 0000000..0d73580 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient2.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_down_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_down_24.xml new file mode 100644 index 0000000..ee6e4de --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_down_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_up_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_up_24.xml new file mode 100644 index 0000000..0d6676b --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_up_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_star_outline_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_star_outline_24.xml new file mode 100644 index 0000000..e97ab0a --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_star_outline_24.xml @@ -0,0 +1,5 @@ + + + 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 index e3cabb5..744a2a2 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml @@ -1,310 +1,194 @@ - - - - - - - - - - - - - - - - - + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent"> + - + app:layout_constraintTop_toTopOf="parent" /> - - - + - + - + - - + + app:layout_constraintTop_toTopOf="parent" /> - - - - - - - - + app:layout_constraintTop_toTopOf="parent" /> + + + + - - - - - - - - - - - - -