diff options
Diffstat (limited to 'Client')
19 files changed, 412 insertions, 487 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index 0c412d8..2241c80 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -37,9 +37,17 @@          android:usesCleartextTraffic="true"          tools:targetApi="31">          <activity +            android:name=".Activities.ActivityShowFollowersAndFollowing" +            android:exported="false" +            android:screenOrientation="portrait"> +            <meta-data +                android:name="android.app.lib_name" +                android:value="" /> +        </activity> +        <activity              android:name=".Activities.ActivityUserProfile"              android:exported="false" -            android:screenOrientation="portrait" > +            android:screenOrientation="portrait">              <meta-data                  android:name="android.app.lib_name"                  android:value="" /> @@ -47,8 +55,8 @@          <activity              android:name=".Activities.ChatActivityConversation"              android:exported="false" -            android:windowSoftInputMode="stateVisible|adjustPan" -            android:screenOrientation="portrait" > +            android:screenOrientation="portrait" +            android:windowSoftInputMode="stateVisible|adjustPan">              <meta-data                  android:name="android.app.lib_name"                  android:value="" /> @@ -56,11 +64,10 @@          <activity              android:name=".Activities.ChatActivity"              android:exported="true" -            android:screenOrientation="portrait" > +            android:screenOrientation="portrait">              <meta-data                  android:name="android.app.lib_name"                  android:value="" /> -          </activity>          <meta-data diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt index 6db305e..efe2ac2 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt @@ -53,33 +53,27 @@ class ActivityAddPost : AppCompatActivity() {      private lateinit var tagButtonAdd:Button      private lateinit var tagList: MutableList<String>      private var tagidcounter:Int = 0 -    val incorectCoord:Double=1000.0      val LOCATIONREQCODE=123 -    var longitude:Double=incorectCoord -    var latitude:Double=incorectCoord +    var locationId:String?=null      var progressDialog:ProgressDialog?=null      private lateinit var addDescription:Button -    //private var paths :ArrayList<String?>?=null +      private var place=0;      override fun onCreate(savedInstanceState: Bundle?) {          super.onCreate(savedInstanceState)          setContentView(R.layout.activity_add_post) -//        Toast.makeText( -//            applicationContext, "Add new ", Toast.LENGTH_LONG -//        ).show(); +          uploadedImages= ArrayList()          tagList = mutableListOf()          tagButtons= mutableListOf()          tagidcounter = 0 -        //paths= ArrayList()          uploadFromGallery=findViewById<View>(R.id.btnActivityAddPostUploadFromGalleryVisible) as Button          showNextImage=findViewById<View>(R.id.nextImage) as Button          showPreviousImage=findViewById<View>(R.id.previousImage) as Button          switcher=findViewById<View>(R.id.isActivityAddPostSwitcher) as ImageSwitcher -        //location=findViewById<View>(R.id.etActivityAddPostLocation) as EditText          description=findViewById<View>(R.id.etActivityAddPostDescription) as EditText          post=findViewById<View>(R.id.btnActivityAddPostPost) as Button          addLocation=findViewById<View>(R.id.btnActivityAddPostAddLocation) as Button @@ -107,8 +101,6 @@ class ActivityAddPost : AppCompatActivity() {              imgView}          addLocation.setOnClickListener {              val myIntent = Intent(this, MapsActivity::class.java) -            if(location.text!=null && !location.text.trim().equals("")) -                myIntent.putExtra("search",location.text.toString())              startActivityForResult(myIntent,LOCATIONREQCODE)          }          addDescription.setOnClickListener { @@ -207,11 +199,11 @@ class ActivityAddPost : AppCompatActivity() {                  description.hint="Unesite opis"                  description.setHintTextColor(Color.RED)              } -            if(longitude!=incorectCoord && latitude!=incorectCoord){ +            if(locationId==null || locationId!!.trim()==""){                  Toast.makeText(this,"Unesite lokaciju klikom na dugme",Toast.LENGTH_LONG)              } -            if(!locationString.isEmpty() && !descriptionString.isEmpty() && longitude!=incorectCoord && latitude!=incorectCoord && uploadedImages!!.size>0){ +            if(!descriptionString.isEmpty()  && uploadedImages!!.size>0){                  sendPost()              }          } @@ -251,11 +243,7 @@ class ActivityAddPost : AppCompatActivity() {          }          if(requestCode==LOCATIONREQCODE && resultCode== RESULT_OK){              var bundle=data!!.extras -            longitude=bundle!!.getDouble("longitude",incorectCoord) -            latitude=bundle!!.getDouble("latitude",incorectCoord) -            var locName=bundle!!.getString("name") -            if(location.text.toString().trim().equals("") && locName!=null && !locName.toString().trim().equals("")) -                location.setText(locName,TextView.BufferType.EDITABLE) +            locationId=bundle!!.getString("locationId")          }      }      private fun sendPost(){ @@ -263,60 +251,11 @@ class ActivityAddPost : AppCompatActivity() {      }      fun uploadLocation() { -        //TO DO SEARCH EXISTING LOCATION FROM DB -        //IF NOT EXISTS ADD NEW LOCATION -        progressDialog!!.show() -        val api =RetrofitHelper.getInstance() -        var geocoder=GeocoderHelper.getInstance() -        var loc1=geocoder!!.getFromLocation(latitude,longitude,1) -        if(loc1==null ||loc1.size<=0) -        { -            progressDialog!!.dismiss() -            Toast.makeText(this,"Lokacija ne postoji",Toast.LENGTH_LONG); -            return -        } -        var countryName=loc1[0].countryName -        var address="todo not possible in query" -        var city="its null" -        if(loc1[0].adminArea!=null) -            city=loc1[0].adminArea//not possible -        var loc:Location=Location("",locationString,city,countryName,address,latitude,longitude,LocationType.GRAD) -        var jwtString= SharedPreferencesHelper.getValue("jwt",this) -        var data=api.addLocation("Bearer "+jwtString,loc) - -        data.enqueue(object : retrofit2.Callback<Location?> { -            override fun onResponse(call: Call<Location?>, response: Response<Location?>) { -                if(response.isSuccessful()){ - -                    uploadPost(response.body()!!._id) -                    Toast.makeText( -                        applicationContext, "USPEH", Toast.LENGTH_LONG -                    ).show(); - -                }else { -                    progressDialog!!.dismiss() - -                    if (response.errorBody() != null) { -                        Log.d("Main",response.errorBody()!!.string()) -                        Log.d("Main",response.message()) -                    } -                    Log.d("Main",response.errorBody()!!.string()) -                    Log.d("Main",response.message()) -                } - - -            } - -            override fun onFailure(call: Call<Location?>, t: Throwable) { -                Toast.makeText( -                    applicationContext, t.toString(), Toast.LENGTH_LONG -                ).show(); -                Log.d("Main",t.toString()) -                progressDialog!!.dismiss() -            } -        }) +        if(locationId!=null && locationId!!.trim()!="") +            uploadPost(locationId!!)      }      fun uploadPost(loc:String){ +        progressDialog!!.show()          val api =RetrofitHelper.getInstance()          var desc=descriptionString          description.text.clear() diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt index 40adea2..0221241 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt @@ -41,13 +41,10 @@ import java.io.InputStream  class ActivityCapturePost : AppCompatActivity() {      private lateinit var takePhoto: Button -    //private lateinit var location: EditText      private lateinit var description: EditText -    private lateinit var locationString: String      private lateinit var descriptionString: String      private lateinit var post: Button      private lateinit var showImage: ImageView -    private var uploadedImages: Uri? = null      private lateinit var addLocation:Button      private lateinit var tagLayout:LinearLayout      private lateinit var tagButtons:MutableList<Button> @@ -57,10 +54,10 @@ class ActivityCapturePost : AppCompatActivity() {      private var tagidcounter:Int = 0      private lateinit var addDescription:Button -    val incorectCoord:Double=1000.0 +      val LOCATIONREQCODE=123 -    var longitude:Double=incorectCoord -    var latitude:Double=incorectCoord +    var locationId:String?=null +      var progressDialog: ProgressDialog?=null      override fun onCreate(savedInstanceState: Bundle?) { @@ -70,7 +67,6 @@ class ActivityCapturePost : AppCompatActivity() {          tagButtons= mutableListOf()          tagidcounter = 0 -        //location = findViewById<View>(R.id.etActivityCapturePostLocation) as EditText          description = findViewById<View>(R.id.etActivityCapturePostDescription) as EditText          post = findViewById<View>(R.id.btnActivityCapturePostPost) as Button          showImage = findViewById<View>(R.id.ivActivityCapturePostImage) as ImageView @@ -217,14 +213,10 @@ class ActivityCapturePost : AppCompatActivity() {             // locationString = location.text.toString().trim()              descriptionString = description.text.toString().trim()              //prazan unos? -            if (locationString.isEmpty()) { -            //    location.hint = "Unesite lokaciju" -            //    location.setHintTextColor(Color.RED) -            }else              if (descriptionString.isEmpty()) {                  description.hint = "Unesite opis"                  description.setHintTextColor(Color.RED) -            }else if(f!=null && longitude!=incorectCoord && latitude!=incorectCoord){ +            }else if(f!=null && locationId!=null && locationId!!.trim()!=""){                      uploadLocation()              } @@ -237,11 +229,7 @@ class ActivityCapturePost : AppCompatActivity() {          super.onActivityResult(requestCode, resultCode, data)          if(requestCode==LOCATIONREQCODE && resultCode== RESULT_OK){              var bundle=data!!.extras -            longitude=bundle!!.getDouble("longitude",incorectCoord) -            latitude=bundle!!.getDouble("latitude",incorectCoord) -            var locName=bundle!!.getString("name") -            //if(location.text.toString().trim().equals("") && locName!=null && !locName.toString().trim().equals("")) -            //    location.setText(locName, TextView.BufferType.EDITABLE) +            locationId=bundle!!.getString("locationId")          }      }      var f:File?=null @@ -266,59 +254,11 @@ class ActivityCapturePost : AppCompatActivity() {          }      fun uploadLocation() { -        //TO DO SEARCH EXISTING LOCATION FROM DB -        //IF NOT EXISTS ADD NEW LOCATION -        progressDialog!!.show() -        val api =RetrofitHelper.getInstance() -        var geocoder= GeocoderHelper.getInstance() -        var loc1=geocoder!!.getFromLocation(latitude,longitude,1) -        if(loc1==null ||loc1.size<=0) -        { -            progressDialog!!.dismiss() -            Toast.makeText(this,"Lokacija ne postoji",Toast.LENGTH_LONG); -            return -        } -        var countryName=loc1[0].countryName -        var address="todo not possible in query" -        var city=loc1[0].adminArea//not possible -        //var address=loc1[0].subAdminArea -        var loc:Location=Location("",locationString,city,countryName,address,latitude,longitude,LocationType.GRAD) -        var jwtString= SharedPreferencesHelper.getValue("jwt",this) -        var data=api.addLocation("Bearer "+jwtString,loc) - -        data.enqueue(object : retrofit2.Callback<Location?> { -            override fun onResponse(call: Call<Location?>, response: Response<Location?>) { -                if(response.isSuccessful()){ - -                    uploadPost(response.body()!!._id) -                    Toast.makeText( -                        applicationContext, "USPEH", Toast.LENGTH_LONG -                    ).show(); - -                }else { -                    progressDialog!!.dismiss() - -                    if (response.errorBody() != null) { -                        Log.d("Main",response.errorBody()!!.string()) -                        Log.d("Main",response.message()) -                    } -                    Log.d("Main",response.errorBody()!!.string()) -                    Log.d("Main",response.message()) -                } - - -            } - -            override fun onFailure(call: Call<Location?>, t: Throwable) { -                Toast.makeText( -                    applicationContext, t.toString(), Toast.LENGTH_LONG -                ).show(); -                Log.d("Main",t.toString()) -                progressDialog!!.dismiss() -            } -        }) +        if(locationId!=null && locationId!!.trim()!="") +            uploadPost(locationId!!)      }      fun uploadPost(loc:String){ +        progressDialog!!.show()          val api = RetrofitHelper.getInstance()          var desc=descriptionString          description.text.clear() diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityShowFollowersAndFollowing.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityShowFollowersAndFollowing.kt new file mode 100644 index 0000000..845021e --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityShowFollowersAndFollowing.kt @@ -0,0 +1,39 @@ +package com.example.brzodolokacije.Activities + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.widget.Button +import android.widget.FrameLayout +import androidx.fragment.app.FragmentTransaction +import com.example.brzodolokacije.Fragments.FragmentFollowers +import com.example.brzodolokacije.Fragments.FragmentFollowing +import com.example.brzodolokacije.Fragments.FragmentRegister +import com.example.brzodolokacije.R + +class ActivityShowFollowersAndFollowing : AppCompatActivity() { + +    private lateinit var showFollowers:Button +    private lateinit var showFollowing:Button +    private lateinit var fragmentContainer:FrameLayout +    override fun onCreate(savedInstanceState: Bundle?) { +        super.onCreate(savedInstanceState) +        setContentView(R.layout.activity_show_followers_and_following) + +        showFollowers=findViewById(R.id.btnActivityShowFollowersAndFollowingShowFollowers) +        showFollowing=findViewById(R.id.btnActivityShowFollowersAndFollowingShowFollowing) +        fragmentContainer=findViewById(R.id.flActivityShowFollowerAndFollowing) + +        showFollowers.setOnClickListener { +            var fm: FragmentTransaction =supportFragmentManager.beginTransaction() +            fm.replace(R.id.flActivityShowFollowerAndFollowing, FragmentFollowers()) +            fm.commit() +        } + +        showFollowing.setOnClickListener { +            var fm: FragmentTransaction =supportFragmentManager.beginTransaction() +            fm.replace(R.id.flActivityShowFollowerAndFollowing, FragmentFollowing()) +            fm.commit() +        } + +    } +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt index 56e9190..2d290db 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt @@ -11,11 +11,16 @@ import androidx.appcompat.app.AppCompatActivity  import androidx.fragment.app.Fragment  import com.bumptech.glide.Glide  import com.example.brzodolokacije.Fragments.FragmentShowUserPosts +import com.example.brzodolokacije.Models.PostPreview  import com.example.brzodolokacije.Models.User  import com.example.brzodolokacije.Models.UserReceive  import com.example.brzodolokacije.R  import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper  import com.google.gson.Gson +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response  class ActivityUserProfile : AppCompatActivity() {      private lateinit var name:TextView @@ -36,7 +41,7 @@ class ActivityUserProfile : AppCompatActivity() {          followersNumber=findViewById(R.id.tvActivityUserProfileFollowersNo)          followingNumber=findViewById(R.id.tvActivityUserProfileFollowNo)          profilePicture=findViewById(R.id.tvActivityProfileProfilePicture) -        followUser=findViewById(R.id.ibActivityUserProfileFollow) +        followUser=findViewById(R.id.btnActivityUserProfileFollow)          showUserPosts=findViewById(R.id.btnActivityUserProfileShowPosts)          fragmentContainer=findViewById(R.id.flActivityProfileFragmentContainer) @@ -60,6 +65,9 @@ class ActivityUserProfile : AppCompatActivity() {          }          followUser.setOnClickListener{ +            val api = RetrofitHelper.getInstance() +            val token= SharedPreferencesHelper.getValue("jwt", this@ActivityUserProfile) +            api.addFollower("Bearer "+token,myObject._id);          } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt index 1ff07f6..faaa3b4 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/MapsActivity.kt @@ -1,8 +1,11 @@  package com.example.brzodolokacije.Activities  import android.Manifest +import android.app.AlertDialog  import android.content.Context +import android.content.DialogInterface  import android.content.pm.PackageManager +import android.graphics.Color  import android.location.Location  import android.location.LocationManager  import android.os.Build @@ -15,17 +18,21 @@ import android.util.Log  import android.view.KeyEvent  import android.view.MotionEvent  import android.view.View -import android.widget.TextView -import android.widget.Toast +import android.widget.* +import android.widget.AdapterView.OnItemClickListener  import androidx.appcompat.app.AppCompatActivity  import androidx.core.app.ActivityCompat  import androidx.core.content.ContextCompat +import androidx.core.widget.addTextChangedListener +import com.example.brzodolokacije.Models.LocationType +import com.example.brzodolokacije.Models.PostPreview  import com.example.brzodolokacije.R  import com.example.brzodolokacije.Services.GeocoderHelper +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper  import com.google.android.gms.location.*  import com.google.android.material.button.MaterialButton  import com.google.android.material.floatingactionbutton.FloatingActionButton -import com.google.android.material.textfield.TextInputEditText  import org.osmdroid.config.Configuration  import org.osmdroid.tileprovider.tilesource.TileSourceFactory  import org.osmdroid.util.GeoPoint @@ -40,6 +47,10 @@ import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider  import org.osmdroid.views.overlay.gestures.RotationGestureOverlay  import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider  import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay +import retrofit2.Call +import retrofit2.Response +import java.util.* +import kotlin.collections.ArrayList  class MapsActivity : AppCompatActivity() { @@ -52,10 +63,12 @@ class MapsActivity : AppCompatActivity() {      private lateinit var searchButton: MaterialButton      private lateinit var gpsButton: FloatingActionButton      private lateinit var confirmButton: FloatingActionButton -    private lateinit var searchBar: TextInputEditText +    private lateinit var searchBar: AutoCompleteTextView      var client: FusedLocationProviderClient? = null      var locLongitude:Double?=null      var locLatitude:Double?=null +    var selectedLocation:com.example.brzodolokacije.Models.Location?=null +    var responseLocations:MutableList<com.example.brzodolokacije.Models.Location>?=null      override fun onCreate(savedInstanceState: Bundle?) {          super.onCreate(savedInstanceState)          setContentView(R.layout.activity_maps) @@ -68,7 +81,7 @@ class MapsActivity : AppCompatActivity() {          searchButton=findViewById<View>(R.id.ActivityMapsSearchButton) as MaterialButton          gpsButton=findViewById<View>(R.id.ActivityMapsMyLocation) as FloatingActionButton          confirmButton=findViewById<View>(R.id.ActivityMapsConfirmLocation) as FloatingActionButton -        searchBar=findViewById<View>(R.id.ActivityMapsSearchBar) as TextInputEditText +        searchBar=findViewById<View>(R.id.ActivityMapsSearchBar) as AutoCompleteTextView          client= LocationServices.getFusedLocationProviderClient(this)          searchButton.setOnClickListener{              searchMap() @@ -78,8 +91,12 @@ class MapsActivity : AppCompatActivity() {              getLocation()          }          confirmButton.setOnClickListener{ -            if(locLatitude!=null && locLatitude!=null) +            if(selectedLocation!=null)                  returnValue() +            else{ +                addLocation() + +            }          }          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 && @@ -91,6 +108,9 @@ class MapsActivity : AppCompatActivity() {              }              false          }) +        searchBar.addTextChangedListener{ +            onTextEnter() +        }          val extras = intent.extras          if (extras != null) {              val value = extras.getString("search") @@ -98,22 +118,138 @@ class MapsActivity : AppCompatActivity() {              searchBar.setText(value,TextView.BufferType.EDITABLE)              searchMap()          } +        setUpSpinner() + +    } +    fun addLocation(){ +        var editText=EditText(this) +        var dialog=AlertDialog.Builder(this).setTitle("Naziv").setMessage("Unesite naziv") +            .setView(editText) +        dialog.setPositiveButton("Dodaj") { dialog, which -> +            uploadLocation(editText.text.toString()) +        } +        dialog.setNegativeButton("Prekini") { dialog, which -> + +        } +        dialog.show() + +    } +    fun uploadLocation(locationName:String){ +        val api =RetrofitHelper.getInstance() +        var geocoder=GeocoderHelper.getInstance() +        var loc1=geocoder!!.getFromLocation(locLatitude!!,locLongitude!!,1) +        if(loc1==null ||loc1.size<=0) +        { +            return +        } +        var countryName=loc1[0].countryName +        var address="todo not possible in query" +        var city="its null" +        if(loc1[0].adminArea!=null) +            city=loc1[0].adminArea//not possible +        var loc: com.example.brzodolokacije.Models.Location = +            com.example.brzodolokacije.Models.Location( +                "", +                locationName, +                city, +                countryName, +                address, +                locLatitude!!, +                locLongitude!!, +                LocationType.GRAD +            ) +        var jwtString= SharedPreferencesHelper.getValue("jwt",this) +        var data=api.addLocation("Bearer "+jwtString,loc) + +        data.enqueue(object : retrofit2.Callback<com.example.brzodolokacije.Models.Location?> { +            override fun onResponse(call: Call<com.example.brzodolokacije.Models.Location?>, response: Response<com.example.brzodolokacije.Models.Location?>) { +                if(response.isSuccessful()){ +                    selectedLocation=response.body() +                    returnValue() + +                }else { + +                    if (response.errorBody() != null) { +                        Log.d("Main",response.errorBody()!!.string()) +                        Log.d("Main",response.message()) +                    } +                    Log.d("Main",response.errorBody()!!.string()) +                    Log.d("Main",response.message()) +                } + + +            } + +            override fun onFailure(call: Call<com.example.brzodolokacije.Models.Location?>, t: Throwable) { +                Toast.makeText( +                    applicationContext, t.toString(), Toast.LENGTH_LONG +                ).show(); +                Log.d("Main",t.toString()) +            } +        }) +    } +    var arraySpinner :MutableList<String>?=null +    var spinnerAdapter: ArrayAdapter<String>?=null + +    fun setUpSpinner() { +        arraySpinner=mutableListOf<String>() +        spinnerAdapter= ArrayAdapter<String>( +        this, +        android.R.layout.simple_list_item_1, arraySpinner!!) +        searchBar.threshold=1 +        searchBar.setAdapter(spinnerAdapter) +        searchBar.setOnItemClickListener(OnItemClickListener { parent, view, position, id -> +            val selected = parent.getItemAtPosition(position) as String +            selectedLocation=responseLocations!!.find { location -> location.name==selected } +            Log.d("main",selectedLocation.toString()) +            confirmButton.visibility=View.VISIBLE +        }) +      }      fun returnValue(){          val intent = intent          val bundle = Bundle() -        bundle.putDouble("longitude", locLongitude!!) -        bundle.putDouble("latitude", locLatitude!!) -        if(searchBar.text!=null && !searchBar.text.toString().equals("")) -            bundle.putString("name", searchBar.text.toString()) +        if(selectedLocation==null) +            return +        bundle.putString("locationId",selectedLocation!!._id)          intent.putExtras(bundle)          setResult(RESULT_OK, intent)          finish()      } +    fun onTextEnter(){ +        var api=RetrofitHelper.getInstance() +        var jwtString= SharedPreferencesHelper.getValue("jwt",this) +        var text=searchBar.text +        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<com.example.brzodolokacije.Models.Location>?>, response: Response<MutableList<com.example.brzodolokacije.Models.Location>>) { +                if(response.isSuccessful){ +                    var existingLocation=responseLocations +                    responseLocations=response.body()!! +                    var tempList=mutableListOf<String>() +                    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<com.example.brzodolokacije.Models.Location>>, t: Throwable) { +            } +        }) + + +    }      override fun onResume() {          super.onResume()          map!!.onResume() @@ -224,6 +360,7 @@ class MapsActivity : AppCompatActivity() {          }      }      fun searchMap(){ +          var geocoder= GeocoderHelper.getInstance()          //Log.d("Main",geocoder!!.getFromLocationName("Paris",1)[0].countryName)          var locString=searchBar.text.toString().trim() diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt index 7c6d998..3427658 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt @@ -214,8 +214,8 @@ class FragmentProfile : Fragment(com.example.brzodolokacije.R.layout.fragment_pr          username.setText("@"+user.username)          postsCount.setText(user.postcount.toString()) -        followersCount.setText("to do") -        followingCount.setText("to do") +        followersCount.setText(user.followersNumber.toString()) +        followingCount.setText(user.followingNumber.toString())          userId=user._id diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserProfile.kt deleted file mode 100644 index 2635adb..0000000 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserProfile.kt +++ /dev/null @@ -1,26 +0,0 @@ -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 - -class FragmentUserProfile : Fragment() { - - -    override fun onCreateView( -        inflater: LayoutInflater, container: ViewGroup?, -        savedInstanceState: Bundle? -    ): View? { - -        val view= inflater.inflate(R.layout.fragment_user_profile, container, false) - - - -        return view -    } - - -}
\ 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 e4bfbc8..8556047 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 @@ -92,4 +92,7 @@ interface IBackendApi {      @GET("/api/Post/posts/get10Newest")      fun get10Newest(@Header("Authorization") authHeader:String):Call<MutableList<PostPreview>> +    @GET("api/Location/search") +    fun searchLocationsQuery(@Header("Authorization") authHeader:String,@Query("query") query: String):Call<MutableList<Location>> +  }
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml index 09fe069..86ad75d 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_back_24.xml @@ -1,5 +1,5 @@  <vector android:autoMirrored="true" android:height="24dp" -    android:tint="#274352" android:viewportHeight="24" +    android:tint="#737374" 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="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>  </vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_person_add_alt_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_person_add_alt_24.xml new file mode 100644 index 0000000..0c0ec5a --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_person_add_alt_24.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" +    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="M20,9V6h-2v3h-3v2h3v3h2v-3h3V9H20zM9,12c2.21,0 4,-1.79 4,-4c0,-2.21 -1.79,-4 -4,-4S5,5.79 5,8C5,10.21 6.79,12 9,12zM9,6c1.1,0 2,0.9 2,2c0,1.1 -0.9,2 -2,2S7,9.1 7,8C7,6.9 7.9,6 9,6zM15.39,14.56C13.71,13.7 11.53,13 9,13c-2.53,0 -4.71,0.7 -6.39,1.56C1.61,15.07 1,16.1 1,17.22V20h16v-2.78C17,16.1 16.39,15.07 15.39,14.56zM15,18H3v-0.78c0,-0.38 0.2,-0.72 0.52,-0.88C4.71,15.73 6.63,15 9,15c2.37,0 4.29,0.73 5.48,1.34C14.8,16.5 15,16.84 15,17.22V18z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_person_remove_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_person_remove_24.xml new file mode 100644 index 0000000..3272d5e --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_outline_person_remove_24.xml @@ -0,0 +1,7 @@ +<vector android:height="24dp" android:tint="#FFFFFF" +    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,8c0,-2.21 -1.79,-4 -4,-4C7.79,4 6,5.79 6,8c0,2.21 1.79,4 4,4C12.21,12 14,10.21 14,8zM12,8c0,1.1 -0.9,2 -2,2c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2C11.1,6 12,6.9 12,8z"/> +    <path android:fillColor="@android:color/white" android:pathData="M2,18v2h16v-2c0,-2.66 -5.33,-4 -8,-4C7.33,14 2,15.34 2,18zM4,18c0.2,-0.71 3.3,-2 6,-2c2.69,0 5.77,1.28 6,2H4z"/> +    <path android:fillColor="@android:color/white" android:pathData="M17,10h6v2h-6z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_message_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_message_24.xml new file mode 100644 index 0000000..130c826 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_round_message_24.xml @@ -0,0 +1,5 @@ +<vector android:autoMirrored="true" android:height="24dp" +    android:tint="#FFFFFF" 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="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM17,14L7,14c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h10c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM17,11L7,11c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h10c0.55,0 1,0.45 1,1s-0.45,1 -1,1zM17,8L7,8c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h10c0.55,0 1,0.45 1,1s-0.45,1 -1,1z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_button.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_button.xml new file mode 100644 index 0000000..52d0c26 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_button.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> +    <corners  android:radius="20dp"/> +</shape>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_maps.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_maps.xml index 8d37c29..0051893 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_maps.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_maps.xml @@ -33,6 +33,7 @@          app:rippleColor="#FFFFFF"          app:srcCompat="@android:drawable/ic_menu_mylocation" /> +      <com.google.android.material.floatingactionbutton.FloatingActionButton          android:id="@+id/ActivityMapsConfirmLocation"          android:layout_width="wrap_content" @@ -64,7 +65,7 @@          app:layout_constraintTop_toTopOf="parent"> -        <com.google.android.material.textfield.TextInputEditText +        <AutoCompleteTextView              android:id="@+id/ActivityMapsSearchBar"              android:layout_width="match_parent"              android:layout_height="match_parent" @@ -86,4 +87,21 @@      </androidx.cardview.widget.CardView> +<!--    <Spinner--> +<!--        android:id="@+id/MapsActivitySpinner"--> +<!--        android:layout_width="match_parent"--> +<!--        android:layout_height="40dp"--> +<!--        android:background="@null"--> +<!--        app:layout_constraintEnd_toEndOf="parent"--> +<!--        app:layout_constraintStart_toStartOf="parent"--> +<!--        app:layout_constraintTop_toBottomOf="@+id/ActivityMapsCardViewSearch" />--> + +<!--    <AutoCompleteTextView--> +<!--        android:id="@+id/ActivityMapsAutoCompleteTextView"--> +<!--        android:layout_width="match_parent"--> +<!--        android:layout_height="40dp"--> +<!--        app:layout_constraintEnd_toEndOf="parent"--> +<!--        app:layout_constraintStart_toStartOf="parent"--> +<!--        app:layout_constraintTop_toBottomOf="@+id/ActivityMapsCardViewSearch" />--> +    </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_show_followers_and_following.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_show_followers_and_following.xml new file mode 100644 index 0000000..18c519b --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_show_followers_and_following.xml @@ -0,0 +1,68 @@ +<?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" +    tools:context=".Activities.ActivityShowFollowersAndFollowing"> + +     <Button +        android:id="@+id/btnActivityShowFollowersAndFollowingBackToUser" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        android:drawableLeft="@drawable/ic_baseline_arrow_back" +        android:text="Korisnik" + +        android:textAllCaps="false" +        app:layout_constraintStart_toStartOf="parent" +        app:layout_constraintTop_toTopOf="parent" /> + +    <View +        android:id="@+id/divider" +        android:layout_width="409dp" +        android:layout_height="1dp" +        android:layout_marginTop="4dp" +        android:background="?android:attr/listDivider" +        app:layout_constraintEnd_toEndOf="parent" +        app:layout_constraintHorizontal_bias="1.0" +        app:layout_constraintStart_toStartOf="parent" +        app:layout_constraintTop_toBottomOf="@+id/btnActivityShowFollowersAndFollowingShowFollowers" /> + +    <Button +        android:id="@+id/btnActivityShowFollowersAndFollowingShowFollowers" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        android:layout_marginStart="16dp" +        android:backgroundTint="#FFFFFF" +        android:stateListAnimator="@null" +        android:text="Objave" +        android:drawableBottom="@drawable/ic_baseline_circle_7" +        android:textColor="@color/cardview_dark_background" +        app:layout_constraintStart_toStartOf="parent" +        app:layout_constraintTop_toBottomOf="@+id/btnActivityShowFollowersAndFollowingBackToUser" /> + +    <Button +        android:id="@+id/btnActivityShowFollowersAndFollowingShowFollowing" +        android:layout_width="wrap_content" +        android:layout_height="wrap_content" +        android:layout_marginEnd="20dp" +        android:backgroundTint="#FFFFFF" +        android:stateListAnimator="@null" +        android:text="Podaci" +        android:drawableBottom="@drawable/ic_baseline_circle_7" +        android:drawableTint="@color/white" +        android:textColor="@color/cardview_dark_background" +        app:layout_constraintEnd_toEndOf="parent" +        app:layout_constraintTop_toBottomOf="@+id/btnActivityShowFollowersAndFollowingBackToUser" /> + +    <FrameLayout +        android:id="@+id/flActivityShowFollowerAndFollowing" +        android:layout_width="match_parent" +        android:layout_height="0dp" +        android:layout_marginTop="16dp" +        android:orientation="vertical" +        app:layout_constraintBottom_toBottomOf="parent" +        app:layout_constraintEnd_toEndOf="parent" +        app:layout_constraintStart_toStartOf="parent" +        app:layout_constraintTop_toBottomOf="@+id/divider"/> +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file 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 16f4b1e..a446f9a 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 @@ -15,7 +15,7 @@              android:id="@+id/imageView3"              android:layout_width="match_parent" -            android:layout_height="300dp" +            android:layout_height="250dp"              android:foreground="@drawable/b3"              android:foregroundGravity="center_vertical|center|center_horizontal|fill"              android:src="@drawable/b3" @@ -28,9 +28,9 @@              android:id="@+id/tvFragmentProfileInfoContainer"              android:layout_width="0dp" -            android:layout_height="199dp" +            android:layout_height="240dp"              android:layout_marginStart="20dp" -            android:layout_marginTop="150dp" +            android:layout_marginTop="120dp"              android:layout_marginEnd="20dp"              android:adjustViewBounds="true"              android:background="@drawable/profile_view_background" @@ -46,10 +46,10 @@          <androidx.cardview.widget.CardView              android:id="@+id/cvFragmentHomePageProfile" -            android:layout_width="140dp" -            android:layout_height="140dp" +            android:layout_width="130dp" +            android:layout_height="130dp"              android:layout_gravity="center" -            android:layout_marginTop="80dp" +            android:layout_marginTop="60dp"              android:elevation="10dp"              app:cardCornerRadius="250dp"              app:layout_constraintEnd_toEndOf="parent" @@ -125,17 +125,18 @@              android:layout_height="319dp"              app:layout_constraintBottom_toBottomOf="parent"              app:layout_constraintEnd_toEndOf="parent" +            app:layout_constraintHorizontal_bias="0.0"              app:layout_constraintStart_toStartOf="parent" -            app:layout_constraintTop_toTopOf="@+id/divider"> -        </FrameLayout> +            app:layout_constraintTop_toTopOf="@+id/divider" +            app:layout_constraintVertical_bias="1.0"></FrameLayout>          <TableLayout              android:layout_width="363dp" -            android:layout_height="122dp" +            android:layout_height="wrap_content"              android:layout_marginStart="30dp" -            android:layout_marginTop="8dp" +            android:layout_marginTop="5dp"              android:layout_marginEnd="30dp"              android:layout_marginBottom="8dp"              android:elevation="1dp" @@ -145,7 +146,8 @@              app:layout_constraintBottom_toBottomOf="@+id/tvFragmentProfileInfoContainer"              app:layout_constraintEnd_toEndOf="parent"              app:layout_constraintStart_toStartOf="parent" -            app:layout_constraintTop_toBottomOf="@+id/cvFragmentHomePageProfile"> +            app:layout_constraintTop_toBottomOf="@+id/cvFragmentHomePageProfile" +            app:layout_constraintVertical_bias="0.35000002">              <TableRow                  android:layout_width="match_parent" @@ -158,47 +160,13 @@                      android:layout_height="match_parent"                      android:layout_column="1"                      android:layout_gravity="center" -                    android:layout_marginBottom="5dp"                      android:text="Petar Petrović" -                    android:textSize="20sp" /> -            </TableRow> - -            <TableRow> - -                <androidx.constraintlayout.widget.ConstraintLayout android:layout_span="3"> - -                    <ImageButton - -                        android:id="@+id/ibActivityUserProfileFollow" -                        android:layout_width="115dp" -                        android:layout_height="40dp" -                        android:layout_marginStart="16dp" -                        android:background="@drawable/rounded_transparent_button" -                        android:foreground="@drawable/button_follow" -                        app:layout_constraintBottom_toBottomOf="parent" -                        app:layout_constraintStart_toStartOf="parent" -                        app:layout_constraintTop_toTopOf="parent" -                        app:layout_constraintVertical_bias="0.0" -                        tools:ignore="TouchTargetSizeCheck" /> - -                    <ImageButton -                        android:layout_width="115dp" -                        android:layout_height="40dp" -                        android:layout_gravity="center" -                        android:layout_marginEnd="16dp" -                        android:height="40dp" -                        android:background="@drawable/rounded_transparent_button" -                        android:foreground="@drawable/button_chat" -                        app:layout_constraintBottom_toBottomOf="parent" -                        app:layout_constraintEnd_toEndOf="parent" -                        app:layout_constraintTop_toTopOf="parent" -                        app:layout_constraintVertical_bias="0.0" -                        tools:ignore="SpeakableTextPresentCheck" /> -                </androidx.constraintlayout.widget.ConstraintLayout> +                    android:textStyle="bold" +                    android:textSize="23sp" />              </TableRow> -            <TableRow android:layout_marginTop="5dp"> +            <TableRow android:layout_marginTop="30dp">                  <TextView                      android:id="@+id/tvFragmentUserProfilePosts" @@ -220,30 +188,81 @@                      android:text="PRAĆENJA" />              </TableRow> -            <TableRow> - +            <TableRow +                android:layout_height="wrap_content" +                >                  <TextView                      android:id="@+id/tvActivityUserProfilePostsNo"                      android:layout_width="110dp" -                    android:layout_height="match_parent" +                    android:layout_height="wrap_content"                      android:gravity="center"                      android:text="156" -                    android:textFontWeight="700" /> +                    android:textSize="20dp" +                    android:textStyle="bold" />                  <TextView                      android:id="@+id/tvActivityUserProfileFollowersNo"                      android:layout_width="110dp"                      android:gravity="center" -                    android:text="50" /> +                    android:text="50" +                    android:textSize="20dp" +                    android:textStyle="bold"/>                  <TextView                      android:id="@+id/tvActivityUserProfileFollowNo"                      android:layout_width="110dp"                      android:gravity="center" -                    android:text="40" /> +                    android:text="40" +                    android:textSize="20dp" +                    android:textStyle="bold"/>              </TableRow> +            <TableRow +                android:layout_height="wrap_content" +                android:layout_marginTop="10dp" +                > + +                <androidx.constraintlayout.widget.ConstraintLayout android:layout_span="3"> + +                    <Button + +                        android:id="@+id/btnActivityUserProfileFollow" +                        android:layout_width="0dp" +                        android:layout_height="30dp" +                        android:layout_marginStart="16dp" +                        android:layout_marginEnd="8dp" +                        android:drawableLeft="@drawable/ic_outline_person_add_alt_24" +                        android:text="PRATI" +                        android:insetTop="0dp" +                        android:insetBottom="0dp" +                        app:shapeAppearanceOverlay="@style/Circular" +                        app:layout_constraintBottom_toBottomOf="parent" +                        app:layout_constraintEnd_toStartOf="@+id/activityUserProfileOpenChat" +                        app:layout_constraintStart_toStartOf="parent" +                        app:layout_constraintTop_toTopOf="parent" +                        app:layout_constraintVertical_bias="0.13" +                        tools:ignore="TouchTargetSizeCheck" /> + +                    <ImageButton +                        android:id="@+id/activityUserProfileOpenChat" +                        android:layout_width="35dp" +                        android:layout_height="30dp" +                        android:layout_gravity="center" +                        android:layout_marginEnd="16dp" +                        android:height="40dp" +                        android:background="@drawable/rounded_button" +                        android:backgroundTint="#4DB6AC" +                        android:src="@drawable/ic_round_message_24" +                        app:layout_constraintBottom_toBottomOf="parent" +                        app:layout_constraintEnd_toEndOf="parent" +                        app:layout_constraintStart_toEndOf="@+id/btnActivityUserProfileFollow" +                        app:layout_constraintTop_toTopOf="parent" +                        app:layout_constraintVertical_bias="0.0" +                        app:shapeAppearanceOverlay="@style/Circular" +                        tools:ignore="SpeakableTextPresentCheck" /> +                </androidx.constraintlayout.widget.ConstraintLayout> +            </TableRow>          </TableLayout>      </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_profile.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_profile.xml deleted file mode 100644 index 15031e3..0000000 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_profile.xml +++ /dev/null @@ -1,248 +0,0 @@ -<?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.FragmentUserProfile"> - - -    <androidx.constraintlayout.widget.ConstraintLayout -        android:layout_width="match_parent" -        android:layout_height="match_parent"> - -        <ImageView - -            android:id="@+id/imageView3" -            android:layout_width="match_parent" -            android:layout_height="300dp" -            android:foreground="@drawable/b3" -            android:foregroundGravity="center_vertical|center|center_horizontal|fill" -            android:src="@drawable/b3" -            app:layout_constraintEnd_toEndOf="parent" -            app:layout_constraintStart_toStartOf="parent" -            app:layout_constraintTop_toTopOf="parent" /> - - -        <com.google.android.material.imageview.ShapeableImageView - -            android:id="@+id/tvFragmentProfileInfoContainer" -            android:layout_width="0dp" -            android:layout_height="199dp" -            android:layout_marginStart="20dp" -            android:layout_marginTop="150dp" -            android:layout_marginEnd="20dp" -            android:adjustViewBounds="true" -            android:background="@drawable/profile_view_background" - -            android:elevation="1dp" -            android:scaleType="fitEnd" -            app:layout_constraintEnd_toEndOf="parent" -            app:layout_constraintHorizontal_bias="0.0" -            app:layout_constraintStart_toStartOf="parent" -            app:layout_constraintTop_toTopOf="@+id/imageView3" -            app:shapeAppearanceOverlay="@style/imageViewRoundedEdge" /> - - -        <androidx.cardview.widget.CardView -            android:id="@+id/cvFragmentHomePageProfile" -            android:layout_width="140dp" -            android:layout_height="140dp" -            android:layout_gravity="center" -            android:layout_marginTop="80dp" -            android:elevation="10dp" -            app:cardCornerRadius="250dp" -            app:layout_constraintEnd_toEndOf="parent" -            app:layout_constraintStart_toStartOf="parent" -            app:layout_constraintTop_toTopOf="parent"> - -            <ImageView - -                android:id="@+id/tvFragmentProfileProfilePicture" -                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> - -        <View -            android:id="@+id/divider" -            android:layout_width="409dp" -            android:layout_height="1dp" -            android:background="?android:attr/listDivider" -            app:layout_constraintEnd_toEndOf="parent" -            app:layout_constraintStart_toStartOf="parent" -            app:layout_constraintTop_toBottomOf="@+id/btnFragmentUserProfileShowPosts" /> - -        <Button -            android:id="@+id/btnFragmentUserProfileShowPosts" -            android:layout_width="wrap_content" -            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:id="@+id/btnFragmentUserProfileShowData" -            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" - -            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_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/btnFragmentUserProfileShowPosts" -            app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> - -        <FrameLayout -            android:id="@+id/flFragmentProfileFragmentContainer" -            android:layout_width="409dp" -            android:layout_height="319dp" -            app:layout_constraintBottom_toBottomOf="parent" -            app:layout_constraintEnd_toEndOf="parent" -            app:layout_constraintStart_toStartOf="parent" -            app:layout_constraintTop_toTopOf="@+id/divider"> -        </FrameLayout> - -        <TableLayout -            android:elevation="1dp" - -            android:layout_width="0dp" -            android:layout_height="0dp" -            android:layout_marginStart="30dp" -            android:layout_marginTop="8dp" -            android:layout_marginEnd="30dp" -            android:layout_marginBottom="8dp" -            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"> - -            <TableRow android:layout_column="1"> - -                <TextView -                    android:id="@+id/tvFragmentUserProfileName" -                    android:layout_width="wrap_content" -                    android:layout_height="match_parent" -                    android:layout_column="1" -                    android:layout_gravity="center" -                    android:text="Petar Petrović" -                    android:textSize="20sp" -                    android:layout_marginBottom="5dp"/> -            </TableRow> - -            <TableRow> -                <androidx.constraintlayout.widget.ConstraintLayout -                    android:layout_span="3"> - -                    <ImageButton - -                        android:id="@+id/materialButton" -                        android:layout_width="115dp" -                        android:layout_height="40dp" -                        android:layout_marginStart="16dp" -                        android:background="@drawable/rounded_transparent_button" -                        android:foreground="@drawable/button_follow" -                        app:layout_constraintBottom_toBottomOf="parent" -                        app:layout_constraintStart_toStartOf="parent" -                        app:layout_constraintTop_toTopOf="parent" -                        app:layout_constraintVertical_bias="0.0" -                        tools:ignore="TouchTargetSizeCheck" /> - -                    <ImageButton -                        android:layout_width="115dp" -                        android:layout_height="40dp" -                        android:layout_gravity="center" -                        android:layout_marginEnd="16dp" -                        android:height="40dp" -                        android:background="@drawable/rounded_transparent_button" -                        android:foreground="@drawable/button_chat" -                        app:layout_constraintBottom_toBottomOf="parent" -                        app:layout_constraintEnd_toEndOf="parent" -                        app:layout_constraintTop_toTopOf="parent" -                        app:layout_constraintVertical_bias="0.0" -                        tools:ignore="SpeakableTextPresentCheck" /> -                </androidx.constraintlayout.widget.ConstraintLayout> -            </TableRow> - - -            <TableRow -                android:layout_marginTop="5dp"> - -                <TextView -                    android:id="@+id/tvFragmentUserProfilePosts" -                    android:layout_width="110dp" -                    android:gravity="center" -                    android:text="OBJAVE" /> - -                <TextView -                    android:id="@+id/tvFragmentUserProfileFollowers" -                    android:layout_width="10dp" -                    android:gravity="center" -                    android:text="PRATIOCI" /> - -                <TextView -                    android:id="@+id/tvFragmentUserProfileFollow" - -                    android:layout_width="110dp" -                    android:gravity="center" -                    android:text="PRAĆENJA" /> -            </TableRow> - -            <TableRow> - -                <TextView -                    android:id="@+id/tvFragmentUserProfilePostsNo" -                    android:layout_width="110dp" -                    android:gravity="center" -                    android:textFontWeight="700" -                    android:text="156" /> - -                <TextView -                    android:id="@+id/tvFragmentUserProfileFollowersNo" -                    android:layout_width="110dp" -                    android:gravity="center" -                    android:text="50" /> - -                <TextView -                    android:id="@+id/tvFragmentUserProfileFollowNo" -                    android:layout_width="110dp" -                    android:gravity="center" -                    android:text="40" /> - -            </TableRow> - -        </TableLayout> - -    </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 8fcd452..8c8a1fd 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml @@ -11,7 +11,7 @@          <item name="color">@color/white</item>      </style>      <style name="Circular"> -        <item name="cornerSize">10dp</item> +        <item name="cornerSize">12dp</item>      </style>      <style name="roundedBottom">  | 
