From d342f8e91c7daa0f706a686d0939e8e5146848c6 Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Wed, 9 Nov 2022 23:55:53 +0100 Subject: dodat odabir nacina prikaza objava (u listi ili gridu), dodat refresh povlacenjem i spiner dok se ucitavaju objave #29 --- Client/BrzoDoLokacije/app/build.gradle | 1 + .../brzodolokacije/Fragments/FragmentShowPosts.kt | 84 ++++++++++++++-------- .../src/main/res/layout/fragment_show_posts.xml | 23 +++--- 3 files changed, 70 insertions(+), 38 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/build.gradle b/Client/BrzoDoLokacije/app/build.gradle index 72f1f0d..ccc90fc 100644 --- a/Client/BrzoDoLokacije/app/build.gradle +++ b/Client/BrzoDoLokacije/app/build.gradle @@ -46,6 +46,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.7.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' 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 73744d4..83f6429 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 @@ -8,9 +8,12 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageButton import android.widget.Toast +import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.example.brzodolokacije.Activities.NavigationActivity import com.example.brzodolokacije.Adapters.SampleAdapter import com.example.brzodolokacije.Adapters.ShowPostsAdapter @@ -19,29 +22,53 @@ import com.example.brzodolokacije.R import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.example.brzodolokacije.databinding.FragmentHomeBinding +import com.example.brzodolokacije.databinding.FragmentShowPostsBinding +import kotlinx.android.synthetic.main.fragment_show_posts.* +import kotlinx.android.synthetic.main.fragment_show_posts.view.* import okhttp3.ResponseBody import retrofit2.Call import retrofit2.Response -class FragmentShowPosts : Fragment() { +class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener { - private lateinit var binding: FragmentShowPosts + private lateinit var binding: FragmentShowPostsBinding private var posts : MutableList = mutableListOf() - private var layoutManagerVar: RecyclerView.LayoutManager? = null + private var linearManagerVar: RecyclerView.LayoutManager? = null private var adapterVar: RecyclerView.Adapter? = null private var recyclerView: RecyclerView?=null + private var gridManagerVar: RecyclerView.LayoutManager?=null + private var swipeRefreshLayout:SwipeRefreshLayout?=null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - //load data for the list - loadData() - Log.d("main","greska") + binding=FragmentShowPostsBinding.inflate(layoutInflater) //instantiate adapter and linearLayout + adapterVar=ShowPostsAdapter(requireActivity(),posts) + linearManagerVar= LinearLayoutManager(activity) + gridManagerVar=GridLayoutManager(activity,2) + } + + fun setUpListeners(rootView: View?){ + rootView?.findViewById(R.id.btnGridLayout)?.setOnClickListener() { + if(recyclerView?.layoutManager!=gridManagerVar){ + recyclerView?.layoutManager=gridManagerVar + } + Log.d("main","klik") + } + + rootView?.findViewById(R.id.btnLinearLayout)?.setOnClickListener() { + if(recyclerView?.layoutManager!=linearManagerVar){ + recyclerView?.layoutManager=linearManagerVar + } + Log.d("main","klik") + } + } + + fun requestToBack(){ val postApi= RetrofitHelper.getInstance() val token=SharedPreferencesHelper.getValue("jwt", requireActivity()) val request=postApi.getPosts("Bearer "+token) - request.enqueue(object : retrofit2.Callback?> { override fun onResponse(call: Call?>, response: Response?>) { if(response.isSuccessful){ @@ -50,6 +77,7 @@ class FragmentShowPosts : Fragment() { Toast.makeText( activity, "prosao zahtev", Toast.LENGTH_LONG ).show() + swipeRefreshLayout?.isRefreshing=false }else{ if(response.errorBody()!=null) Toast.makeText(activity, response.errorBody()!!.string(), Toast.LENGTH_LONG).show(); @@ -64,30 +92,8 @@ class FragmentShowPosts : Fragment() { ).show(); } }) - - adapterVar=ShowPostsAdapter(requireActivity(),posts) - layoutManagerVar= LinearLayoutManager(activity) } - private fun loadData() { - posts.add(PostPreview("123","asdasd", - Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, - 4.3f,mutableListOf(),mutableListOf())) - posts.add(PostPreview("123","asdasd", - Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, - 4.3f,mutableListOf(),mutableListOf())) - posts.add(PostPreview("123","asdasd", - Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, - 4.3f,mutableListOf(),mutableListOf())) - posts.add(PostPreview("123","asdasd", - Location("asd","Ajfelov toranj","Pariz", - "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13, - 4.3f,mutableListOf(),mutableListOf())) - } - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -96,9 +102,27 @@ class FragmentShowPosts : Fragment() { recyclerView = rootView?.findViewById(R.id.rvMain) // set recyclerView attributes recyclerView?.setHasFixedSize(true) - recyclerView?.layoutManager = layoutManagerVar + //recyclerView?.layoutManager = linearManagerVar + recyclerView?.layoutManager = linearManagerVar recyclerView?.adapter = adapterVar + setUpListeners(rootView) + swipeRefreshLayout = rootView?.findViewById(R.id.swipeContainer) as SwipeRefreshLayout + swipeRefreshLayout?.setOnRefreshListener(this) + swipeRefreshLayout?.setColorSchemeResources( + R.color.purple_200, + R.color.teal_200, + R.color.dark_blue_transparent, + R.color.purple_700 + ) + swipeRefreshLayout?.post(kotlinx.coroutines.Runnable { + swipeRefreshLayout?.isRefreshing=true + requestToBack() + }) return rootView } + override fun onRefresh() { + requestToBack() + } + } \ No newline at end of file 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 02512d4..a12801e 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 @@ -22,7 +22,7 @@ + + + \ No newline at end of file -- cgit v1.2.3 From cbd73ab7e3ef208a9258b51835a67da9539f25e1 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Thu, 10 Nov 2022 01:14:17 +0100 Subject: Vracena adresa na localhost. --- .../main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt index 88685e4..43c2109 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt @@ -7,8 +7,8 @@ import retrofit2.converter.gson.GsonConverterFactory object RetrofitHelper { - //val baseUrl="http://10.0.2.2:5279" - val baseUrl="http://147.91.204.115:10082" + val baseUrl="http://10.0.2.2:5279" + //val baseUrl="http://147.91.204.115:10082" private var retrofit_noauth: IBackendApi? = null private var retrofit_auth: IBackendApi? = null -- cgit v1.2.3 From 3e50cfd211671a9ea405c758368584b174ca5417 Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Fri, 11 Nov 2022 00:42:14 +0100 Subject: Dodat fragment za početnu stranu. Dodati neki resursi. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Activities/NavigationActivity.kt | 1 + .../brzodolokacije/Fragments/FragmentHomePage.kt | 60 +++++++ .../app/src/main/res/drawable/circle_view.xml | 6 + .../app/src/main/res/drawable/location_beach.xml | 15 ++ .../app/src/main/res/drawable/location_city.xml | 32 ++++ .../src/main/res/drawable/location_mountain.xml | 15 ++ .../src/main/res/drawable/location_waterfall.xml | 15 ++ .../app/src/main/res/layout/fragment_home_page.xml | 183 +++++++++++++++++++++ 8 files changed, 327 insertions(+) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/location_beach.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/location_city.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/location_mountain.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/location_waterfall.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml (limited to 'Client') 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 0a69722..c2997ee 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 @@ -93,6 +93,7 @@ class NavigationActivity : AppCompatActivity() { var newLocation=bottomSheetDialog.findViewById(R.id.btnBottomSheetAddNewLocation) as ImageButton newPost.setOnClickListener{ + bottomSheetDialog.dismiss() showBottomSheetAddPost() } 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 new file mode 100644 index 0000000..7685296 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt @@ -0,0 +1,60 @@ +package com.example.brzodolokacije.Fragments + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.example.brzodolokacije.R + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [FragmentHomePage.newInstance] factory method to + * create an instance of this fragment. + */ +class FragmentHomePage : Fragment() { + // TODO: Rename and change types of parameters + private var param1: String? = null + private var param2: String? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + arguments?.let { + param1 = it.getString(ARG_PARAM1) + param2 = it.getString(ARG_PARAM2) + } + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_home_page, container, false) + } + + companion object { + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment FragmentHomePage. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + FragmentHomePage().apply { + arguments = Bundle().apply { + putString(ARG_PARAM1, param1) + putString(ARG_PARAM2, param2) + } + } + } +} \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml new file mode 100644 index 0000000..8317243 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/location_beach.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_beach.xml new file mode 100644 index 0000000..c42b8a5 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_beach.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/location_city.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_city.xml new file mode 100644 index 0000000..a0a3a26 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_city.xml @@ -0,0 +1,32 @@ + + + + + + + + + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/location_mountain.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_mountain.xml new file mode 100644 index 0000000..4f436f7 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_mountain.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/location_waterfall.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_waterfall.xml new file mode 100644 index 0000000..b909b31 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_waterfall.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..5289d88 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3 From a62e2e48ff1cce4c21158d215bbadc7f43ff0a46 Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Fri, 11 Nov 2022 01:02:23 +0100 Subject: Ispravljena greška. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml | 6 ------ .../BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) delete mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml deleted file mode 100644 index 8317243..0000000 --- a/Client/BrzoDoLokacije/app/src/main/res/drawable/circle_view.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file 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 5289d88..01c5f65 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 @@ -38,7 +38,7 @@ android:layout_height="wrap_content" android:layout_marginTop="24dp" android:layout_marginEnd="24dp" - android:background="@drawable/circle_view" + android:src="@mipmap/ic_launcher_round" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/textView8" -- cgit v1.2.3 From 2b0cff82e4b127fd1caaec80d3302d08086a2a69 Mon Sep 17 00:00:00 2001 From: Jelena Petrovic Date: Fri, 11 Nov 2022 02:39:28 +0100 Subject: zapocet rad na dizajnu prikaza objave #30 --- .../.idea/deploymentTargetDropDown.xml | 17 -- .../src/main/res/layout/activity_single_post.xml | 173 ++++++++++++++++----- .../app/src/main/res/values/dimens.xml | 3 + 3 files changed, 136 insertions(+), 57 deletions(-) delete mode 100644 Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml (limited to 'Client') diff --git a/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml b/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index a3aab99..0000000 --- a/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml index 00d3460..436784e 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_single_post.xml @@ -1,53 +1,75 @@ - - - + android:layout_height="wrap_content" + android:gravity="bottom" + app:layout_constraintTop_toBottomOf="@id/rvMain" + tools:layout_editor_absoluteX="0dp"> + android:gravity="top|start" + android:padding="@dimen/text_padding" + android:text="Drzava, grad" + app:layout_constraintTop_toBottomOf="@+id/tvLocationType" + tools:layout_editor_absoluteX="0dp" /> + android:text="Naslov" + android:textSize="@dimen/header1_size" + android:textStyle="bold" + android:gravity="top|start" + android:padding="@dimen/text_padding"/> + android:gravity="top|start" + android:text="Tip lokacije" + android:padding="@dimen/text_padding" + app:layout_constraintTop_toBottomOf="@+id/tvTitle" + tools:layout_editor_absoluteX="0dp" /> + android:layout_height="wrap_content" + android:layout_marginTop="20dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvLocationParent"> + android:id="@+id/linearLayout" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + android:textStyle="bold" + app:layout_constraintEnd_toStartOf="@+id/tvNumberOfRatings" + tools:layout_editor_absoluteY="4dp" /> - - - + tools:layout_editor_absoluteY="4dp" /> - + android:background="@drawable/rounded_picture_background" + android:elevation="5dp" + android:padding="@dimen/component_padding" + app:layout_constraintTop_toBottomOf="@+id/linearLayout" + tools:layout_editor_absoluteX="0dp"> + + + + + + + + + + + + + + + + + + +