aboutsummaryrefslogtreecommitdiff
path: root/Client
diff options
context:
space:
mode:
Diffstat (limited to 'Client')
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt103
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePageMainScroll.kt3
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt28
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml3
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"