diff options
| author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-05 19:05:05 +0100 | 
|---|---|---|
| committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-05 19:05:05 +0100 | 
| commit | dfd867d9006520cfcd40f5bd08e7980a202ec530 (patch) | |
| tree | 80a5d6e8d629cefe75e72122ff3845e0d2f80a5d /Client | |
| parent | c9ca0173325bf846d84ac0776ef00182dd3e790b (diff) | |
Omogucena pretraga lokacija i objava  na pocetnoj strani. Prilikom potvrde pretrage omoguceno usmeravanje na stranicu sve objave sa datim parametrima pretrage i vrsenje pretrage. Dodat onResume.
Diffstat (limited to 'Client')
5 files changed, 132 insertions, 17 deletions
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 180b59d..23cbca6 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 @@ -18,19 +18,20 @@ class NavigationActivity : AppCompatActivity() {      //lateinit var openAddPost:Button      //lateinit var capturePost:Button - +    public lateinit var bottomNav:BottomNavigationView +    public lateinit var searchQuery:String +    public lateinit var searchId:String      override fun onCreate(savedInstanceState: Bundle?) {          super.onCreate(savedInstanceState)          setContentView(R.layout.activity_navigation) -        Toast.makeText( -            applicationContext, "Open  ", Toast.LENGTH_LONG -        ).show(); +        searchQuery="" +        searchId=""          val fragmentHomePage=FragmentHomePage()          val fragmentShowPosts=FragmentShowPosts()          val browseFragment=FragmentBrowse()          val addPostFragment= FragmentAddNew()          val profileFragment=FragmentProfile() -        val bottomNav=findViewById<View>(R.id.bottomNavigationView) as BottomNavigationView +        bottomNav=findViewById<View>(R.id.bottomNavigationView) as BottomNavigationView          setCurrentFragment(fragmentHomePage)          bottomNav.setOnNavigationItemSelectedListener {              when(it.itemId){ @@ -46,6 +47,7 @@ class NavigationActivity : AppCompatActivity() {          } +      }      private fun setCurrentFragment(fragment: Fragment)=          supportFragmentManager.beginTransaction().apply { diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt index cb48d3e..a26aaba 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt @@ -2,27 +2,31 @@ package com.example.brzodolokacije.Fragments  import android.content.Intent  import android.os.Bundle +import android.util.Log +import android.view.KeyEvent  import android.view.LayoutInflater  import android.view.View  import android.view.ViewGroup -import android.widget.Button -import android.widget.ImageButton -import android.widget.ImageView -import android.widget.ScrollView -import android.widget.Toast +import android.widget.*  import androidx.core.view.isVisible +import androidx.core.widget.addTextChangedListener  import androidx.fragment.app.Fragment  import androidx.fragment.app.FragmentTransaction  import androidx.recyclerview.widget.LinearLayoutManager  import androidx.recyclerview.widget.RecyclerView  import com.example.brzodolokacije.Activities.ChatActivity +import com.example.brzodolokacije.Activities.NavigationActivity  import com.example.brzodolokacije.Adapters.ShowPostsHomePageAdapter  import com.example.brzodolokacije.Interfaces.IBackendApi +import com.example.brzodolokacije.Models.Location  import com.example.brzodolokacije.Models.LocationType  import com.example.brzodolokacije.Models.PostPreview +import com.example.brzodolokacije.Models.SearchParams  import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper  import com.example.brzodolokacije.Services.RetrofitHelper.baseUrl  import com.example.brzodolokacije.Services.SharedPreferencesHelper +import com.google.android.material.button.MaterialButton  import retrofit2.Call  import retrofit2.Callback  import retrofit2.Response @@ -34,6 +38,9 @@ class FragmentHomePage : Fragment() {      private lateinit var btnChat:ImageView      private lateinit var btnBack:ImageView +    private lateinit var searchBar:AutoCompleteTextView +    private lateinit var searchButton: MaterialButton +    var responseLocations:MutableList<com.example.brzodolokacije.Models.Location>?=null      /* override fun onCreate(savedInstanceState: Bundle?) {           super.onCreate(savedInstanceState) @@ -47,8 +54,10 @@ class FragmentHomePage : Fragment() {          var view:View= inflater.inflate(R.layout.fragment_home_page, container, false)          btnBack=view.findViewById(R.id.btnFragmentHomePageBack)          btnChat=view.findViewById(R.id.ivFragmentHomePageChat) +        searchBar=view.findViewById(R.id.etFragmentHomePageSearch) +        searchButton=view.findViewById(R.id.mbFragmentHomePageSearchButton)          setBtnBackInvisible() - +        setUpSpinner()          var fm: FragmentTransaction =childFragmentManager.beginTransaction()          fm.replace(R.id.flFragmentHomePageMainContent, FragmentHomePageMainScroll())          fm.commit() @@ -62,9 +71,36 @@ class FragmentHomePage : Fragment() {              val intent: Intent = Intent(activity, ChatActivity::class.java)              requireActivity().startActivity(intent)          } +        searchButton.setOnClickListener{ +            searchText() +        } +        searchBar.addTextChangedListener{ +            onTextEnter() +        } +        searchBar.setOnKeyListener(View.OnKeyListener { v1, keyCode, event -> // If the event is a key-down event on the "enter" button +            if (event.action === KeyEvent.ACTION_DOWN && +                keyCode == KeyEvent.KEYCODE_ENTER +            ) { +                // Perform action on key press +                searchText() +                return@OnKeyListener true +            } +            false +        })          return view      } + + +    fun searchText(){ +        if(searchBar.text==null || searchBar.text.toString().trim()=="") +            return + +        var act=requireActivity() as NavigationActivity +        act.searchQuery=searchBar.text.toString() +        act.searchId="" +        act.bottomNav.selectedItemId=R.id.navAllPosts +    }      fun changeScrollVIewToLocationView(){          var fm: FragmentTransaction =childFragmentManager.beginTransaction()          fm.replace(R.id.flFragmentHomePageMainContent, FragmentShowPostsByLocation()) @@ -81,4 +117,59 @@ class FragmentHomePage : Fragment() {      fun setBtnBackVisible(){          btnBack.isVisible=true      } +    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()!! +                    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 +            var selectedLocation = responseLocations!!.find { location -> location.name == selected } + +            var act=requireActivity() as NavigationActivity +            act.searchQuery=selectedLocation!!.name +            act.searchId=selectedLocation!!._id +            act.bottomNav.selectedItemId=R.id.navAllPosts + + +        }) + + +    }  } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePageMainScroll.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePageMainScroll.kt index 46904d4..82c78a1 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePageMainScroll.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePageMainScroll.kt @@ -239,9 +239,6 @@ private lateinit var change:Button  //        Toast.makeText(  //            activity, "get all mv ", Toast.LENGTH_LONG  //        ).show(); -        Toast.makeText( -            activity," get popular all", Toast.LENGTH_LONG -        ).show();          val api = RetrofitHelper.getInstance()          val token= SharedPreferencesHelper.getValue("jwt", requireActivity())          val data=api.get10MostViewed("Bearer "+token) 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 0254e0f..8620dc4 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 @@ -19,6 +19,7 @@ import androidx.recyclerview.widget.RecyclerView  import androidx.swiperefreshlayout.widget.SwipeRefreshLayout  import com.example.brzodolokacije.Activities.ActivityAddPost  import com.example.brzodolokacije.Activities.ChatActivity +import com.example.brzodolokacije.Activities.NavigationActivity  import com.example.brzodolokacije.Adapters.ShowPostsAdapter  import com.example.brzodolokacije.Models.Location  import com.example.brzodolokacije.Models.SearchParams @@ -51,7 +52,7 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener {      private var swipeRefreshLayout:SwipeRefreshLayout?=null      private lateinit var searchButton: MaterialButton      private lateinit var searchPostsViewModel:SearchPostsViewModel -    private var searchParams:SearchParams?= SearchParams("6385b79d7e1a2c93575e1ef1",1,1) +    private var searchParams:SearchParams?= SearchParams("Kragujevac",1,1)      private lateinit var btnFilter:ImageButton      private lateinit var btnSort:ImageButton      private lateinit var searchBar: AutoCompleteTextView @@ -62,7 +63,6 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener {          super.onCreate(savedInstanceState)          setUpViewModel()          binding=FragmentShowPostsBinding.inflate(layoutInflater) -          //instantiate adapter and linearLayout          adapterVar=ShowPostsAdapter(requireActivity())          linearManagerVar= LinearLayoutManager(activity) @@ -215,12 +215,36 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener {              }              false          }) +        refreshSearch() +          return rootView      }      override fun onRefresh() {          requestToBack(searchParams!!) +        refreshSearch() +    } +    override fun onResume() { +        super.onResume() +        refreshSearch() + +    } +    private fun refreshSearch(){ +        var act=requireActivity() as NavigationActivity +        Log.d("TEST","USAO") +        if(act.searchId!=null && act.searchId.trim()!="") +        { +            searchBar.setText(act.searchQuery,TextView.BufferType.EDITABLE) +            searchParams= SearchParams(act.searchId,1,1) +            requestToBack(searchParams!!) +        }else +            if(act.searchQuery!=null && act.searchQuery.trim()!="") +            { +                searchBar.setText(act.searchQuery,TextView.BufferType.EDITABLE) +                searchParams= SearchParams(act.searchQuery,1,1) +                requestToBack(searchParams!!) +            }      } diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml index f39acf2..12c37e8 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml @@ -82,7 +82,7 @@          app:layout_constraintTop_toBottomOf="@+id/brzodolokacije"> -        <com.google.android.material.textfield.TextInputEditText +        <AutoCompleteTextView              android:id="@+id/etFragmentHomePageSearch"              android:layout_width="match_parent"              android:layout_height="match_parent" @@ -92,6 +92,7 @@              android:paddingLeft="15dp" />          <com.google.android.material.button.MaterialButton +            android:id="@+id/mbFragmentHomePageSearchButton"              android:layout_width="49dp"              android:layout_height="match_parent"              android:layout_gravity="right"  | 
