aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt76
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_show_posts.xml5
2 files changed, 74 insertions, 7 deletions
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 a840d6b..f5b4b58 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
@@ -6,10 +6,9 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.Button
-import android.widget.EditText
-import android.widget.ImageButton
-import android.widget.Toast
+import android.widget.*
+import androidx.core.content.ContextCompat
+import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
@@ -20,9 +19,11 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.example.brzodolokacije.Activities.ActivityAddPost
import com.example.brzodolokacije.Activities.ChatActivity
import com.example.brzodolokacije.Adapters.ShowPostsAdapter
+import com.example.brzodolokacije.Models.Location
import com.example.brzodolokacije.Models.SearchParams
import com.example.brzodolokacije.R
import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
import com.example.brzodolokacije.databinding.FragmentShowPostsBinding
import com.example.brzodolokacije.paging.SearchPostsViewModel
import com.example.brzodolokacije.paging.SearchPostsViewModelFactory
@@ -31,6 +32,11 @@ import kotlinx.android.synthetic.main.fragment_show_posts.*
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.launch
+import org.osmdroid.util.GeoPoint
+import org.osmdroid.views.overlay.ItemizedIconOverlay
+import org.osmdroid.views.overlay.OverlayItem
+import retrofit2.Call
+import retrofit2.Response
class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener {
@@ -42,20 +48,75 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener {
private var gridManagerVar: RecyclerView.LayoutManager?=null
private var swipeRefreshLayout:SwipeRefreshLayout?=null
private lateinit var searchPostsViewModel:SearchPostsViewModel
- private var searchParams:SearchParams?= SearchParams("6375784fe84e2d53df32bf03",1,1)
+ private var searchParams:SearchParams?= SearchParams("6385b79d7e1a2c93575e1ef1",1,1)
private lateinit var btnFilter:ImageButton
private lateinit var btnSort:ImageButton
+ private lateinit var searchBar: AutoCompleteTextView
+ var responseLocations:MutableList<com.example.brzodolokacije.Models.Location>?=null
+ var selectedLocation:com.example.brzodolokacije.Models.Location?=null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setUpViewModel()
binding=FragmentShowPostsBinding.inflate(layoutInflater)
+
//instantiate adapter and linearLayout
adapterVar=ShowPostsAdapter(requireActivity())
linearManagerVar= LinearLayoutManager(activity)
gridManagerVar=GridLayoutManager(activity,2)
}
+ fun onTextEnter(){
+ var api=RetrofitHelper.getInstance()
+ var jwtString= SharedPreferencesHelper.getValue("jwt",requireActivity())
+ var text=searchBar.text
+ Log.d("test",text.toString())
+ if(text==null ||text.toString().trim()=="")
+ return
+ var data=api.searchLocationsQuery("Bearer "+jwtString,text.toString())
+ data.enqueue(object : retrofit2.Callback<MutableList<com.example.brzodolokacije.Models.Location>> {
+ override fun onResponse(call: Call<MutableList<Location>?>, response: Response<MutableList<Location>>) {
+ if(response.isSuccessful){
+ var existingLocation=responseLocations
+ responseLocations=response.body()!!
+ var tempList=mutableListOf<String>()
+ if(existingLocation!=null && existingLocation.size>0)
+ for(loc in existingLocation!!){
+ spinnerAdapter!!.remove(loc.name)
+ }
+ for(loc in responseLocations!!){
+ spinnerAdapter!!.add(loc.name)
+ }
+ spinnerAdapter!!.notifyDataSetChanged()
+ }
+ }
+
+ override fun onFailure(call: Call<MutableList<Location>>, t: Throwable) {
+
+ }
+ })
+
+ }
+ var arraySpinner :MutableList<String>?=null
+ var spinnerAdapter: ArrayAdapter<String>?=null
+
+ fun setUpSpinner() {
+ arraySpinner=mutableListOf<String>()
+ spinnerAdapter= ArrayAdapter<String>(
+ requireContext(),
+ android.R.layout.simple_list_item_1, arraySpinner!!)
+ searchBar.threshold=1
+ searchBar.setAdapter(spinnerAdapter)
+ searchBar.setOnItemClickListener(AdapterView.OnItemClickListener { parent, view, position, id ->
+ val selected = parent.getItemAtPosition(position) as String
+ selectedLocation = responseLocations!!.find { location -> location.name == selected }
+ searchParams=SearchParams(selectedLocation!!._id,1,1)//to do sort type
+ requestToBack(searchParams!!)
+
+ })
+
+
+ }
private fun setUpViewModel() {
val factory=SearchPostsViewModelFactory(RetrofitHelper.getInstance(),requireActivity())
searchPostsViewModel=ViewModelProvider(this@FragmentShowPosts,factory).get(SearchPostsViewModel::class.java)
@@ -126,6 +187,11 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener {
btnSort.setOnClickListener{
showBottomSheetSort()
}
+ searchBar=rootView.findViewById(R.id.etFragmentShowPostsSearch) as AutoCompleteTextView
+ setUpSpinner()
+ searchBar.addTextChangedListener{
+ onTextEnter()
+ }
return rootView
}
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
index e1effc4..e3db4bc 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_show_posts.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_show_posts.xml
@@ -21,8 +21,8 @@
app:layout_constraintTop_toBottomOf="@+id/tvFragmentHomePageSearch">
- <com.google.android.material.textfield.TextInputEditText
- android:id="@+id/etFragmentHomePageSearch"
+ <AutoCompleteTextView
+ android:id="@+id/etFragmentShowPostsSearch"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/rounded_white_button_login"
@@ -31,6 +31,7 @@
android:inputType="textPersonName" />
<com.google.android.material.button.MaterialButton
+ android:id="@+id/mbFragmentHomePageSearch"
android:layout_width="49dp"
android:layout_height="match_parent"
android:layout_gravity="right"