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  | 
