diff options
Diffstat (limited to 'Client')
| -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"  | 
