diff options
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 Binary files differnew file mode 100644 index 0000000..5a45901 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_addpost.png 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 Binary files differnew file mode 100644 index 0000000..79684b3 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_browse.png 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 Binary files differnew file mode 100644 index 0000000..c6da75f --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_home.png 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 Binary files differnew file mode 100644 index 0000000..d065a96 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-hdpi/ic_nav_profile.png 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 Binary files differnew file mode 100644 index 0000000..6ab5495 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_addpost.png 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 Binary files differnew file mode 100644 index 0000000..4356671 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_browse.png 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 Binary files differnew file mode 100644 index 0000000..cb1f92f --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_home.png 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 Binary files differnew file mode 100644 index 0000000..9de92dc --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-mdpi/ic_nav_profile.png 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 Binary files differnew file mode 100644 index 0000000..d58180b --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_addpost.png 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 Binary files differnew file mode 100644 index 0000000..26b1bf3 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_browse.png 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 Binary files differnew file mode 100644 index 0000000..f6c17d5 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_home.png 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 Binary files differnew file mode 100644 index 0000000..8c2ff94 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/ic_nav_profile.png 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 Binary files differnew file mode 100644 index 0000000..573a645 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_addpost.png 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 Binary files differnew file mode 100644 index 0000000..90f6390 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_browse.png 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 Binary files differnew file mode 100644 index 0000000..40d14fb --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_home.png 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 Binary files differnew file mode 100644 index 0000000..99793cc --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xxhdpi/ic_nav_profile.png 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  | 
