aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Backend/Api/Api/Services/UserService.cs8
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_addpost.xml11
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_browse.xml11
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_home.xml11
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_profile.xml11
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_addpost.pngbin0 -> 538 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_browse.pngbin0 -> 552 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_home.pngbin0 -> 265 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_profile.pngbin0 -> 312 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_addpost.pngbin0 -> 306 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_browse.pngbin0 -> 350 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_home.pngbin0 -> 239 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_profile.pngbin0 -> 234 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_addpost.pngbin0 -> 725 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_browse.pngbin0 -> 774 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_home.pngbin0 -> 402 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_profile.pngbin0 -> 385 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_addpost.pngbin0 -> 1142 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_browse.pngbin0 -> 1239 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_home.pngbin0 -> 617 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_profile.pngbin0 -> 559 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml10
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt46
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/SampleAdapter.kt29
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt76
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/ListItemModel.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_navigation.xml28
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_post.xml2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_browse.xml2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml24
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml19
37 files changed, 267 insertions, 52 deletions
diff --git a/Backend/Api/Api/Services/UserService.cs b/Backend/Api/Api/Services/UserService.cs
index 59e1965..84c4465 100644
--- a/Backend/Api/Api/Services/UserService.cs
+++ b/Backend/Api/Api/Services/UserService.cs
@@ -42,12 +42,12 @@ namespace Api.Services
public async Task<User> getUserByEmail(string email)
{
- return await _users.Find(x => x.email == email).SingleAsync();
+ return await _users.Find(x => x.email == email).SingleOrDefaultAsync();
}
public async Task<User> getUserByUsername(string username)
{
- return await _users.Find(x => x.username == username).SingleAsync();
+ return await _users.Find(x => x.username == username).SingleOrDefaultAsync();
}
public async Task<List<User>> getUsers()
@@ -57,7 +57,7 @@ namespace Api.Services
public async Task<User> getUserById(string id)
{
- return await _users.Find(user => user._id == id).SingleAsync();
+ return await _users.Find(user => user._id == id).SingleOrDefaultAsync();
}
@@ -66,7 +66,7 @@ namespace Api.Services
/* vraca broj izmenjenih korisnika
* ovako je odradjeno da bi radilo i kada se posalje potpuno novi objekat User-a bez generisanog _id polja
*/
- User foundUser = await _users.Find(x => x.email == user.email).SingleAsync();
+ User foundUser = await _users.Find(x => x.email == user.email).SingleOrDefaultAsync();
if (foundUser!=null && user._id==null)
{
user._id = foundUser._id;
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_addpost.xml b/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_addpost.xml
new file mode 100644
index 0000000..768552f
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_addpost.xml
@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="#333333"
+ android:alpha="0.6">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M13,7h-2v4L7,11v2h4v4h2v-4h4v-2h-4L13,7zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/>
+</vector>
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_browse.xml b/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_browse.xml
new file mode 100644
index 0000000..8beebb7
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_browse.xml
@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="#333333"
+ android:alpha="0.6">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM18.92,8h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2L4.26,14zM5.08,16h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zM8.03,8L5.08,8c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14L9.66,14c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zM14.59,19.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
+</vector>
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_home.xml b/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_home.xml
new file mode 100644
index 0000000..cd6cfd6
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_home.xml
@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="#333333"
+ android:alpha="0.6">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
+</vector>
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_profile.xml b/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_profile.xml
new file mode 100644
index 0000000..198e013
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-anydpi/ic_nav_profile.xml
@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="#333333"
+ android:alpha="0.6">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
+</vector>
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_addpost.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_addpost.png
new file mode 100644
index 0000000..5a45901
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_addpost.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_browse.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_browse.png
new file mode 100644
index 0000000..79684b3
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_browse.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_home.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_home.png
new file mode 100644
index 0000000..c6da75f
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_home.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_profile.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_profile.png
new file mode 100644
index 0000000..d065a96
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_profile.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_addpost.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_addpost.png
new file mode 100644
index 0000000..6ab5495
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_addpost.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_browse.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_browse.png
new file mode 100644
index 0000000..4356671
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_browse.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_home.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_home.png
new file mode 100644
index 0000000..cb1f92f
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_home.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_profile.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_profile.png
new file mode 100644
index 0000000..9de92dc
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_profile.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_addpost.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_addpost.png
new file mode 100644
index 0000000..d58180b
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_addpost.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_browse.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_browse.png
new file mode 100644
index 0000000..26b1bf3
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_browse.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_home.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_home.png
new file mode 100644
index 0000000..f6c17d5
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_home.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_profile.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_profile.png
new file mode 100644
index 0000000..8c2ff94
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_profile.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_addpost.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_addpost.png
new file mode 100644
index 0000000..573a645
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_addpost.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_browse.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_browse.png
new file mode 100644
index 0000000..90f6390
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_browse.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_home.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_home.png
new file mode 100644
index 0000000..40d14fb
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_home.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_profile.png b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_profile.png
new file mode 100644
index 0000000..99793cc
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_profile.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
index e0a5a2b..93463e8 100644
--- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
+++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
@@ -16,8 +16,14 @@
android:usesCleartextTraffic="true"
tools:targetApi="31">
<activity
- android:name=".Activities.ActivityLoginRegister"
- />
+ android:name=".NavigationActivity"
+ android:exported="false">
+ <meta-data
+ android:name="android.app.lib_name"
+ android:value="" />
+ </activity>
+ <activity android:name=".Activities.ActivityLoginRegister" />
+ <activity android:name=".Activities.NavigationActivity"/>
<activity
android:name=".MainActivity"
android:exported="true">
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
new file mode 100644
index 0000000..0933460
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt
@@ -0,0 +1,46 @@
+package com.example.brzodolokacije.Activities
+
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.view.View
+import android.widget.Button
+import androidx.fragment.app.Fragment
+import com.example.brzodolokacije.Fragments.FragmentAddPost
+import com.example.brzodolokacije.Fragments.FragmentBrowse
+import com.example.brzodolokacije.Fragments.FragmentHome
+import com.example.brzodolokacije.Fragments.FragmentProfile
+import com.example.brzodolokacije.R
+import com.google.android.material.bottomnavigation.BottomNavigationView
+
+class NavigationActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_navigation)
+
+ val homeFragment=FragmentHome()
+ val browseFragment=FragmentBrowse()
+ val addPostFragment=FragmentAddPost()
+ val profileFragment=FragmentProfile()
+ val bottomNav=findViewById<View>(R.id.bottomNavigationView) as BottomNavigationView
+ setCurrentFragment(homeFragment)
+ bottomNav.setOnNavigationItemSelectedListener {
+ when(it.itemId){
+ R.id.navHome->setCurrentFragment(homeFragment)
+ R.id.navAddPost->setCurrentFragment(addPostFragment)
+ R.id.navBrowse->setCurrentFragment(browseFragment)
+ R.id.navProfile->setCurrentFragment(profileFragment)
+
+ }
+ true
+ }
+
+
+ }
+ private fun setCurrentFragment(fragment: Fragment)=
+ supportFragmentManager.beginTransaction().apply {
+ replace(R.id.flNavigationFragment,fragment)
+ commit()
+ }
+
+
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/SampleAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/SampleAdapter.kt
new file mode 100644
index 0000000..12f019f
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/SampleAdapter.kt
@@ -0,0 +1,29 @@
+package com.example.brzodolokacije.Adapters
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.example.brzodolokacije.Models.ListItemModel
+import com.example.brzodolokacije.databinding.ListItemBinding
+
+class SampleAdapter (val items : MutableList<ListItemModel>)
+ : RecyclerView.Adapter<SampleAdapter.ViewHolder>(){
+ private lateinit var binding: ListItemBinding
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+ val inflater = LayoutInflater.from(parent.context)
+ binding=ListItemBinding.inflate(inflater,parent,false)
+ return ViewHolder(binding)
+ }
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+ holder.bind(items[position])
+ }
+ override fun getItemCount() = items.size
+ inner class ViewHolder(itemView : ListItemBinding) : RecyclerView.ViewHolder(itemView.root){
+ fun bind(item : ListItemModel){
+ binding.apply {
+ tvId.text=item.id.toString()
+ tvName.text=item.name
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt
index dff3948..855cffc 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt
@@ -17,7 +17,7 @@ private const val ARG_PARAM2 = "param2"
* Use the [FragmentAddPost.newInstance] factory method to
* create an instance of this fragment.
*/
-class FragmentAddPost : Fragment() {
+class FragmentAddPost : Fragment(R.layout.fragment_add_post) {
// TODO: Rename and change types of parameters
private var param1: String? = null
private var param2: String? = null
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt
index 7ac572f..1bd98a0 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt
@@ -17,7 +17,7 @@ private const val ARG_PARAM2 = "param2"
* Use the [FragmentBrowse.newInstance] factory method to
* create an instance of this fragment.
*/
-class FragmentBrowse : Fragment() {
+class FragmentBrowse : Fragment(R.layout.fragment_browse) {
// TODO: Rename and change types of parameters
private var param1: String? = null
private var param2: String? = null
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt
index 397e1cf..99f4f4a 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt
@@ -1,60 +1,66 @@
package com.example.brzodolokacije.Fragments
import android.os.Bundle
+import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.Button
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.example.brzodolokacije.Adapters.SampleAdapter
+import com.example.brzodolokacije.Models.ListItemModel
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"
+import com.example.brzodolokacije.databinding.FragmentHomeBinding
/**
* A simple [Fragment] subclass.
* Use the [FragmentHome.newInstance] factory method to
* create an instance of this fragment.
*/
-class FragmentHome : Fragment() {
- // TODO: Rename and change types of parameters
- private var param1: String? = null
- private var param2: String? = null
+
+class FragmentHome : Fragment(R.layout.fragment_home) {
+
+ private lateinit var binding: FragmentHomeBinding
+ private var nameList : MutableList<ListItemModel> = mutableListOf()
+ private var layoutManagerVar: RecyclerView.LayoutManager? = null
+ private var adapterVar: RecyclerView.Adapter<SampleAdapter.ViewHolder>? = null
+ private var recyclerView:RecyclerView?=null
+
+ override fun onViewCreated(itemView: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(itemView, savedInstanceState)
+ Log.d("Main","blabla")
+
+ }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- arguments?.let {
- param1 = it.getString(ARG_PARAM1)
- param2 = it.getString(ARG_PARAM2)
- }
+ //load data for the list
+ loadData()
+ adapterVar=SampleAdapter(nameList)
+ layoutManagerVar=LinearLayoutManager(activity)
}
+
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_home, container, false)
+ val rootView = inflater?.inflate(R.layout.fragment_home, container, false)
+ recyclerView = rootView?.findViewById(R.id.rvMain)
+ // rest of my stuff
+ recyclerView?.setHasFixedSize(true)
+ recyclerView?.layoutManager = layoutManagerVar
+ recyclerView?.adapter = adapterVar
+ return rootView
}
-
- 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 FragmentHome.
- */
- // TODO: Rename and change types and number of parameters
- @JvmStatic
- fun newInstance(param1: String, param2: String) =
- FragmentHome().apply {
- arguments = Bundle().apply {
- putString(ARG_PARAM1, param1)
- putString(ARG_PARAM2, param2)
- }
- }
+ fun loadData(){
+ nameList.add(ListItemModel(1,"Sample 1"))
+ nameList.add(ListItemModel(2,"Sample 2"))
+ nameList.add(ListItemModel(3,"Sample 3"))
+ nameList.add(ListItemModel(4,"Sample 4"))
+ nameList.add(ListItemModel(5,"Sample 5"))
+ nameList.add(ListItemModel(6,"Sample 6"))
}
-} \ No newline at end of file
+}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt
index 3bc62bd..478a08b 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt
@@ -1,5 +1,6 @@
package com.example.brzodolokacije.Fragments
+import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import androidx.fragment.app.Fragment
@@ -10,6 +11,8 @@ import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
+import com.example.brzodolokacije.Activities.ActivityLoginRegister
+import com.example.brzodolokacije.Activities.NavigationActivity
import com.example.brzodolokacije.Interfaces.IAuthApi
import com.example.brzodolokacije.Models.Auth.Login
import com.example.brzodolokacije.R
@@ -74,6 +77,8 @@ class FragmentLogin : Fragment() {
).show();
//TODO(navigate to main page)
SharedPreferencesHelper.addValue("jwt",token,activity!!)
+ val intent= Intent(activity!!, NavigationActivity::class.java)
+ startActivity(intent)
}else{
if(response.errorBody()!=null)
Toast.makeText(activity, response.errorBody()!!.string(), Toast.LENGTH_LONG).show();
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 87c9d56..a63bc3c 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
@@ -17,7 +17,7 @@ private const val ARG_PARAM2 = "param2"
* Use the [FragmentProfile.newInstance] factory method to
* create an instance of this fragment.
*/
-class FragmentProfile : Fragment() {
+class FragmentProfile : Fragment(R.layout.fragment_profile) {
// TODO: Rename and change types of parameters
private var param1: String? = null
private var param2: String? = null
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/ListItemModel.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/ListItemModel.kt
new file mode 100644
index 0000000..48e519e
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/ListItemModel.kt
@@ -0,0 +1,6 @@
+package com.example.brzodolokacije.Models
+
+data class ListItemModel (
+ val id:Int ,
+ val name: String
+ ) \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_navigation.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_navigation.xml
new file mode 100644
index 0000000..afe1bbf
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_navigation.xml
@@ -0,0 +1,28 @@
+<?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.NavigationActivity">
+
+ <FrameLayout
+ android:id="@+id/flNavigationFragment"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.5"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <com.google.android.material.bottomnavigation.BottomNavigationView
+ android:id="@+id/bottomNavigationView"
+ android:layout_width="match_parent"
+ android:layout_height="75dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.5"
+ app:layout_constraintStart_toStartOf="parent"
+ app:menu="@menu/bottom_nav_menu"/>
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_post.xml
index 573032e..9bed54c 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_post.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_post.xml
@@ -9,6 +9,6 @@
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:text="@string/hello_blank_fragment" />
+ android:text="Post Add" />
</FrameLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_browse.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_browse.xml
index 666acb9..3287683 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_browse.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_browse.xml
@@ -9,6 +9,6 @@
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:text="@string/hello_blank_fragment" />
+ android:text="Browse" />
</FrameLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml
index 2395f65..4d066aa 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml
@@ -1,14 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Fragments.FragmentHome">
- <!-- TODO: Update blank fragment layout -->
- <TextView
- android:layout_width="match_parent"
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/rvMain"
android:layout_height="match_parent"
- android:text="@string/hello_blank_fragment" />
+ android:layout_width="match_parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"/>
-</FrameLayout> \ No newline at end of file
+</FrameLayout>
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 6a5ff4a..5fb3efe 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml
@@ -9,6 +9,6 @@
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:text="@string/hello_blank_fragment" />
+ android:text="Profile" />
</FrameLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml
new file mode 100644
index 0000000..fe53ac5
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml
@@ -0,0 +1,24 @@
+<?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"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="#B3E5FC"
+ android:layout_margin="5dp"
+ android:padding="5dp">
+ <TextView
+ android:id="@+id/tvId"
+ android:text="Id"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ <TextView
+ android:id="@+id/tvName"
+ android:text="Name"
+ android:layout_marginTop="5dp"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/tvId" />
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml b/Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml
new file mode 100644
index 0000000..da6577e
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:id="@+id/navHome"
+ android:title="Home"
+ android:icon="@drawable/ic_nav_home"/>
+ <item
+ android:id="@+id/navBrowse"
+ android:title="Browse"
+ android:icon="@drawable/ic_nav_browse"/>
+ <item
+ android:id="@+id/navAddPost"
+ android:title="Post"
+ android:icon="@drawable/ic_nav_addpost"/>
+ <item
+ android:id="@+id/navProfile"
+ android:title="Profile"
+ android:icon="@drawable/ic_nav_profile"/>
+</menu> \ No newline at end of file