diff options
author | Jelena Petrovic <jelenapetrovic.7119@gmail.com> | 2022-12-06 06:06:02 +0100 |
---|---|---|
committer | Jelena Petrovic <jelenapetrovic.7119@gmail.com> | 2022-12-06 06:06:02 +0100 |
commit | 0a7dcb6d43f25b3657677d3dcc59af27f98b17e7 (patch) | |
tree | e8c33d826da31a745fdfa2bb95fa8f1a0d3c7a40 /Client | |
parent | 9902f26a53cd1e91295fc0b118737a430f46cae5 (diff) | |
parent | 8e563f959c168a9778658c5fa2a2b143730d44fa (diff) |
koflikt
Diffstat (limited to 'Client')
35 files changed, 1515 insertions, 518 deletions
diff --git a/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml b/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml index 41db9a0..0d90ad1 100644 --- a/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml +++ b/Client/BrzoDoLokacije/.idea/deploymentTargetDropDown.xml @@ -12,6 +12,10 @@ </deviceKey> </Target> </targetSelectedWithDropDown> +<<<<<<< HEAD <timeTargetWasSelectedWithDropDown value="2022-12-05T15:17:54.592850800Z" /> +======= + <timeTargetWasSelectedWithDropDown value="2022-12-06T03:10:09.596363200Z" /> +>>>>>>> 8e563f959c168a9778658c5fa2a2b143730d44fa </component> </project>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index 6e29823..a059c5b 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -38,6 +38,14 @@ android:usesCleartextTraffic="true" tools:targetApi="31"> <activity + android:name=".Activities.ActivityChangeUserData" + android:exported="false" + android:screenOrientation="portrait"> + <meta-data + android:name="android.app.lib_name" + android:value="" /> + </activity> + <activity android:name=".Activities.ActivityShowFollowersAndFollowing" android:exported="false" android:screenOrientation="portrait"> diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityChangeUserData.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityChangeUserData.kt new file mode 100644 index 0000000..3dee6ac --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityChangeUserData.kt @@ -0,0 +1,127 @@ +package com.example.brzodolokacije.Activities + +import android.graphics.Color +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.util.Log +import android.widget.EditText +import android.widget.ImageView +import android.widget.TextView +import android.widget.Toast +import androidx.core.view.isGone +import androidx.core.view.isVisible +import com.example.brzodolokacije.Models.UserReceive +import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + +class ActivityChangeUserData : AppCompatActivity() { + private lateinit var username:EditText + private lateinit var name:EditText + private lateinit var editName:ImageView + private lateinit var editUsername:ImageView + private lateinit var confirmName:ImageView + private lateinit var confirmUsername:ImageView + private lateinit var errorName:TextView + private lateinit var errorUsername:TextView + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_change_user_data) + + username=findViewById(R.id.tvActivityChangeUserDataUsername) + name=findViewById(R.id.tvActivityChangeUserDataName) + editName=findViewById(R.id.btnActivityChangeUserDataName) + editUsername=findViewById(R.id.btnActivityChangeUserDataUsername) + confirmName=findViewById(R.id.btnActivityChangeUserDataNameConfirm) + confirmUsername=findViewById(R.id.btnActivityChangeUserDataUsernameConfirm) + errorName=findViewById(R.id.btnActivityChangeUserDataNameError) + errorUsername=findViewById(R.id.btnActivityChangeUserDataUsernameError) + + editUsername.isClickable=true + editUsername.isVisible=true + editUsername.isEnabled=true + editUsername.isGone=false + confirmUsername.isClickable=false + confirmUsername.isVisible=false + confirmUsername.isEnabled=false + confirmUsername.isGone=true + + getUser() + + editUsername.setOnClickListener{ + username.setText("") + editUsername.isClickable=false + editUsername.isVisible=false + editUsername.isEnabled=false + editUsername.isGone=true + confirmUsername.isClickable=true + confirmUsername.isVisible=true + confirmUsername.isEnabled=true + confirmUsername.isGone=false + + //dodati on change listener + confirmUsername.setOnClickListener { + val api = RetrofitHelper.getInstance() + val token = SharedPreferencesHelper.getValue("jwt", this@ActivityChangeUserData) + var data = api.changeMyUsername("Bearer " + token,username.toString().trim()); + data.enqueue(object : Callback<Int> { + override fun onResponse( + call: Call<Int>, + response: Response<Int> + ) { + var res=response.body()!! + Log.d("res",res.toString()) + if(res==-1){ + errorUsername.setText("Izaberite drugo korisničko ime") + errorUsername.setTextColor(Color.RED) + } + else if(res==-2){ + errorUsername.setText("Nije moguće promeniti korisničko ime") + errorUsername.setTextColor(Color.RED) + } + else if(res==1){ + errorUsername.setText("Korisničko ime je promenjeno") + errorUsername.setTextColor(Color.GREEN) + confirmUsername.isClickable=false + confirmUsername.isVisible=false + editUsername.isClickable=true + editUsername.isVisible=true + } + } + + override fun onFailure(call: Call<Int>, t: Throwable) { + Log.d("changeUsername","failllllllllllllllllllllll") + + } + }) + + } + + } + + + } + + fun getUser(){ + val api = RetrofitHelper.getInstance() + val token = SharedPreferencesHelper.getValue("jwt", this@ActivityChangeUserData) + var data = api.selfProfile("Bearer " + token); + data.enqueue(object : Callback<UserReceive> { + override fun onResponse( + call: Call<UserReceive>, + response: Response<UserReceive> + ) { + var user=response.body()!! + username.setText(user.username) + name.setText(user.name) + } + + override fun onFailure(call: Call<UserReceive>, t: Throwable) {} + }) + + } +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt index c9ed2f7..2483e7e 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt @@ -7,13 +7,22 @@ import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.preference.PreferenceManager import android.util.Log + +import android.view.ViewGroup +import android.view.ViewGroup.LayoutParams +import android.widget.Button + import android.view.inputmethod.InputMethodManager import android.widget.EditText + import android.widget.ImageView import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat +import androidx.core.view.isGone +import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.auth0.android.jwt.JWT @@ -26,6 +35,7 @@ import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.example.brzodolokacije.databinding.ActivitySinglePostBinding import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.gson.Gson +import kotlinx.android.synthetic.main.activity_single_post.view.* import org.osmdroid.config.Configuration import org.osmdroid.tileprovider.tilesource.TileSourceFactory import org.osmdroid.util.GeoPoint @@ -49,17 +59,38 @@ class ActivitySinglePost : AppCompatActivity() { private var starNumber:Number=0 private lateinit var userData:UserReceive private lateinit var user:TextView + private lateinit var linearLayout2:ConstraintLayout + private lateinit var btnChangeHeightUp:ImageView + private lateinit var btnChangeHeightDown:ImageView + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding=ActivitySinglePostBinding.inflate(layoutInflater) setContentView(binding.root) post= intent.extras?.getParcelable("selectedPost")!! + btnChangeHeightUp=findViewById(R.id.activitySinglePostChangeHeightUp) + btnChangeHeightDown=findViewById(R.id.activitySinglePostChangeHeightDown) + + btnChangeHeightDown.isVisible=false + btnChangeHeightDown.isGone=true + btnChangeHeightDown.isClickable=false + btnChangeHeightUp.isVisible=true + btnChangeHeightUp.isGone=false + btnChangeHeightUp.isClickable=true + + linearLayout2=findViewById(R.id.linearLayout2) + + linearLayout2.setOnClickListener { + linearLayout2.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT; + } + //instantiate adapter and linearLayout adapterImages= PostImageAdapter(this@ActivitySinglePost, post.images as MutableList<PostImage>) layoutManagerImages= LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false) recyclerViewImages = binding.rvMain + /* buildRecyclerViewComments() requestGetComments() favouriteImage=binding.ivFavourite @@ -73,7 +104,7 @@ class ActivitySinglePost : AppCompatActivity() { loadFavourite() val alreadyrated= RatingReceive(starNumber.toInt(),post._id) requestAddRating(alreadyrated) - + */ binding.tvUser.setOnClickListener { val intent: Intent = Intent(this@ActivitySinglePost,ActivityUserProfile::class.java) var b= Bundle() @@ -84,6 +115,31 @@ class ActivitySinglePost : AppCompatActivity() { getMap() } + + + btnChangeHeightUp.setOnClickListener { + btnChangeHeightUp.isVisible=false + btnChangeHeightUp.isGone=true + btnChangeHeightUp.isClickable=false + btnChangeHeightDown.isVisible=true + btnChangeHeightDown.isGone=false + btnChangeHeightDown.isClickable=true + linearLayout2.setMinHeight(0); + linearLayout2.setMinimumHeight(0); + linearLayout2.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT; + } + btnChangeHeightDown.setOnClickListener { + btnChangeHeightDown.isVisible=false + btnChangeHeightDown.isGone=true + btnChangeHeightDown.isClickable=false + btnChangeHeightUp.isVisible=true + btnChangeHeightUp.isGone=false + btnChangeHeightUp.isClickable=true + linearLayout2.setMinHeight(0); + linearLayout2.setMinimumHeight(0); + linearLayout2.getLayoutParams().height= ViewGroup.LayoutParams.WRAP_CONTENT; + } + favouriteImage!!.setOnClickListener{ addRemoveFavourite() } @@ -120,16 +176,17 @@ class ActivitySinglePost : AppCompatActivity() { } }) + } fun getMap(){ - val mapDialogue = BottomSheetDialog(this@ActivitySinglePost, android.R.style.Theme_Black_NoTitleBar) + /*val mapDialogue = BottomSheetDialog(this@ActivitySinglePost, android.R.style.Theme_Black_NoTitleBar) mapDialogue.getWindow()?.setBackgroundDrawable(ColorDrawable(Color.argb(100, 0, 0, 0))) mapDialogue.setContentView(R.layout.map_dialogue) mapDialogue.setCancelable(true) - mapDialogue.setCanceledOnTouchOutside(true) + mapDialogue.setCanceledOnTouchOutside(true)*/ var map: MapView? = null Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this)); - map=mapDialogue.findViewById(R.id.MapDialogueMapView) + map=findViewById(R.id.MapDialogueMapView) //findViewById(R.id.MapDialogueMapView) as MapView map!!.setTileSource(TileSourceFactory.MAPNIK); map!!.setBuiltInZoomControls(true); @@ -145,11 +202,10 @@ class ActivitySinglePost : AppCompatActivity() { startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER) map!!.getOverlays().add(startMarker) map!!.controller.setCenter(LocMarker) - mapDialogue.show() - - } + } +/* fun buildRecyclerViewComments(){ recyclerViewComments=binding.rvComments adapterComments=CommentsAdapter(comments as MutableList<CommentSend>,this@ActivitySinglePost) @@ -424,4 +480,6 @@ class ActivitySinglePost : AppCompatActivity() { binding.tvCommentCount.text=(Integer.parseInt(binding.tvCommentCount.text.toString())+1).toString() binding.tvCommentCount.invalidate() } + + */ } 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/Adapters/CommentsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/CommentsAdapter.kt index 731566f..8f737a3 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/CommentsAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/CommentsAdapter.kt @@ -143,7 +143,7 @@ class CommentsAdapter (val items : MutableList<CommentSend>,val activity: Activi var adapter:CommentsAdapter=rv.adapter as CommentsAdapter adapter.items.add(0,newComment) rv.adapter=adapter - (activity as ActivitySinglePost).addedComment() + //(activity as ActivitySinglePost).addedComment() } private fun requestProfilePic(item:CommentSend){ diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentSinglePostComments.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentSinglePostComments.kt new file mode 100644 index 0000000..f2b11ab --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentSinglePostComments.kt @@ -0,0 +1,59 @@ +package com.example.brzodolokacije + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment + +// 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 [FragmentSinglePostComments.newInstance] factory method to + * create an instance of this fragment. + */ +class FragmentSinglePostComments : 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_single_post_comments, 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 FragmentSinglePostComments. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + FragmentSinglePostComments().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/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/FragmentMyProfileInfo.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt index 9cce17f..d6e345b 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt @@ -6,36 +6,19 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button +import androidx.core.content.ContextCompat.startActivity import androidx.fragment.app.Fragment import com.exam.DBHelper +import com.example.brzodolokacije.Activities.ActivityChangeUserData +import com.example.brzodolokacije.Activities.ActivityForgottenPassword import com.example.brzodolokacije.Activities.ActivityLoginRegister import com.example.brzodolokacije.R import com.example.brzodolokacije.Services.SharedPreferencesHelper -// 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 [FragmentMyProfileInfo.newInstance] factory method to - * create an instance of this fragment. - */ class FragmentMyProfileInfo : Fragment() { private lateinit var logout:Button - // 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) - } - - } + private lateinit var changeAccount:Button override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -45,9 +28,15 @@ class FragmentMyProfileInfo : Fragment() { var view=inflater.inflate(R.layout.fragment_my_profile_info, container, false) logout=view.findViewById<View>(R.id.buttonLogOut) as Button + changeAccount=view.findViewById(R.id.changeAccountData) + logout.setOnClickListener{ logOut() + } + changeAccount.setOnClickListener { + val intent = Intent (getActivity(), ActivityChangeUserData::class.java) + getActivity()?.startActivity(intent) } return view 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 714f994..76fa4e0 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,14 +63,19 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener { super.onCreate(savedInstanceState) setUpViewModel() binding=FragmentShowPostsBinding.inflate(layoutInflater) - //instantiate adapter and linearLayout adapterVar=ShowPostsAdapter(requireActivity()) linearManagerVar= LinearLayoutManager(activity) gridManagerVar=GridLayoutManager(activity,2) } fun searchText(){ - Log.d("MAIN","TODO") + if(searchBar.text==null || searchBar.text.toString().trim()=="") + return + var act=requireActivity() as NavigationActivity + act.searchQuery=searchBar.text.toString() + act.searchId="" + searchParams=SearchParams(searchBar.text.toString(),1,1) + requestToBack(searchParams!!) } fun onTextEnter(){ var api=RetrofitHelper.getInstance() @@ -115,6 +121,9 @@ class FragmentShowPosts : Fragment(), SwipeRefreshLayout.OnRefreshListener { searchBar.setOnItemClickListener(AdapterView.OnItemClickListener { parent, view, position, id -> val selected = parent.getItemAtPosition(position) as String selectedLocation = responseLocations!!.find { location -> location.name == selected } + var act=requireActivity() as NavigationActivity + act.searchQuery=selectedLocation!!.name + act.searchId=selectedLocation!!._id searchParams=SearchParams(selectedLocation!!._id,1,1)//to do sort type requestToBack(searchParams!!) @@ -211,12 +220,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/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.kt new file mode 100644 index 0000000..1a7e7da --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentSinglePostDescription.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 [FragmentSinglePostDescription.newInstance] factory method to + * create an instance of this fragment. + */ +class FragmentSinglePostDescription : 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_single_post_description, 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 FragmentSinglePostDescription. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + FragmentSinglePostDescription().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/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt index 60f243d..39527f2 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt @@ -112,4 +112,7 @@ interface IBackendApi { @GET("/api/Post/favourite/{id}") fun addRemoveFavourite(@Header("Authorization") authHeader:String,@Path("id") id:String):Call <Boolean> + @GET("/api/user/{newUsername}/changeMyUsername") + fun changeMyUsername(@Header("Authorization") authHeader:String,@Path("newUsername") newUsername:String):Call<Int> + }
\ No newline at end of file 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 43c2109..88685e4 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 diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient2.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient2.xml new file mode 100644 index 0000000..0d73580 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient2.xml @@ -0,0 +1,28 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt" + android:width="324dp" + android:height="43dp" + android:viewportWidth="324" + android:viewportHeight="43"> + <group> + <path + android:pathData="M0 0H324V43H0z"> + <aapt:attr name="android:fillColor"> + <gradient + android:type="linear" + android:startX="162" + android:startY="0" + android:endX="162" + android:endY="43"> + <item + android:color="#1A192124" + android:offset="0.2"/> + + <item + android:color="#FA192124" + android:offset="1"/> + </gradient> + </aapt:attr> + </path> + </group> +</vector>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_logout_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_logout_24.xml new file mode 100644 index 0000000..ac81ab8 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_logout_24.xml @@ -0,0 +1,5 @@ +<vector android:autoMirrored="true" android:height="24dp" + android:tint="#747474" android:viewportHeight="24" + android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M17,7l-1.41,1.41L18.17,11H8v2h10.17l-2.58,2.58L17,17l5,-5zM4,5h8V3H4c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h8v-2H4V5z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_account_circle_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_account_circle_24.xml new file mode 100644 index 0000000..b5e6c8c --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_account_circle_24.xml @@ -0,0 +1,6 @@ +<vector android:height="24dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM7.35,18.5C8.66,17.56 10.26,17 12,17s3.34,0.56 4.65,1.5C15.34,19.44 13.74,20 12,20S8.66,19.44 7.35,18.5zM18.14,17.12L18.14,17.12C16.45,15.8 14.32,15 12,15s-4.45,0.8 -6.14,2.12l0,0C4.7,15.73 4,13.95 4,12c0,-4.42 3.58,-8 8,-8s8,3.58 8,8C20,13.95 19.3,15.73 18.14,17.12z"/> + <path android:fillColor="@android:color/white" android:pathData="M12,6c-1.93,0 -3.5,1.57 -3.5,3.5S10.07,13 12,13s3.5,-1.57 3.5,-3.5S13.93,6 12,6zM12,11c-0.83,0 -1.5,-0.67 -1.5,-1.5S11.17,8 12,8s1.5,0.67 1.5,1.5S12.83,11 12,11z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_change_circle_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_change_circle_24.xml new file mode 100644 index 0000000..1a36910 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_change_circle_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8s8,3.59 8,8S16.41,20 12,20zM16.17,14.76l-1.1,-1.1c0.71,-1.33 0.53,-3.01 -0.59,-4.13C13.79,8.84 12.9,8.5 12,8.5c-0.03,0 -0.06,0.01 -0.09,0.01L13,9.6l-1.06,1.06L9.11,7.83L11.94,5L13,6.06l-0.96,0.96c1.27,0.01 2.53,0.48 3.5,1.44C17.24,10.17 17.45,12.82 16.17,14.76zM14.89,16.17L12.06,19L11,17.94l0.95,-0.95c-1.26,-0.01 -2.52,-0.5 -3.48,-1.46c-1.71,-1.71 -1.92,-4.35 -0.64,-6.29l1.1,1.1c-0.71,1.33 -0.53,3.01 0.59,4.13c0.7,0.7 1.63,1.04 2.56,1.01L11,14.4l1.06,-1.06L14.89,16.17z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_edit_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_edit_24.xml new file mode 100644 index 0000000..05e90d7 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_edit_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M14.06,9.02l0.92,0.92L5.92,19L5,19v-0.92l9.06,-9.06M17.66,3c-0.25,0 -0.51,0.1 -0.7,0.29l-1.83,1.83 3.75,3.75 1.83,-1.83c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.2,-0.2 -0.45,-0.29 -0.71,-0.29zM14.06,6.19L3,17.25L3,21h3.75L17.81,9.94l-3.75,-3.75z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_share_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_share_24.xml new file mode 100644 index 0000000..e95b628 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_share_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92s2.92,-1.31 2.92,-2.92c0,-1.61 -1.31,-2.92 -2.92,-2.92zM18,4c0.55,0 1,0.45 1,1s-0.45,1 -1,1 -1,-0.45 -1,-1 0.45,-1 1,-1zM6,13c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1zM18,20.02c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1 1,0.45 1,1 -0.45,1 -1,1z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_stats_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_stats_24.xml new file mode 100644 index 0000000..05eb65f --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_stats_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M19.88,18.47c0.44,-0.7 0.7,-1.51 0.7,-2.39c0,-2.49 -2.01,-4.5 -4.5,-4.5s-4.5,2.01 -4.5,4.5s2.01,4.5 4.49,4.5c0.88,0 1.7,-0.26 2.39,-0.7L21.58,23L23,21.58L19.88,18.47zM16.08,18.58c-1.38,0 -2.5,-1.12 -2.5,-2.5c0,-1.38 1.12,-2.5 2.5,-2.5s2.5,1.12 2.5,2.5C18.58,17.46 17.46,18.58 16.08,18.58zM15.72,10.08c-0.74,0.02 -1.45,0.18 -2.1,0.45l-0.55,-0.83l-3.8,6.18l-3.01,-3.52l-3.63,5.81L1,17l5,-8l3,3.5L13,6C13,6 15.72,10.08 15.72,10.08zM18.31,10.58c-0.64,-0.28 -1.33,-0.45 -2.05,-0.49c0,0 5.12,-8.09 5.12,-8.09L23,3.18L18.31,10.58z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_check_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_check_24.xml new file mode 100644 index 0000000..a8e2c6e --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_check_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M9,16.17L5.53,12.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41l4.18,4.18c0.39,0.39 1.02,0.39 1.41,0L20.29,7.71c0.39,-0.39 0.39,-1.02 0,-1.41 -0.39,-0.39 -1.02,-0.39 -1.41,0L9,16.17z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_favorite_border_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_favorite_border_24.xml new file mode 100644 index 0000000..0444f34 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_favorite_border_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M19.66,3.99c-2.64,-1.8 -5.9,-0.96 -7.66,1.1 -1.76,-2.06 -5.02,-2.91 -7.66,-1.1 -1.4,0.96 -2.28,2.58 -2.34,4.29 -0.14,3.88 3.3,6.99 8.55,11.76l0.1,0.09c0.76,0.69 1.93,0.69 2.69,-0.01l0.11,-0.1c5.25,-4.76 8.68,-7.87 8.55,-11.75 -0.06,-1.7 -0.94,-3.32 -2.34,-4.28zM12.1,18.55l-0.1,0.1 -0.1,-0.1C7.14,14.24 4,11.39 4,8.5 4,6.5 5.5,5 7.5,5c1.54,0 3.04,0.99 3.57,2.36h1.87C13.46,5.99 14.96,5 16.5,5c2,0 3.5,1.5 3.5,3.5 0,2.89 -3.14,5.74 -7.9,10.05z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_down_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_down_24.xml new file mode 100644 index 0000000..ee6e4de --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_down_24.xml @@ -0,0 +1,5 @@ +<vector android:height="30dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="30dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M8.12,9.29L12,13.17l3.88,-3.88c0.39,-0.39 1.02,-0.39 1.41,0 0.39,0.39 0.39,1.02 0,1.41l-4.59,4.59c-0.39,0.39 -1.02,0.39 -1.41,0L6.7,10.7c-0.39,-0.39 -0.39,-1.02 0,-1.41 0.39,-0.38 1.03,-0.39 1.42,0z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_up_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_up_24.xml new file mode 100644 index 0000000..0d6676b --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_keyboard_arrow_up_24.xml @@ -0,0 +1,5 @@ +<vector android:height="30dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="30dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M8.12,14.71L12,10.83l3.88,3.88c0.39,0.39 1.02,0.39 1.41,0 0.39,-0.39 0.39,-1.02 0,-1.41L12.7,8.71c-0.39,-0.39 -1.02,-0.39 -1.41,0L6.7,13.3c-0.39,0.39 -0.39,1.02 0,1.41 0.39,0.38 1.03,0.39 1.42,0z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_star_outline_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_star_outline_24.xml new file mode 100644 index 0000000..e97ab0a --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_star_outline_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#747474" + android:viewportHeight="24" android:viewportWidth="24" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M19.65,9.04l-4.84,-0.42 -1.89,-4.45c-0.34,-0.81 -1.5,-0.81 -1.84,0L9.19,8.63l-4.83,0.41c-0.88,0.07 -1.24,1.17 -0.57,1.75l3.67,3.18 -1.1,4.72c-0.2,0.86 0.73,1.54 1.49,1.08l4.15,-2.5 4.15,2.51c0.76,0.46 1.69,-0.22 1.49,-1.08l-1.1,-4.73 3.67,-3.18c0.67,-0.58 0.32,-1.68 -0.56,-1.75zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_change_user_data.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_change_user_data.xml new file mode 100644 index 0000000..39362b7 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_change_user_data.xml @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:padding="16dp" + tools:context=".Activities.ActivityChangeUserData"> + + <ImageView + android:id="@+id/btnActivityShowFollowersAndFollowingBackToUser" + android:layout_width="35dp" + android:layout_height="35dp" + android:clickable="true" + android:src="@drawable/ic_baseline_arrow_back" + android:textAllCaps="false" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> + + <TextView + android:id="@+id/tvActivityUserProfileName" + style="@style/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_column="1" + android:layout_gravity="center" + android:layout_marginTop="2dp" + + android:text="Izmeni profil" + app:layout_constraintStart_toEndOf="@+id/btnActivityShowFollowersAndFollowingBackToUser" + app:layout_constraintTop_toTopOf="parent" /> + + <androidx.cardview.widget.CardView + android:id="@+id/cvFragmentHomePageProfile" + android:layout_width="130dp" + android:layout_height="130dp" + android:layout_gravity="center" + android:layout_marginTop="24dp" + android:elevation="10dp" + app:cardCornerRadius="250dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvActivityUserProfileName"> + + <ImageView + + android:id="@+id/tvActivityProfileProfilePicture" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:elevation="10dp" + android:scaleType="centerCrop" + android:src="@drawable/ic_baseline_person_24" + tools:ignore="ContentDescription" /> + + + </androidx.cardview.widget.CardView> + + <androidx.cardview.widget.CardView + android:id="@+id/ChangeProfileEditImage" + android:layout_width="50dp" + android:layout_height="50dp" + android:layout_gravity="center" + android:layout_marginTop="90dp" + android:elevation="5dp" + app:cardCornerRadius="250dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="@+id/cvFragmentHomePageProfile" + app:layout_constraintTop_toTopOf="@+id/cvFragmentHomePageProfile"> + + <ImageView + android:layout_width="50dp" + android:layout_height="50dp" + android:layout_gravity="bottom|right" + android:background="@color/white" + android:elevation="20dp" + android:src="@drawable/ic_outline_edit_24" /> + </androidx.cardview.widget.CardView> + + <TextView + android:id="@+id/changeDataName" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="60dp" + android:layout_marginEnd="337dp" + android:text="Ime" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/cvFragmentHomePageProfile" /> + + <EditText + android:id="@+id/tvActivityChangeUserDataName" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:ems="10" + android:inputType="textPersonName" + android:text="Name" + app:layout_constraintEnd_toStartOf="@+id/btnActivityChangeUserDataName" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/changeDataName" /> + + <TextView + android:id="@+id/changeDataUsername" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="40dp" + android:layout_marginEnd="333dp" + android:text="Korisničko ime" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvActivityChangeUserDataName" /> + + <EditText + android:id="@+id/tvActivityChangeUserDataUsername" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:ems="10" + android:inputType="textPersonName" + android:text="Name" + app:layout_constraintEnd_toStartOf="@+id/btnActivityChangeUserDataUsername" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/changeDataUsername" /> + + <Button + android:id="@+id/button" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="140dp" + android:text="Izmeni lozinku" + app:shapeAppearanceOverlay="@style/Circular" + + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvActivityChangeUserDataUsername" /> + + <Button + android:id="@+id/button2" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + app:shapeAppearanceOverlay="@style/Circular" + + android:text="Sačuvaj izmene" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/button" /> + + <ImageView + android:clickable="true" + android:id="@+id/btnActivityChangeUserDataName" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="12dp" + android:layout_marginEnd="4dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/changeDataName" + app:srcCompat="@drawable/ic_outline_edit_24" /> + <ImageView + android:id="@+id/btnActivityChangeUserDataNameConfirm" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="12dp" + android:layout_marginEnd="4dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/changeDataName" + app:srcCompat="@drawable/ic_round_check_24" /> + + <ImageView + android:clickable="true" + android:id="@+id/btnActivityChangeUserDataUsername" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="12dp" + android:layout_marginEnd="4dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/changeDataUsername" + app:srcCompat="@drawable/ic_outline_edit_24" /> + <ImageView + android:id="@+id/btnActivityChangeUserDataUsernameConfirm" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="12dp" + android:layout_marginEnd="4dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/changeDataUsername" + app:srcCompat="@drawable/ic_round_check_24" /> + + <TextView + android:id="@+id/btnActivityChangeUserDataNameError" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="TextView" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvActivityChangeUserDataName" /> + + <TextView + android:id="@+id/btnActivityChangeUserDataUsernameError" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="TextView" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvActivityChangeUserDataUsername" /> + +</androidx.constraintlayout.widget.ConstraintLayout>
\ 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 3824f69..744a2a2 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,322 +1,194 @@ <?xml version="1.0" encoding="utf-8"?> - <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" + xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="@dimen/component_padding" - xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_height="match_parent" + xmlns:app="http://schemas.android.com/apk/res-auto" tools:context=".Activities.ActivitySinglePost"> - <androidx.core.widget.NestedScrollView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:fillViewport="true"> - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - <androidx.recyclerview.widget.RecyclerView + + <androidx.recyclerview.widget.RecyclerView android:id="@+id/rvMain" android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_margin="0dp" android:paddingBottom="@dimen/component_padding" - android:layout_height="400dp" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - </androidx.recyclerview.widget.RecyclerView> - - - -<androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:layout_constraintTop_toBottomOf="@id/rvMain" - tools:layout_editor_absoluteX="0dp"> - - <TextView - android:id="@+id/tvLocationParent" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="top|start" - android:padding="@dimen/text_padding" - android:text="Drzava, grad" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/tvLocationType" /> - - <TextView - android:id="@+id/tvTitle" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="top|start" - android:padding="@dimen/text_padding" - android:text="Naslov" - android:textSize="@dimen/header1_size" - android:textStyle="bold" - app:layout_constraintStart_toStartOf="parent" /> - - <TextView - android:id="@+id/tvLocationType" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="top|start" - android:padding="@dimen/text_padding" - android:text="Tip lokacije" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/tvTitle" /> - - <TextView - android:id="@+id/tvUser" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:clickable="true" - android:gravity="top|start" - android:padding="@dimen/text_padding" - android:text="User" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/tvLocationParent" /> - - <ImageView - android:id="@+id/ivFavourite" - android:layout_width="40dp" - android:layout_height="40dp" - android:layout_marginBottom="17dp" - android:layout_marginRight="30dp" - android:layout_marginTop="30dp" - android:clickable="true" - android:src="@drawable/ic_baseline_favorite_border_24" - app:layout_constraintBottom_toTopOf="@+id/tvLocationType" + app:layout_constraintBottom_toTopOf="@+id/linearLayout2" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/constraintLayout" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="36dp" + android:id="@+id/linearLayout2" + android:layout_width="408dp" + android:layout_height="723dp" + android:layout_marginBottom="8dp" + android:background="@drawable/view_top_corner_radius" + android:elevation="30dp" + android:padding="16dp" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="1.0" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/tvLocationParent"> + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent"> - <LinearLayout - android:id="@+id/linearLayout" + + <TextView + android:id="@+id/tvTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" + android:layout_marginTop="24dp" + android:gravity="top|start" + android:padding="@dimen/text_padding" + android:text="Naslov" + style="@style/title" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <ImageView - android:id="@+id/star1" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1" - android:src="@android:drawable/btn_star_big_on" /> + app:layout_constraintTop_toTopOf="parent" /> - <ImageView - android:id="@+id/star2" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1" - android:src="@android:drawable/btn_star_big_on" /> + <ImageView + android:id="@+id/imageView12" + android:layout_width="30dp" + android:layout_height="30dp" + android:src="@drawable/ic_baseline_location_on_24" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvTitle" /> - <ImageView - android:id="@+id/star3" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1" - android:src="@android:drawable/btn_star_big_on" /> + <TextView + android:id="@+id/tvLocationParent" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="top|start" + android:padding="@dimen/text_padding" + android:text="Drzava, grad" + app:layout_constraintStart_toEndOf="@+id/imageView12" + app:layout_constraintTop_toBottomOf="@+id/tvTitle" /> - <ImageView - android:id="@+id/star4" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1" - android:src="@android:drawable/btn_star_big_on" /> + <TextView + android:id="@+id/tvLocationType" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginEnd="16dp" + android:gravity="top|start" + android:padding="@dimen/text_padding" + android:text="Tip lokacije" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvTitle" /> - <ImageView - android:id="@+id/star5" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1" - android:src="@android:drawable/btn_star_big_on" /> - </LinearLayout> + <TextView + android:id="@+id/tvUser" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="4dp" + android:clickable="true" + android:gravity="top|start" + android:padding="@dimen/text_padding" + android:text="User" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvLocationType" /> <TextView android:id="@+id/tvRating" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:layout_marginEnd="4dp" android:padding="@dimen/text_padding" android:text="4.2" android:textStyle="bold" app:layout_constraintEnd_toStartOf="@+id/tvNumberOfRatings" - tools:layout_editor_absoluteY="4dp" /> + app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/tvNumberOfRatings" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginTop="24dp" android:padding="@dimen/text_padding" android:text="(10,500)" app:layout_constraintEnd_toEndOf="parent" - tools:layout_editor_absoluteY="4dp" /> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/constraintLayout3" - android:layout_width="match_parent" - android:layout_height="wrap_content" - 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"> - - <TextView - android:id="@+id/tvDescriptionLabel" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="top|start" - android:padding="@dimen/text_padding" - android:text="Opis" - android:textStyle="bold" /> - - <TextView - android:id="@+id/tvDescription" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" - app:layout_constraintTop_toBottomOf="@+id/tvDescriptionLabel" /> - - </androidx.constraintlayout.widget.ConstraintLayout> + app:layout_constraintTop_toTopOf="parent" /> + + <ImageView + android:id="@+id/activitySinglePostChangeHeightUp" + android:layout_width="100dp" + android:layout_height="30dp" + android:clickable="true" + android:src="@drawable/ic_round_keyboard_arrow_up_24" + android:text="Button" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <ImageView + android:id="@+id/activitySinglePostChangeHeightDown" + android:layout_width="100dp" + android:layout_height="30dp" + android:clickable="true" + android:src="@drawable/ic_round_keyboard_arrow_down_24" + android:text="Button" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - <LinearLayout - android:id="@+id/linearLayout2" + <org.osmdroid.views.MapView + android:id="@+id/MapDialogueMapView" android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - android:orientation="horizontal" - android:paddingVertical="@dimen/component_padding" - app:layout_constraintTop_toBottomOf="@id/constraintLayout3"> - - <ImageButton - android:id="@+id/rateStar1" - android:layout_width="30dp" - android:layout_height="40dp" - android:layout_gravity="center_vertical" - android:layout_weight="1" - android:backgroundTint="@color/white" - android:scaleType="centerCrop" - android:src="@drawable/empty_star" /> - - <ImageButton - android:id="@+id/rateStar2" - android:layout_width="30dp" - android:layout_height="40dp" - android:layout_gravity="center_vertical" - android:layout_weight="1" - android:backgroundTint="@color/white" - android:scaleType="centerCrop" - android:src="@drawable/empty_star" /> - - <ImageButton - android:id="@+id/rateStar3" - android:layout_width="30dp" - android:layout_height="40dp" - android:layout_gravity="center_vertical" - android:layout_weight="1" - android:backgroundTint="@color/white" - android:scaleType="centerCrop" - android:src="@drawable/empty_star" /> - - <ImageButton - android:id="@+id/rateStar4" - android:layout_width="30dp" - android:layout_height="40dp" - android:layout_gravity="center_vertical" - android:layout_weight="1" - android:backgroundTint="@color/white" - android:scaleType="centerCrop" - android:src="@drawable/empty_star" /> - - <ImageButton - android:id="@+id/rateStar5" - android:layout_width="30dp" - android:layout_height="40dp" - android:layout_gravity="center_vertical" - android:layout_weight="1" - android:backgroundTint="@color/white" - android:scaleType="centerCrop" - android:src="@drawable/empty_star" /> - - <Button - android:id="@+id/submitRating" - android:layout_width="30dp" - android:layout_height="40dp" - android:layout_gravity="center_vertical" - android:layout_weight="1" - android:backgroundTint="@color/white" - android:text="ok" - android:textColor="@color/black" /> - </LinearLayout> + android:layout_height="150dp" + android:layout_marginTop="8dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvUser" /> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - app:layout_constraintTop_toBottomOf="@id/linearLayout2"> + android:layout_height="400dp" + android:layout_marginTop="8dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/MapDialogueMapView"> - <LinearLayout - android:id="@+id/postCommentLayout" - android:layout_width="match_parent" + <Button + android:id="@+id/btnActivitySinglePostDescription" + android:layout_width="150dp" android:layout_height="wrap_content" - android:orientation="horizontal" - app:layout_constraintStart_toStartOf="parent"> - - <EditText - android:id="@+id/NewComment" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:hint="Unesite komentar ovde" /> - - <ImageButton - android:id="@+id/btnPostComment" - android:layout_width="50dp" - android:layout_height="50dp" - android:backgroundTint="@color/white" - android:scaleType="fitCenter" - android:src="@drawable/post_comment" /> - </LinearLayout> + android:layout_marginStart="8dp" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:backgroundTint="#FFFFFF" + android:stateListAnimator="@null" + android:text="opis" + android:textColor="@color/cardview_dark_background" + app:layout_constraintBottom_toTopOf="@+id/flFragmentProfileFragmentContainer" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - <TextView - android:id="@+id/tvCommentLabel" - android:layout_width="wrap_content" + <Button + android:id="@+id/btnActivitySinglePostComments" + android:layout_width="150dp" android:layout_height="wrap_content" - android:padding="@dimen/text_padding" + android:layout_marginTop="8dp" + android:layout_marginEnd="8dp" + android:layout_marginBottom="8dp" + android:backgroundTint="#FFFFFF" + android:stateListAnimator="@null" android:text="Komentari" - android:textStyle="bold" - app:layout_constraintTop_toBottomOf="@id/postCommentLayout" /> - - <TextView - android:id="@+id/tvCommentCount" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:padding="@dimen/text_padding" - android:text="0" - app:layout_constraintStart_toEndOf="@id/tvCommentLabel" - app:layout_constraintTop_toBottomOf="@id/postCommentLayout" /> - - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/rvComments" - android:layout_width="match_parent" - android:layout_height="0dp" - android:nestedScrollingEnabled="false" - app:layout_constraintTop_toBottomOf="@id/tvCommentLabel"> - - </androidx.recyclerview.widget.RecyclerView> + android:textColor="@color/cardview_dark_background" + app:layout_constraintBottom_toTopOf="@+id/flFragmentProfileFragmentContainer" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <FrameLayout + android:id="@+id/flFragmentProfileFragmentContainer" + android:layout_width="409dp" + android:layout_height="330dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/btnActivitySinglePostComments" + app:layout_constraintVertical_bias="1.0"></FrameLayout> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> -</androidx.constraintlayout.widget.ConstraintLayout> -</androidx.constraintlayout.widget.ConstraintLayout> -</androidx.core.widget.NestedScrollView> -</androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml index cbcafc5..5c0ceb8 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml @@ -12,10 +12,10 @@ android:layout_height="match_parent"> <ImageView - + android:scaleType="centerCrop" android:id="@+id/imageView3" android:layout_width="match_parent" - android:layout_height="250dp" + android:layout_height="180dp" android:foreground="@drawable/b3" android:foregroundGravity="center_vertical|center|center_horizontal|fill" android:src="@drawable/b3" @@ -28,15 +28,15 @@ android:id="@+id/tvFragmentProfileInfoContainer" android:layout_width="0dp" - android:layout_height="240dp" + android:layout_height="199dp" android:layout_marginStart="20dp" - android:layout_marginTop="120dp" + android:layout_marginTop="90dp" android:layout_marginEnd="20dp" android:adjustViewBounds="true" - android:background="@drawable/profile_view_background" - + android:background="#E8FFFFFF" android:elevation="1dp" android:scaleType="fitEnd" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" @@ -46,10 +46,10 @@ <androidx.cardview.widget.CardView android:id="@+id/cvFragmentHomePageProfile" - android:layout_width="130dp" - android:layout_height="130dp" + android:layout_width="120dp" + android:layout_height="120dp" android:layout_gravity="center" - android:layout_marginTop="60dp" + android:layout_marginTop="24dp" android:elevation="10dp" app:cardCornerRadius="250dp" app:layout_constraintEnd_toEndOf="parent" @@ -74,55 +74,54 @@ android:background="?android:attr/listDivider" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/btnActivityUserProfileShowPosts" /> + app:layout_constraintTop_toBottomOf="@+id/buttons" /> + + <LinearLayout + android:id="@+id/buttons" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:weightSum="3" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer"> <Button + android:layout_weight="1" android:id="@+id/btnActivityUserProfileShowPosts" - android:layout_width="wrap_content" + android:layout_width="120dp" android:layout_height="wrap_content" - android:layout_marginStart="20dp" - android:layout_marginTop="4dp" android:backgroundTint="#FFFFFF" android:stateListAnimator="@null" android:text="Objave" - android:textColor="@color/cardview_dark_background" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + /> <Button + android:layout_weight="1" android:id="@+id/btnFragmentUserProfileShowData" - android:layout_width="wrap_content" + android:layout_width="110dp" android:layout_height="wrap_content" - android:layout_marginTop="4dp" - android:layout_marginEnd="20dp" android:backgroundTint="#FFFFFF" android:stateListAnimator="@null" - android:text="Podaci" - + android:text="Nalog" android:textColor="@color/cardview_dark_background" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="1.0" - app:layout_constraintStart_toEndOf="@+id/btnFragmentUserProfileShowRecensions" - app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + /> <Button android:id="@+id/btnFragmentUserProfileShowRecensions" - android:layout_width="wrap_content" + android:layout_width="120dp" android:layout_height="wrap_content" - android:layout_marginStart="36dp" - android:layout_marginTop="4dp" android:backgroundTint="#FFFFFF" android:stateListAnimator="@null" android:text="Recenzije" android:textColor="@color/cardview_dark_background" - app:layout_constraintStart_toEndOf="@+id/btnActivityUserProfileShowPosts" - app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> - + /> + </LinearLayout> <FrameLayout + android:layout_weight="1" android:id="@+id/flActivityProfileFragmentContainer" - android:layout_width="409dp" - android:layout_height="319dp" + android:layout_width="match_parent" + android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" @@ -132,135 +131,156 @@ <TableLayout - android:layout_width="363dp" - - android:layout_height="wrap_content" - android:layout_marginStart="30dp" - android:layout_marginTop="5dp" - android:layout_marginEnd="30dp" - android:layout_marginBottom="8dp" + android:layout_width="350dp" + android:layout_height="140dp" + android:layout_marginStart="35dp" + android:layout_marginEnd="35dp" android:elevation="1dp" android:numColumns="3" - - android:stretchColumns="1" app:layout_constraintBottom_toBottomOf="@+id/tvFragmentProfileInfoContainer" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/cvFragmentHomePageProfile" - app:layout_constraintVertical_bias="0.35000002"> + app:layout_constraintTop_toTopOf="@+id/tvFragmentProfileInfoContainer" + app:layout_constraintVertical_bias="0.88"> <TableRow - android:layout_width="match_parent" + android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_column="1"> + android:layout_column="1" + > <TextView android:id="@+id/tvActivityUserProfileName" android:layout_width="wrap_content" android:layout_height="match_parent" - android:layout_column="1" android:layout_gravity="center" android:text="Petar Petrović" - android:textStyle="bold" - android:textSize="23sp" /> + android:textSize="23sp" + android:textStyle="bold" /> </TableRow> - <TableRow android:layout_marginTop="20dp"> - + <TableRow + android:gravity="center" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="5dp"> + <LinearLayout + android:orientation="horizontal" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:weightSum="3" + > <TextView android:id="@+id/tvFragmentUserProfilePosts" - android:layout_width="105dp" + android:layout_weight="1" + android:backgroundTint="@color/white" android:gravity="center" - android:text="OBJAVE" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:textSize="14sp" android:stateListAnimator="@null" - android:backgroundTint="@color/white" - android:textColor="#757471"/> + android:text="OBJAVE" + + android:textColor="#757471" /> <Button android:id="@+id/tvActivityUserProfileFollowers" android:layout_width="110dp" - android:layout_height="28dp" + android:layout_height="27dp" android:layout_margin="0dp" android:backgroundTint="@color/white" android:clickable="true" + android:layout_weight="1" android:gravity="center" android:padding="0dp" android:stateListAnimator="@null" android:text="PRATIOCI" android:textColor="#757471" - + android:textSize="14sp" tools:ignore="TouchTargetSizeCheck" /> <Button + android:textSize="14sp" android:id="@+id/tvActivityUserProfileFollow" android:layout_width="110dp" - android:layout_height="28dp" + android:layout_height="27dp" android:layout_margin="0dp" android:backgroundTint="@color/white" android:clickable="true" + android:layout_weight="1" android:gravity="center" android:padding="0dp" android:stateListAnimator="@null" android:text="PRAĆENJA" android:textColor="#757471" tools:ignore="TouchTargetSizeCheck" /> + </LinearLayout> + </TableRow> <TableRow - android:layout_height="wrap_content" - > + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_gravity="center" + android:layout_height="wrap_content"> + <LinearLayout> <TextView android:id="@+id/tvActivityUserProfilePostsNo" android:layout_width="110dp" android:layout_height="wrap_content" android:gravity="center" android:text="156" + android:textSize="20dp" android:textStyle="bold" /> <TextView - android:id="@+id/tvActivityUserProfileFollowersNo" android:layout_width="110dp" + android:layout_height="wrap_content" + android:id="@+id/tvActivityUserProfileFollowersNo" android:gravity="center" android:text="50" android:textSize="20dp" - android:textStyle="bold"/> + android:textStyle="bold" /> <TextView android:id="@+id/tvActivityUserProfileFollowNo" android:layout_width="110dp" + android:layout_height="wrap_content" android:gravity="center" android:text="40" android:textSize="20dp" - android:textStyle="bold"/> - + android:textStyle="bold" /> + </LinearLayout> </TableRow> - <TableRow - android:layout_height="wrap_content" - android:layout_marginTop="10dp" - > - <androidx.constraintlayout.widget.ConstraintLayout android:layout_span="3"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" + android:layout_marginStart="10dp" + android:layout_marginEnd="10dp" + android:layout_gravity="center"> <Button android:id="@+id/btnActivityUserProfileFollow" android:layout_width="280dp" - android:layout_height="30dp" - android:layout_marginStart="16dp" + android:layout_height="35dp" + android:backgroundTint="@color/button_main" android:clickable="true" android:drawableLeft="@drawable/ic_outline_person_add_alt_24" android:insetTop="0dp" android:insetBottom="0dp" - android:backgroundTint="@color/button_main" android:text="PRATI" android:visibility="visible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.13" + app:layout_constraintVertical_bias="0.0" app:shapeAppearanceOverlay="@style/Circular" tools:ignore="TouchTargetSizeCheck" /> @@ -268,29 +288,26 @@ android:id="@+id/btnActivityUserProfileUnFollow" android:layout_width="280dp" - android:layout_height="30dp" - android:layout_marginStart="16dp" + android:layout_height="35dp" + android:backgroundTint="@color/unfollow" android:clickable="false" android:drawableLeft="@drawable/ic_outline_person_remove_24" android:insetTop="0dp" android:insetBottom="0dp" - android:text="NE PRATI više" - android:backgroundTint="@color/unfollow" + android:text="NE PRATI više" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.13" + app:layout_constraintVertical_bias="0.0" app:shapeAppearanceOverlay="@style/Circular" tools:ignore="TouchTargetSizeCheck" /> - <ImageButton android:id="@+id/activityUserProfileOpenChat" android:layout_width="35dp" - android:layout_height="30dp" + android:layout_height="35dp" android:layout_gravity="center" - android:layout_marginEnd="16dp" android:height="40dp" android:background="@drawable/rounded_button" android:backgroundTint="@color/button_main" @@ -298,11 +315,10 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.0" app:shapeAppearanceOverlay="@style/Circular" tools:ignore="SpeakableTextPresentCheck,TouchTargetSizeCheck" /> + </androidx.constraintlayout.widget.ConstraintLayout> - </TableRow> </TableLayout> </androidx.constraintlayout.widget.ConstraintLayout> 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" diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_profile_info.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_profile_info.xml index 4a91f49..eaf014d 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_profile_info.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_profile_info.xml @@ -4,27 +4,64 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:orientation="vertical" tools:context=".Fragments.FragmentMyProfileInfo"> - <!-- TODO: Update blank fragment layout --> - - <TextView - android:id="@+id/textView5" + <LinearLayout android:layout_width="match_parent" - android:layout_height="match_parent" - android:text="Moji podaci" - tools:layout_editor_absoluteX="0dp" - tools:layout_editor_absoluteY="0dp" /> + android:layout_height="0dp" + android:orientation="vertical" + app:layout_constraintBottom_toTopOf="@+id/buttonLogOut" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <Button + android:id="@+id/changeAccountData" + style="@style/clean_button_margin" + android:drawableLeft="@drawable/ic_outline_account_circle_24" + android:text="Izmena Naloga" /> + + <Button + android:id="@+id/ChangePassword" + style="@style/clean_button_margin" + android:drawableLeft="@drawable/ic_outline_change_circle_24" + android:text="Promena Lozinke" /> + + <Button + android:id="@+id/getAccoutStatistics" + style="@style/clean_button_margin" + android:drawableLeft="@drawable/ic_outline_stats_24" + android:text="Pregled statistike" /> + + <Button + android:id="@+id/getMyFavorite" + style="@style/clean_button_margin" + android:drawableLeft="@drawable/ic_round_favorite_border_24" + android:text="Objave koje vam se sviđaju" /> + + <Button + android:id="@+id/inviteFriends" + style="@style/clean_button_margin" + android:drawableLeft="@drawable/ic_outline_share_24" + android:text="Pozovite prijatelje" /> + </LinearLayout> <Button android:id="@+id/buttonLogOut" - android:layout_width="wrap_content" + style="@style/Circular" + android:layout_width="0dp" android:layout_height="wrap_content" - android:text="Log out" - app:layout_constraintBottom_toBottomOf="@+id/textView5" - app:layout_constraintEnd_toEndOf="@+id/textView5" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="@+id/textView5" /> + android:layout_gravity="bottom" + android:layout_marginStart="16dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="16dp" + android:drawableLeft="@drawable/ic_baseline_logout_24" + android:text="Izlogujte se" + android:drawableTint="@color/white" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml index 7531cf5..8fe6ee6 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml @@ -15,7 +15,7 @@ android:id="@+id/imageView3" android:layout_width="match_parent" - android:layout_height="290dp" + android:layout_height="190dp" android:foreground="@drawable/b3" android:foregroundGravity="center_vertical|center|center_horizontal|fill" android:src="@drawable/b3" @@ -26,8 +26,8 @@ <ImageView android:id="@+id/imageView4" - android:layout_width="411dp" - android:layout_height="287dp" + android:layout_width="match_parent" + android:layout_height="190dp" app:layout_constraintBottom_toBottomOf="@+id/imageView3" app:layout_constraintEnd_toEndOf="@id/imageView3" app:layout_constraintHorizontal_bias="0.0" @@ -41,7 +41,7 @@ android:layout_width="0dp" android:layout_height="199dp" android:layout_marginStart="20dp" - android:layout_marginTop="156dp" + android:layout_marginTop="90dp" android:layout_marginEnd="20dp" android:adjustViewBounds="true" android:background="#E8FFFFFF" @@ -56,10 +56,9 @@ <androidx.cardview.widget.CardView android:id="@+id/cvFragmentHomePageProfile" - android:layout_width="140dp" - android:layout_height="140dp" + android:layout_width="120dp" + android:layout_height="120dp" android:layout_gravity="center" - android:layout_marginTop="24dp" android:elevation="10dp" app:cardCornerRadius="250dp" app:layout_constraintBottom_toTopOf="@+id/tableLayout" @@ -67,14 +66,14 @@ app:layout_constraintHorizontal_bias="0.498" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.887"> + app:layout_constraintVertical_bias="0.65999997"> <ImageView android:id="@+id/tvFragmentProfileProfilePicture" - android:layout_width="140dp" - android:layout_height="140dp" - android:elevation="10dp" + android:layout_width="120dp" + android:layout_height="120dp" + android:elevation="20dp" android:scaleType="centerCrop" android:src="@drawable/ic_baseline_person_24" tools:ignore="ContentDescription" /> @@ -99,7 +98,7 @@ <TableLayout android:id="@+id/tableLayout" - android:layout_width="323dp" + android:layout_width="0dp" android:layout_height="120dp" android:elevation="20dp" android:gravity="center" @@ -107,18 +106,23 @@ app:layout_constraintBottom_toBottomOf="@+id/tvFragmentProfileInfoContainer" app:layout_constraintEnd_toEndOf="@+id/tvFragmentProfileInfoContainer" app:layout_constraintHorizontal_bias="0.488" - app:layout_constraintStart_toStartOf="@+id/tvFragmentProfileInfoContainer"> + app:layout_constraintStart_toStartOf="@+id/tvFragmentProfileInfoContainer" + app:layout_constraintTop_toTopOf="@+id/tvFragmentProfileInfoContainer" + app:layout_constraintVertical_bias="0.87"> <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content" - android:gravity="center"> <TextView android:id="@+id/tvFragmentProfileName" + android:textSize="23sp" + android:textStyle="bold" android:layout_width="match_parent" android:layout_height="match_parent" + android:gravity="center" + android:layout_marginBottom="10dp" android:text="Petar Petrović" /> </TableRow> @@ -133,119 +137,182 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" - android:text="#PetarP" /> + android:text="PetarP" + android:textSize="17sp" /> </TableRow> - <Space android:layout_height="20dp"></Space> - <TableRow android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center"> + android:layout_height="100dp"> - <TextView - android:id="@+id/tvFragmentProfilePosts" - android:gravity="center" - android:text="OBJAVE" /> + <Button + android:layout_height="8dp" + android:background="@drawable/rounded_transparent_button" + android:clickable="false" + android:visibility="invisible" /> + </TableRow> - <TextView - android:id="@+id/tvFragmentProfileFollowers" - android:gravity="center" - android:clickable="true" - android:text="PRATIOCI" /> - <TextView - android:id="@+id/tvFragmentProfileFollow" - android:gravity="center" - android:text="PRAĆENJA" /> + <TableRow + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:weightSum="1"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:weightSum="3"> + + <TextView + android:id="@+id/tvFragmentProfilePosts" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:width="100dp" + android:textSize="15dp" + android:textColor="#757471" + android:gravity="center" + android:text="OBJAVE" /> + + <TextView + android:id="@+id/tvFragmentProfileFollowers" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:width="100dp" + android:textSize="15sp" + android:clickable="true" + android:textColor="#757471" + android:gravity="center" + android:text="PRATIOCI" /> + + <TextView + android:id="@+id/tvFragmentProfileFollow" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:width="100dp" + android:gravity="center" + android:textSize="15sp" + android:textColor="#757471" + android:text="PRAĆENJA" /> + </LinearLayout> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" - android:gravity="center"> - - <TextView - android:id="@+id/tvFragmentProfilePostsNo" - android:gravity="center" - android:text="156" /> - - <TextView - android:id="@+id/tvFragmentProfileFollowersNo" - android:gravity="center" - android:text="50" /> - - <TextView - android:id="@+id/tvFragmentProfileFollowNo" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:gravity="center" - android:text="40" /> + android:gravity="center" + android:weightSum="1"> + + <LinearLayout> + + <TextView + android:id="@+id/tvFragmentProfilePostsNo" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center" + android:text="156" + android:textSize="20dp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tvFragmentProfileFollowersNo" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center" + android:text="50" + android:textSize="20dp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tvFragmentProfileFollowNo" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center" + android:text="40" + android:textSize="20dp" + android:textStyle="bold" /> + </LinearLayout> </TableRow> </TableLayout> - <View - android:id="@+id/divider" - android:layout_width="409dp" - android:layout_height="40dp" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/btnFragmentProfileShowMyPosts" /> - - <Button - android:id="@+id/btnFragmentProfileShowMyPosts" - android:layout_width="wrap_content" + <LinearLayout + android:id="@+id/buttons" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="20dp" - android:layout_marginTop="4dp" - android:backgroundTint="#FFFFFF" - android:stateListAnimator="@null" - android:text="Objave" - - android:textColor="@color/cardview_dark_background" + android:weightSum="3" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer"> - <Button - android:id="@+id/btnFragmentProfileShowMyData" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="4dp" - android:layout_marginEnd="20dp" - android:backgroundTint="#FFFFFF" - android:stateListAnimator="@null" - android:text="Podaci" + <Button + android:id="@+id/btnFragmentProfileShowMyPosts" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:backgroundTint="#FFFFFF" + android:stateListAnimator="@null" + android:text="Objave" + android:textColor="@color/cardview_dark_background" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + + <Button + android:id="@+id/btnFragmentProfileShowMyRecensions" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_gravity="end" + android:layout_weight="1" + android:backgroundTint="#FFFFFF" + android:stateListAnimator="@null" + android:text="Istorija" + android:textColor="@color/cardview_dark_background" + app:layout_constraintStart_toEndOf="@+id/btnFragmentProfileShowMyPosts" + app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + + <Button + android:id="@+id/btnFragmentProfileShowMyData" + android:layout_width="110dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:backgroundTint="#FFFFFF" + android:stateListAnimator="@null" - android:textColor="@color/cardview_dark_background" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="1.0" - app:layout_constraintStart_toEndOf="@+id/btnFragmentProfileShowMyRecensions" - app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + android:text="Nalog" + android:textColor="@color/cardview_dark_background" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="1.0" + app:layout_constraintStart_toEndOf="@+id/btnFragmentProfileShowMyRecensions" + app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> - <Button - android:id="@+id/btnFragmentProfileShowMyRecensions" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="36dp" - android:layout_marginTop="4dp" - android:backgroundTint="#FFFFFF" - android:stateListAnimator="@null" - android:text="Istorija" - android:textColor="@color/cardview_dark_background" - app:layout_constraintStart_toEndOf="@+id/btnFragmentProfileShowMyPosts" - app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + </LinearLayout> <FrameLayout android:id="@+id/flFragmentProfileFragmentContainer" - android:layout_width="409dp" - android:layout_height="319dp" - android:layout_marginTop="40dp" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_marginTop="4dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="@+id/divider"> - </FrameLayout> + app:layout_constraintTop_toBottomOf="@+id/divider6"></FrameLayout> + + <View + android:id="@+id/divider6" + android:layout_width="409dp" + android:layout_height="1dp" + android:layout_marginTop="4dp" + android:background="?android:attr/listDivider" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/buttons" /> </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_single_post_comments.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_single_post_comments.xml new file mode 100644 index 0000000..cb5db29 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_single_post_comments.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".FragmentSinglePostComments"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + + <TextView + android:id="@+id/tvCommentLabel" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="@dimen/text_padding" + android:text="Komentari" + android:textStyle="bold" + style="@style/title" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <TextView + android:id="@+id/tvCommentCount" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="@dimen/text_padding" + android:text="0" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toEndOf="@+id/tvCommentLabel" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/rvComments" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:nestedScrollingEnabled="false" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + tools:layout_editor_absoluteY="282dp"> + + </androidx.recyclerview.widget.RecyclerView> + + <LinearLayout + android:id="@+id/postCommentLayout" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <EditText + android:id="@+id/NewComment" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:hint="Unesite komentar ovde" /> + + <ImageButton + android:id="@+id/btnPostComment" + android:layout_width="50dp" + android:layout_height="50dp" + android:backgroundTint="@color/white" + android:scaleType="fitCenter" + android:src="@drawable/post_comment" /> + + </LinearLayout> + +</LinearLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_single_post_description.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_single_post_description.xml new file mode 100644 index 0000000..c2ad49b --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_single_post_description.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".Fragments.FragmentSinglePostDescription"> + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/constraintLayout3" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@drawable/rounded_picture_background" + android:padding="@dimen/component_padding" + app:layout_constraintTop_toBottomOf="@+id/linearLayout" + tools:layout_editor_absoluteX="0dp"> + + <TextView + android:id="@+id/tvDescriptionLabel" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="8dp" + android:layout_marginEnd="362dp" + android:gravity="top|start" + android:padding="@dimen/text_padding" + android:text="Opis" + android:textSize="@dimen/header1_size" + android:textStyle="bold" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <TextView + android:id="@+id/tvDescription" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvDescriptionLabel" /> + + + <TextView + android:id="@+id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="32dp" + android:text="Oceni" + android:textColor="@color/cardview_dark_background" + android:textSize="@dimen/header1_size" + android:textStyle="bold" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.005" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvDescription" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:orientation="horizontal" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/title"> + + <ImageView + android:id="@+id/rateStar1" + android:layout_width="50dp" + android:layout_height="50dp" + android:scaleType="centerCrop" + android:src="@drawable/ic_round_star_outline_24" /> + + <ImageView + android:id="@+id/rateStar2" + android:layout_width="50dp" + android:layout_height="50dp" + android:scaleType="centerCrop" + android:src="@drawable/ic_round_star_outline_24" /> + + <ImageView + android:id="@+id/rateStar3" + android:layout_width="50dp" + android:layout_height="50dp" + android:scaleType="centerCrop" + android:src="@drawable/ic_round_star_outline_24" /> + + <ImageView + android:id="@+id/rateStar4" + android:layout_width="50dp" + android:layout_height="50dp" + android:scaleType="centerCrop" + android:src="@drawable/ic_round_star_outline_24" /> + + <ImageView + android:id="@+id/rateStar5" + android:layout_width="50dp" + android:layout_height="50dp" + android:scaleType="centerCrop" + android:src="@drawable/ic_round_star_outline_24" /> + + + </LinearLayout> + <!--<LinearLayout + android:id="@+id/linearLayout2" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="24dp" + + + android:paddingVertical="@dimen/component_padding" + app:layout_constraintTop_toBottomOf="@id/constraintLayout3" + tools:layout_editor_absoluteX="10dp"> + + + <TextView + android:id="@+id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Oceni" + style="@style/title" + android:textColor="@color/cardview_dark_background" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvDescriptionLabel" /> + + <ImageButton + android:id="@+id/rateStar1" + android:layout_width="30dp" + android:layout_height="40dp" + android:layout_gravity="center_vertical" + android:layout_weight="1" + + android:scaleType="centerCrop" + android:src="@drawable/empty_star" /> + + <ImageButton + android:id="@+id/rateStar2" + android:layout_width="30dp" + android:layout_height="40dp" + android:layout_gravity="center_vertical" + android:layout_weight="1" + + android:scaleType="centerCrop" + android:src="@drawable/empty_star" /> + + <ImageButton + android:id="@+id/rateStar3" + android:layout_width="30dp" + android:layout_height="40dp" + android:layout_gravity="center_vertical" + android:layout_weight="1" + + android:scaleType="centerCrop" + android:src="@drawable/empty_star" /> + + <ImageButton + android:id="@+id/rateStar4" + android:layout_width="30dp" + android:layout_height="40dp" + android:layout_gravity="center_vertical" + android:layout_weight="1" + + android:scaleType="centerCrop" + android:src="@drawable/empty_star" /> + + <ImageButton + android:id="@+id/rateStar5" + android:layout_width="30dp" + android:layout_height="40dp" + android:layout_gravity="center_vertical" + android:layout_weight="1" + + android:scaleType="centerCrop" + android:src="@drawable/ic_round_star_outline_24"> + + <Button + android:id="@+id/submitRating" + android:layout_width="30dp" + android:layout_height="40dp" + android:layout_gravity="center_vertical" + android:layout_weight="1" + + android:text="ok"/> + </LinearLayout>--> + + </androidx.constraintlayout.widget.ConstraintLayout> + + +</FrameLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml b/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml index ca3ca44..0e53f9e 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml @@ -23,4 +23,26 @@ <item name="cornerSizeTopLeft">10dp</item> <item name="cornerSizeTopRight">10dp</item> </style> + + <style name="title"> + <item name="android:textSize">@dimen/header1_size</item> + <item name="android:textStyle">bold</item> + </style> + + <style name="clean_button"> + <item name="android:backgroundTint">@color/white</item> + <item name="android:textColor">#757471</item> + <item name="android:stateListAnimator">@null</item> + <item name="android:layout_height">50dp</item> + <item name="android:layout_width">wrap_content</item> + </style> + + <style name="clean_button_margin"> + <item name="android:backgroundTint">@color/white</item> + <item name="android:textColor">#757471</item> + <item name="android:stateListAnimator">@null</item> + <item name="android:layout_height">50dp</item> + <item name="android:layout_width">wrap_content</item> + <item name="android:layout_marginTop">7dp</item> + </style> </resources>
\ No newline at end of file |