diff options
author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-04 20:56:53 +0100 |
---|---|---|
committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-04 20:56:53 +0100 |
commit | 8d19b8ebd9690808e7e8fb481fb5f3e947034823 (patch) | |
tree | 33581c03972a0758508b472dc8aa016beb8768cd | |
parent | 87e5c9620e959fcfae0b5189f89ea44259469109 (diff) |
Omogucena pretraga lokacija i prikaz objava za datu lokaciju.
-rw-r--r-- | Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt | 76 | ||||
-rw-r--r-- | Client/BrzoDoLokacije/app/src/main/res/layout/fragment_show_posts.xml | 5 |
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" |