aboutsummaryrefslogtreecommitdiff
path: root/Client
diff options
context:
space:
mode:
Diffstat (limited to 'Client')
-rw-r--r--Client/.gitkeep0
-rw-r--r--Client/BrzoDoLokacije/.gitignore15
-rw-r--r--Client/BrzoDoLokacije/.idea/.gitignore3
-rw-r--r--Client/BrzoDoLokacije/.idea/compiler.xml6
-rw-r--r--Client/BrzoDoLokacije/.idea/gradle.xml19
-rw-r--r--Client/BrzoDoLokacije/.idea/misc.xml10
-rw-r--r--Client/BrzoDoLokacije/.idea/vcs.xml6
-rw-r--r--Client/BrzoDoLokacije/app/.gitignore1
-rw-r--r--Client/BrzoDoLokacije/app/build.gradle55
-rw-r--r--Client/BrzoDoLokacije/app/proguard-rules.pro21
-rw-r--r--Client/BrzoDoLokacije/app/src/androidTest/java/com/example/brzodolokacije/ExampleInstrumentedTest.kt24
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/ic_launcher-playstore.pngbin0 -> 130128 bytes
-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/b1.jpgbin0 -> 8227096 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/debug/res/mipmap-anydpi-v26/ic_launcher.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher.pngbin0 -> 5480 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_background.pngbin0 -> 14755 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.pngbin0 -> 9031 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_round.pngbin0 -> 7975 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher.pngbin0 -> 3178 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_background.pngbin0 -> 5931 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.pngbin0 -> 5018 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_round.pngbin0 -> 4396 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher.pngbin0 -> 8641 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_background.pngbin0 -> 24611 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.pngbin0 -> 13685 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.pngbin0 -> 12343 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher.pngbin0 -> 16650 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_background.pngbin0 -> 40844 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.pngbin0 -> 23889 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.pngbin0 -> 22822 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 26118 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_background.pngbin0 -> 49540 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.pngbin0 -> 35867 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.pngbin0 -> 34872 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml37
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt27
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt28
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityLoginRegister.kt65
-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.kt32
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt48
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt60
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt61
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt151
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt60
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyRecensions.kt60
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt93
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt143
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt60
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt15
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt42
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/Login.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/Register.kt8
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/ListItemModel.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/LocationTypes.kt4
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt23
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt20
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/SharedPreferencesHelper.kt42
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable-v24/ic_launcher_foreground.xml30
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/b3.jpgbin0 -> 6089791 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/button_left_radius.xml12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/button_right_radius.xml12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/gradient.xml12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/ic_launcher_background.xml170
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/login_register_background_bottom_radius.xml16
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/login_register_background_top_radius.xml15
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_cyan_button.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_transparent_button.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_white_button_login.xml7
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/switch_login_register_on.xml6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password.xml75
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password_verify.xml106
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_login_register.xml101
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_main.xml13
-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.xml23
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_browse.xml14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml18
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_login.xml89
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_profile_info.xml14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_recensions.xml14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml226
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_register.xml123
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml27
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml19
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-hdpi/ic_launcher.webpbin0 -> 1404 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-hdpi/ic_launcher_round.webpbin0 -> 2898 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-mdpi/ic_launcher.webpbin0 -> 982 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-mdpi/ic_launcher_round.webpbin0 -> 1772 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-xhdpi/ic_launcher.webpbin0 -> 1900 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webpbin0 -> 3918 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-xxhdpi/ic_launcher.webpbin0 -> 2884 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webpbin0 -> 5914 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webpbin0 -> 3844 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webpbin0 -> 7778 bytes
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/values-night/themes.xml16
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/values/colors.xml11
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/values/strings.xml6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/values/styles.xml13
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/values/themes.xml15
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/xml/backup_rules.xml13
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/xml/data_extraction_rules.xml19
-rw-r--r--Client/BrzoDoLokacije/app/src/test/java/com/example/brzodolokacije/ExampleUnitTest.kt17
-rw-r--r--Client/BrzoDoLokacije/build.gradle6
-rw-r--r--Client/BrzoDoLokacije/gradle.properties23
-rw-r--r--Client/BrzoDoLokacije/gradle/wrapper/gradle-wrapper.jarbin0 -> 59203 bytes
-rw-r--r--Client/BrzoDoLokacije/gradle/wrapper/gradle-wrapper.properties6
-rw-r--r--Client/BrzoDoLokacije/gradlew185
-rw-r--r--Client/BrzoDoLokacije/gradlew.bat89
-rw-r--r--Client/BrzoDoLokacije/settings.gradle16
135 files changed, 3002 insertions, 0 deletions
diff --git a/Client/.gitkeep b/Client/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Client/.gitkeep
diff --git a/Client/BrzoDoLokacije/.gitignore b/Client/BrzoDoLokacije/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Client/BrzoDoLokacije/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/Client/BrzoDoLokacije/.idea/.gitignore b/Client/BrzoDoLokacije/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Client/BrzoDoLokacije/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Client/BrzoDoLokacije/.idea/compiler.xml b/Client/BrzoDoLokacije/.idea/compiler.xml
new file mode 100644
index 0000000..fb7f4a8
--- /dev/null
+++ b/Client/BrzoDoLokacije/.idea/compiler.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="CompilerConfiguration">
+ <bytecodeTargetLevel target="11" />
+ </component>
+</project> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/.idea/gradle.xml b/Client/BrzoDoLokacije/.idea/gradle.xml
new file mode 100644
index 0000000..a2d7c21
--- /dev/null
+++ b/Client/BrzoDoLokacije/.idea/gradle.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="GradleMigrationSettings" migrationVersion="1" />
+ <component name="GradleSettings">
+ <option name="linkedExternalProjectsSettings">
+ <GradleProjectSettings>
+ <option name="testRunner" value="GRADLE" />
+ <option name="distributionType" value="DEFAULT_WRAPPED" />
+ <option name="externalProjectPath" value="$PROJECT_DIR$" />
+ <option name="modules">
+ <set>
+ <option value="$PROJECT_DIR$" />
+ <option value="$PROJECT_DIR$/app" />
+ </set>
+ </option>
+ </GradleProjectSettings>
+ </option>
+ </component>
+</project> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/.idea/misc.xml b/Client/BrzoDoLokacije/.idea/misc.xml
new file mode 100644
index 0000000..bdd9278
--- /dev/null
+++ b/Client/BrzoDoLokacije/.idea/misc.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ExternalStorageConfigurationManager" enabled="true" />
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/build/classes" />
+ </component>
+ <component name="ProjectType">
+ <option name="id" value="Android" />
+ </component>
+</project> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/.idea/vcs.xml b/Client/BrzoDoLokacije/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/Client/BrzoDoLokacije/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
+ </component>
+</project> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/.gitignore b/Client/BrzoDoLokacije/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/.gitignore
@@ -0,0 +1 @@
+/build \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/build.gradle b/Client/BrzoDoLokacije/app/build.gradle
new file mode 100644
index 0000000..f6faf0d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/build.gradle
@@ -0,0 +1,55 @@
+plugins {
+ id 'com.android.application'
+ id 'org.jetbrains.kotlin.android'
+}
+
+android {
+ namespace 'com.example.brzodolokacije'
+ compileSdk 32
+
+ defaultConfig {
+ applicationId "com.example.brzodolokacije"
+ minSdk 21
+ targetSdk 32
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+ kotlinOptions {
+ jvmTarget = '1.8'
+ }
+ buildFeatures {
+ viewBinding true
+ }
+}
+
+dependencies {
+
+ implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.appcompat:appcompat:1.5.1'
+ implementation 'com.google.android.material:material:1.7.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+
+ //Retrofit
+ implementation 'com.squareup.retrofit2:retrofit:2.7.2'
+ implementation 'com.squareup.retrofit2:converter-gson:2.7.2'
+
+ //JWT
+ implementation 'com.auth0.android:jwtdecode:2.0.1'
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/proguard-rules.pro b/Client/BrzoDoLokacije/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/androidTest/java/com/example/brzodolokacije/ExampleInstrumentedTest.kt b/Client/BrzoDoLokacije/app/src/androidTest/java/com/example/brzodolokacije/ExampleInstrumentedTest.kt
new file mode 100644
index 0000000..ac8d356
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/androidTest/java/com/example/brzodolokacije/ExampleInstrumentedTest.kt
@@ -0,0 +1,24 @@
+package com.example.brzodolokacije
+
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.ext.junit.runners.AndroidJUnit4
+
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.junit.Assert.*
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+ @Test
+ fun useAppContext() {
+ // Context of the app under test.
+ val appContext = InstrumentationRegistry.getInstrumentation().targetContext
+ assertEquals("com.example.brzodolokacije", appContext.packageName)
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/debug/ic_launcher-playstore.png b/Client/BrzoDoLokacije/app/src/debug/ic_launcher-playstore.png
new file mode 100644
index 0000000..3e623b5
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/ic_launcher-playstore.png
Binary files differ
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/b1.jpg b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/b1.jpg
new file mode 100644
index 0000000..6c86a45
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/drawable-xhdpi/b1.jpg
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/debug/res/mipmap-anydpi-v26/ic_launcher.xml b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..4ae7d12
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@mipmap/ic_launcher_background"/>
+ <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..4ae7d12
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@mipmap/ic_launcher_background"/>
+ <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..3ab4acb
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_background.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_background.png
new file mode 100644
index 0000000..a8a6cb9
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_background.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..ce57665
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..54c4f06
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..4dfe37c
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_background.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_background.png
new file mode 100644
index 0000000..4465788
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_background.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..2093171
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..e394809
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..960bf6a
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_background.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..1934227
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_background.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..bc70fc1
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..6508da3
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..73df669
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_background.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..b2edcde
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_background.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..920c97d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..7c5c954
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..8a1b252
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_background.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..09cca42
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_background.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..2452c55
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..bc9a0c6
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..edf65a2
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <uses-permission android:name="android.permission.INTERNET" />
+
+ <application
+ android:allowBackup="true"
+ android:dataExtractionRules="@xml/data_extraction_rules"
+ android:fullBackupContent="@xml/backup_rules"
+ android:icon="@mipmap/ic_launcher"
+ android:label="@string/app_name"
+ android:roundIcon="@mipmap/ic_launcher_round"
+ android:supportsRtl="true"
+ android:theme="@style/Theme.BrzoDoLokacije"
+ android:usesCleartextTraffic="true"
+ tools:targetApi="31">
+ <activity android:name=".Activities.ActivityForgottenPasswordVerify" />
+ <activity android:name=".Activities.ActivityForgottenPassword" />
+ <activity android:name=".Activities.ActivityLoginRegister" />
+ <activity android:name=".Activities.NavigationActivity" />
+ <activity
+ android:name=".MainActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+
+ <meta-data
+ android:name="android.app.lib_name"
+ android:value="" />
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt
new file mode 100644
index 0000000..e7c9836
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt
@@ -0,0 +1,27 @@
+package com.example.brzodolokacije.Activities
+
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.view.View
+import android.widget.Button
+import android.widget.Toast
+import com.example.brzodolokacije.R
+
+class ActivityForgottenPassword : AppCompatActivity() {
+ private lateinit var sendCode: Button
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_forgotten_password)
+
+ sendCode=findViewById<View>(R.id.forgottenPasswordSendCode) as Button
+
+ sendCode.setOnClickListener{
+ intent= Intent(this, ActivityForgottenPasswordVerify::class.java)
+ startActivity(intent)
+ }
+
+ }
+
+
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt
new file mode 100644
index 0000000..6533237
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPasswordVerify.kt
@@ -0,0 +1,28 @@
+package com.example.brzodolokacije.Activities
+
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.view.View
+import android.widget.Button
+import android.widget.Toast
+import com.example.brzodolokacije.MainActivity
+import com.example.brzodolokacije.R
+
+class ActivityForgottenPasswordVerify : AppCompatActivity() {
+ private lateinit var changePassword: Button
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_forgotten_password_verify)
+
+ changePassword=findViewById<View>(R.id.btnChangePassword) as Button
+ changePassword.setOnClickListener{
+ Toast.makeText(
+ this, "Lozinka je uspešno promenjena.", Toast.LENGTH_LONG
+ ).show();
+
+ intent= Intent(this, ActivityLoginRegister::class.java)
+ startActivity(intent)
+ }
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityLoginRegister.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityLoginRegister.kt
new file mode 100644
index 0000000..f5843aa
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityLoginRegister.kt
@@ -0,0 +1,65 @@
+package com.example.brzodolokacije.Activities
+
+import android.graphics.drawable.Drawable
+import android.os.Build
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import android.util.Log
+import android.view.View
+import android.widget.Button
+import android.widget.Toast
+import androidx.annotation.RequiresApi
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.FragmentTransaction
+import com.example.brzodolokacije.Fragments.FragmentLogin
+import com.example.brzodolokacije.Fragments.FragmentRegister
+import com.example.brzodolokacije.R
+import com.google.android.material.internal.ContextUtils.getActivity
+
+class ActivityLoginRegister : AppCompatActivity() {
+
+ private lateinit var login: Button
+ private lateinit var register: Button
+
+
+
+ @RequiresApi(Build.VERSION_CODES.M)
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_login_register)
+ Log.d("main","123456")
+ login=findViewById<View>(R.id.btnFragmentActivityLRLogin) as Button
+ register=findViewById<View>(R.id.btnFragmentActivityLRRegister) as Button
+ //var fm: FragmentTransaction =supportFragmentManager.beginTransaction()
+ //fm.replace(R.id.flFragmentActivityLRFragmentsView,FragmentLogin())
+ var fm: FragmentTransaction =supportFragmentManager.beginTransaction()
+
+ fm.replace(R.id.flFragmentActivityLRFragmentsView,FragmentLogin())
+ fm.commit()
+ login.setOnClickListener{
+ login.setTextColor(getColor(R.color.white))
+ register.setTextColor(getColor(R.color.teal_700))
+ login.setBackgroundResource(R.drawable.rounded_cyan_button)
+ register.setBackgroundResource(R.drawable.rounded_transparent_button)
+ Log.d("main","prijavi se")
+ var fm: FragmentTransaction =supportFragmentManager.beginTransaction()
+
+ fm.replace(R.id.flFragmentActivityLRFragmentsView,FragmentLogin())
+ fm.commit()
+ }
+
+ register.setOnClickListener{
+ Log.d("main","prijavi se")
+ register.setTextColor(getColor(R.color.white))
+ login.setTextColor(getColor(R.color.teal_700))
+ register.setBackgroundResource(R.drawable.rounded_cyan_button)
+ login.setBackgroundResource(R.drawable.rounded_transparent_button)
+ var fm: FragmentTransaction =supportFragmentManager.beginTransaction()
+
+ fm.replace(R.id.flFragmentActivityLRFragmentsView, FragmentRegister())
+ fm.commit()
+ }
+ }
+
+}
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..c4ebbbb
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/SampleAdapter.kt
@@ -0,0 +1,32 @@
+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>(){
+ //constructer has one argument - list of objects that need to be displayed
+ //it is bound to xml of single item
+ 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){
+ //sets components of particular item
+ 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
new file mode 100644
index 0000000..b6452e9
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddPost.kt
@@ -0,0 +1,48 @@
+package com.example.brzodolokacije.Fragments
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Button
+import com.example.brzodolokacije.Activities.ActivityLoginRegister
+import com.example.brzodolokacije.Activities.NavigationActivity
+import com.example.brzodolokacije.R
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+
+
+class FragmentAddPost : Fragment(R.layout.fragment_add_post) {
+
+
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ val view:View=inflater.inflate(R.layout.fragment_add_post, container, false)
+ // Inflate the layout for this fragment
+ val logOutButton=view.findViewById<View>(R.id.btnFragmentAddLogOut) as Button
+ logOutButton.setOnClickListener{
+ logOut()
+ }
+ return view;
+ }
+
+ fun logOut(){
+ if(SharedPreferencesHelper.removeValue("jwt",requireActivity()))
+ {
+ val intent= Intent(requireActivity(), ActivityLoginRegister::class.java)
+ startActivity(intent)
+ }
+ }
+
+
+} \ No newline at end of file
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
new file mode 100644
index 0000000..1bd98a0
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt
@@ -0,0 +1,60 @@
+package com.example.brzodolokacije.Fragments
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.brzodolokacije.R
+
+// TODO: Rename parameter arguments, choose names that match
+// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+private const val ARG_PARAM1 = "param1"
+private const val ARG_PARAM2 = "param2"
+
+/**
+ * A simple [Fragment] subclass.
+ * Use the [FragmentBrowse.newInstance] factory method to
+ * create an instance of this 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
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ arguments?.let {
+ param1 = it.getString(ARG_PARAM1)
+ param2 = it.getString(ARG_PARAM2)
+ }
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_browse, container, false)
+ }
+
+ companion object {
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment FragmentBrowse.
+ */
+ // TODO: Rename and change types and number of parameters
+ @JvmStatic
+ fun newInstance(param1: String, param2: String) =
+ FragmentBrowse().apply {
+ arguments = Bundle().apply {
+ putString(ARG_PARAM1, param1)
+ putString(ARG_PARAM2, param2)
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt
new file mode 100644
index 0000000..fd5aa33
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHome.kt
@@ -0,0 +1,61 @@
+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
+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(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 onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ //load data for the list
+ loadData()
+ //instantiate adapter and linearLayout
+ adapterVar=SampleAdapter(nameList)
+ layoutManagerVar=LinearLayoutManager(activity)
+ }
+
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ val rootView = inflater?.inflate(R.layout.fragment_home, container, false)
+ recyclerView = rootView?.findViewById(R.id.rvMain)
+ // set recyclerView attributes
+ recyclerView?.setHasFixedSize(true)
+ recyclerView?.layoutManager = layoutManagerVar
+ recyclerView?.adapter = adapterVar
+ return rootView
+ }
+ 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"))
+ }
+}
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
new file mode 100644
index 0000000..6e9d75f
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt
@@ -0,0 +1,151 @@
+package com.example.brzodolokacije.Fragments
+
+import android.content.Intent
+import android.graphics.Color
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+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.Activities.ActivityForgottenPassword
+
+
+import com.example.brzodolokacije.Interfaces.IAuthApi
+import com.example.brzodolokacije.Models.Auth.Login
+import com.example.brzodolokacije.R
+import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import retrofit2.Call
+import retrofit2.Response
+
+
+class FragmentLogin : Fragment() {
+ // TODO: Rename and change types of parameters
+ private lateinit var password: EditText
+ private lateinit var email: EditText
+ private lateinit var forgottenPassword: TextView
+ private lateinit var login: Button
+ private lateinit var passwordString:String
+ private lateinit var emailString:String
+
+
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ val view:View=inflater.inflate(R.layout.fragment_login, container, false)
+
+
+ email = view.findViewById<View>(R.id.etFragmentLoginEmail) as EditText
+ password = view.findViewById<View>(R.id.etFragmentLoginPassword) as EditText
+ forgottenPassword = view.findViewById<View>(R.id.tvFragmentLoginForgottenPassword) as TextView
+ login=view.findViewById<View>(R.id.btnFragmentLoginLogin) as Button
+
+ //osluskivanje unosa
+
+ login.setOnClickListener{
+ emailString=email.text.toString().trim()
+ passwordString=password.text.toString().trim()
+ //prazan unos?
+ if(emailString.isEmpty())
+ {
+ email.hint="Unesite Email adresu"
+ email.setHintTextColor(Color.RED)
+ }/*
+ else{
+ if(checkEmail(emailString)==false){
+ email.hint="Pogrešan unos, unesite ispravnu Email adresu"
+ email.setHintTextColor(Color.RED)
+ }
+ }*/
+ if(passwordString.isEmpty())
+ {
+ password.hint = "Unesite lozinku"
+ password.setHintTextColor(Color.RED)
+
+ }/*
+ else{
+ if(checkPassword(passwordString)==false) {
+ password.hint = "Lozinka mora imati najmanje 6 karaktera"
+ password.setHintTextColor(Color.RED)
+ }
+ }
+*/
+ if(!emailString.isEmpty() && !passwordString.isEmpty()&& checkPassword(passwordString)==true && checkEmail(emailString)==true) {
+
+ var loginData= Login(emailString,passwordString)
+ val authApi= RetrofitHelper.getInstance().create(IAuthApi::class.java)
+ val request=authApi.login(loginData)
+
+ request.enqueue(object : retrofit2.Callback<String?> {
+ override fun onResponse(call: Call<String?>, response: Response<String?>) {
+ if(response.isSuccessful()){
+ val token=response.body().toString()
+ Toast.makeText(
+ activity, token, Toast.LENGTH_LONG
+ ).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();
+ }
+
+
+ }
+
+ override fun onFailure(call: Call<String?>, t: Throwable) {
+ Toast.makeText(
+ activity, t.toString(), Toast.LENGTH_LONG
+ ).show();
+ }
+ })
+
+ }
+ }
+
+ // zaboravljena lozinka
+ forgottenPassword.setOnClickListener{
+ val intent = Intent (getActivity(), ActivityForgottenPassword::class.java)
+ getActivity()?.startActivity(intent)
+ }
+
+
+
+
+
+ return view
+
+ }
+ fun checkEmail(emailString:String):Boolean{
+ val emailRegex = "^[A-Za-z](.*)([@]{1})(.{1,})(\\.)(.{1,})"
+ if(!(emailRegex.toRegex().matches(emailString))){
+ email.hint="Pogrešan unos, unesite ispravnu Email adresu"
+ email.setHintTextColor(Color.RED)
+ return false
+ }
+ else{
+ return true
+ }
+ }
+
+ fun checkPassword(passwordString:String):Boolean{
+ if(passwordString.length<6){
+ return false
+ }
+ return true
+ }
+
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt
new file mode 100644
index 0000000..9c4c370
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt
@@ -0,0 +1,60 @@
+package com.example.brzodolokacije.Fragments
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.brzodolokacije.R
+
+// TODO: Rename parameter arguments, choose names that match
+// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+private const val ARG_PARAM1 = "param1"
+private const val ARG_PARAM2 = "param2"
+
+/**
+ * A simple [Fragment] subclass.
+ * Use the [FragmentMyProfileInfo.newInstance] factory method to
+ * create an instance of this fragment.
+ */
+class FragmentMyProfileInfo : Fragment() {
+ // TODO: Rename and change types of parameters
+ private var param1: String? = null
+ private var param2: String? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ arguments?.let {
+ param1 = it.getString(ARG_PARAM1)
+ param2 = it.getString(ARG_PARAM2)
+ }
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_my_profile_info, container, false)
+ }
+
+ companion object {
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment FragmentMyProfileInfo.
+ */
+ // TODO: Rename and change types and number of parameters
+ @JvmStatic
+ fun newInstance(param1: String, param2: String) =
+ FragmentMyProfileInfo().apply {
+ arguments = Bundle().apply {
+ putString(ARG_PARAM1, param1)
+ putString(ARG_PARAM2, param2)
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyRecensions.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyRecensions.kt
new file mode 100644
index 0000000..ce8679a
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyRecensions.kt
@@ -0,0 +1,60 @@
+package com.example.brzodolokacije.Fragments
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.brzodolokacije.R
+
+// TODO: Rename parameter arguments, choose names that match
+// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+private const val ARG_PARAM1 = "param1"
+private const val ARG_PARAM2 = "param2"
+
+/**
+ * A simple [Fragment] subclass.
+ * Use the [FragmentMyRecensions.newInstance] factory method to
+ * create an instance of this fragment.
+ */
+class FragmentMyRecensions : Fragment() {
+ // TODO: Rename and change types of parameters
+ private var param1: String? = null
+ private var param2: String? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ arguments?.let {
+ param1 = it.getString(ARG_PARAM1)
+ param2 = it.getString(ARG_PARAM2)
+ }
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_my_recensions, container, false)
+ }
+
+ companion object {
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment FragmentMyRecensions.
+ */
+ // TODO: Rename and change types and number of parameters
+ @JvmStatic
+ fun newInstance(param1: String, param2: String) =
+ FragmentMyRecensions().apply {
+ arguments = Bundle().apply {
+ putString(ARG_PARAM1, param1)
+ putString(ARG_PARAM2, param2)
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt
new file mode 100644
index 0000000..a8176b0
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt
@@ -0,0 +1,93 @@
+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 android.widget.EditText
+import android.widget.TextView
+import androidx.fragment.app.FragmentTransaction
+import com.example.brzodolokacije.R
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+
+// TODO: Rename parameter arguments, choose names that match
+// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+private const val ARG_PARAM1 = "param1"
+private const val ARG_PARAM2 = "param2"
+
+/**
+ * A simple [Fragment] subclass.
+ * Use the [FragmentProfile.newInstance] factory method to
+ * create an instance of this fragment.
+ */
+class FragmentProfile : Fragment(R.layout.fragment_profile) {
+ // TODO: Rename and change types of parameters
+ private lateinit var username: TextView
+ private lateinit var name: TextView
+ private lateinit var postsCount: TextView
+ private lateinit var followersCount: TextView
+ private lateinit var followingCount:TextView
+ private lateinit var usernameString: String
+ private lateinit var nameString: String
+ private lateinit var postsCountString: String
+ private lateinit var followersCountString: String
+ private lateinit var followingCountString:String
+ private lateinit var showMyPosts: Button
+ private lateinit var showMyData: Button
+ private lateinit var showMyRecensions: Button
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ val view:View= inflater.inflate(R.layout.fragment_profile, container, false)
+ name = view.findViewById<View>(R.id.tvFragmentProfileName) as TextView
+ username = view.findViewById<View>(R.id.tvFragmentProfileUserName) as TextView
+ postsCount = view.findViewById<View>(R.id.tvFragmentProfilePostsNo) as TextView
+ followersCount = view.findViewById<View>(R.id.tvFragmentProfileFollowersNo) as TextView
+ followingCount = view.findViewById<View>(R.id.tvFragmentProfileFollowNo) as TextView
+
+ showMyPosts=view.findViewById<View>(R.id.btnFragmentProfileShowMyPosts) as Button
+ showMyData=view.findViewById<View>(R.id.btnFragmentProfileShowMyData) as Button
+ showMyRecensions=view.findViewById<View>(R.id.btnFragmentProfileShowMyRecensions) as Button
+ //podaci iz baze
+
+
+
+ showMyPosts.setOnClickListener{
+
+ var fm: FragmentTransaction =childFragmentManager.beginTransaction()
+
+ fm.replace(R.id.flFragmentProfileFragmentContainer,FragmentUserPosts())
+ fm.commit()
+ }
+
+
+ showMyData.setOnClickListener{
+
+ var fm: FragmentTransaction =childFragmentManager.beginTransaction()
+
+ fm.replace(R.id.flFragmentProfileFragmentContainer,FragmentMyProfileInfo())
+ fm.commit()
+ }
+
+ showMyRecensions.setOnClickListener{
+
+ var fm: FragmentTransaction =childFragmentManager.beginTransaction()
+
+ fm.replace(R.id.flFragmentProfileFragmentContainer,FragmentMyRecensions())
+ fm.commit()
+ }
+
+ return view
+ }
+
+
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt
new file mode 100644
index 0000000..9f028dc
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentRegister.kt
@@ -0,0 +1,143 @@
+package com.example.brzodolokacije.Fragments
+
+import android.graphics.BitmapFactory
+import android.graphics.Color
+import android.os.Bundle
+import android.util.Base64
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Button
+import android.widget.EditText
+import android.widget.Toast
+import com.example.brzodolokacije.Interfaces.IAuthApi
+import com.example.brzodolokacije.Models.Auth.Register
+import com.example.brzodolokacije.R
+import com.example.brzodolokacije.Services.RetrofitHelper
+import okhttp3.ResponseBody
+import retrofit2.Call
+import retrofit2.Response
+import javax.security.auth.callback.Callback
+
+class FragmentRegister : Fragment() {
+ // TODO: Rename and change types of parameters
+ private lateinit var password: EditText
+ private lateinit var email: EditText
+ private lateinit var username: EditText
+ private lateinit var name: EditText
+ private lateinit var register: Button
+ private lateinit var usernameString:String
+ private lateinit var nameString:String
+ private lateinit var passwordString:String
+ private lateinit var emailString:String
+
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ val view:View=inflater.inflate(R.layout.fragment_register, container, false)
+
+ email = view.findViewById<View>(R.id.etFragmentRegisterEmail) as EditText
+ password = view.findViewById<View>(R.id.etFragmentRegisterPassword) as EditText
+ username = view.findViewById<View>(R.id.etFragmentRegisterUser) as EditText
+ name = view.findViewById<View>(R.id.etFragmentRegisterName) as EditText
+ register=view.findViewById<View>(R.id.btnFragmentRegisterRegister) as Button
+
+ //osluskivanje unosa
+
+ register.setOnClickListener{
+ emailString=email.text.toString().trim()
+ usernameString=username.text.toString().trim()
+ nameString=name.text.toString().trim()
+ passwordString=password.text.toString().trim()
+
+ //prazan unos? neispravan email
+ if(emailString.isEmpty())
+ {
+ email.hint="Unesite Email adresu"
+ email.setHintTextColor(Color.RED)
+ }
+ if(passwordString.isEmpty())
+ {
+ password.hint = "Unesite lozinku"
+ password.setHintTextColor(Color.RED)
+ }
+ if(usernameString.isEmpty())
+ {
+ username.hint = "Unesite korisničko ime"
+ username.setHintTextColor(Color.RED)
+ }
+ if(nameString.isEmpty())
+ {
+ name.hint = "Unesite ime i prezime"
+ name.setHintTextColor(Color.RED)
+ }
+ if(!emailString.isEmpty() && !passwordString.isEmpty() && !nameString.isEmpty() && !usernameString.isEmpty()) {
+
+ var registerData=Register(nameString,usernameString,emailString,passwordString)
+
+ val authApi=RetrofitHelper.getInstance().create(IAuthApi::class.java)
+
+ val request=authApi.register(registerData)
+
+ request.enqueue(object : retrofit2.Callback<ResponseBody?> {
+ override fun onResponse(call: Call<ResponseBody?>, response: Response<ResponseBody?>) {
+ if(response.isSuccessful()){
+ Toast.makeText(
+ activity, "Uspesna registracija. Verifikujte email.", Toast.LENGTH_LONG
+ ).show();
+ //TODO(navigate to login)
+ }else{
+ if(response.errorBody()!=null) {
+ Toast.makeText(
+ activity,
+ response.errorBody()!!.string(),
+ Toast.LENGTH_LONG
+ ).show()
+ }
+ }
+
+
+ }
+
+ override fun onFailure(call: Call<ResponseBody?>, t: Throwable) {
+ Toast.makeText(
+ activity, "Greska, pokusajte ponovo.", Toast.LENGTH_LONG
+ ).show();
+ }
+ })
+
+
+
+ //***DODATI broj karaktera lozinke, provera da li je email sa @ i .com
+
+ }
+ }
+
+
+ return view
+ }
+/*
+ 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 fragmentRegister.
+ */
+ // TODO: Rename and change types and number of parameters
+ @JvmStatic
+ fun newInstance(param1: String, param2: String) =
+ fragmentRegister().apply {
+ arguments = Bundle().apply {
+ putString(ARG_PARAM1, param1)
+ putString(ARG_PARAM2, param2)
+ }
+ }
+ }*/
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt
new file mode 100644
index 0000000..561de10
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt
@@ -0,0 +1,60 @@
+package com.example.brzodolokacije.Fragments
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.brzodolokacije.R
+
+// TODO: Rename parameter arguments, choose names that match
+// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+private const val ARG_PARAM1 = "param1"
+private const val ARG_PARAM2 = "param2"
+
+/**
+ * A simple [Fragment] subclass.
+ * Use the [FragmentUserPosts.newInstance] factory method to
+ * create an instance of this fragment.
+ */
+class FragmentUserPosts : Fragment() {
+ // TODO: Rename and change types of parameters
+ private var param1: String? = null
+ private var param2: String? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ arguments?.let {
+ param1 = it.getString(ARG_PARAM1)
+ param2 = it.getString(ARG_PARAM2)
+ }
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_user_posts, container, false)
+ }
+
+ companion object {
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment FragmentUserPosts.
+ */
+ // TODO: Rename and change types and number of parameters
+ @JvmStatic
+ fun newInstance(param1: String, param2: String) =
+ FragmentUserPosts().apply {
+ arguments = Bundle().apply {
+ putString(ARG_PARAM1, param1)
+ putString(ARG_PARAM2, param2)
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt
new file mode 100644
index 0000000..bd430a8
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IAuthApi.kt
@@ -0,0 +1,15 @@
+package com.example.brzodolokacije.Interfaces
+
+import com.example.brzodolokacije.Models.Auth.Login
+import com.example.brzodolokacije.Models.Auth.Register
+import okhttp3.ResponseBody
+import retrofit2.Call
+import retrofit2.http.Body
+import retrofit2.http.POST
+
+interface IAuthApi {
+ @POST("/api/auth/login")
+ fun login(@Body obj:Login): Call<String>
+ @POST("/api/auth/register")
+ fun register(@Body obj:Register):Call<ResponseBody>
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt
new file mode 100644
index 0000000..1208564
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/MainActivity.kt
@@ -0,0 +1,42 @@
+package com.example.brzodolokacije
+
+import android.content.Intent
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
+import com.auth0.android.jwt.JWT
+import com.example.brzodolokacije.Activities.ActivityLoginRegister
+import com.example.brzodolokacije.Activities.NavigationActivity
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+
+
+class MainActivity : AppCompatActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_main)
+ val intent:Intent
+
+ if(checkLoggedIn())
+ intent= Intent(this, NavigationActivity::class.java)
+ else
+ intent= Intent(this, ActivityLoginRegister::class.java)
+
+
+ startActivity(intent)
+ }
+
+ fun checkLoggedIn():Boolean{
+ var jwtString=SharedPreferencesHelper.getValue("jwt",this)
+ if(jwtString==null)
+ return false
+ var jwt:JWT=JWT(jwtString)
+ if(jwt.isExpired(30))
+ return false
+ return true
+
+
+
+
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/Login.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/Login.kt
new file mode 100644
index 0000000..136b8dd
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/Login.kt
@@ -0,0 +1,6 @@
+package com.example.brzodolokacije.Models.Auth
+
+data class Login(
+ var email:String,
+ var password:String
+)
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/Register.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/Register.kt
new file mode 100644
index 0000000..bcb0d2b
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Auth/Register.kt
@@ -0,0 +1,8 @@
+package com.example.brzodolokacije.Models.Auth
+
+data class Register(
+ var name:String,
+ var username:String,
+ var email:String,
+ var password:String
+)
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/java/com/example/brzodolokacije/Models/LocationTypes.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/LocationTypes.kt
new file mode 100644
index 0000000..c599dae
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/LocationTypes.kt
@@ -0,0 +1,4 @@
+package com.example.brzodolokacije.Models
+
+enum class LocationTypes {
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
new file mode 100644
index 0000000..9c0eae1
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
@@ -0,0 +1,12 @@
+package com.example.brzodolokacije.Models
+
+import java.util.*
+
+data class Post (
+ var _id:String,
+ var creationDate: Date,
+ var country:String,//drzava
+ var city:String,
+ var location:String,//naziv grada/naziv planine/naziv jezera/.......
+ var type:LocationTypes //tip lokacije
+ ) \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt
new file mode 100644
index 0000000..52090f9
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/User.kt
@@ -0,0 +1,23 @@
+package com.example.brzodolokacije.Models
+
+import java.util.Date
+
+data class User (
+ var _id:String,
+ var name:String,
+ var username:String,
+ var email:String,
+ var emailToken:String,
+ var verified:Boolean,
+ var password:String,
+ var creationDate:Date,
+
+ //profil
+ var followers:List<User>,
+ var followersNumber:Int,
+ var following:List<User>,
+ var followingNumber:Int,
+ var postIds:List<Int>,
+ var postNumber:Int
+
+) \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt
new file mode 100644
index 0000000..cc7eb56
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/RetrofitHelper.kt
@@ -0,0 +1,20 @@
+package com.example.brzodolokacije.Services
+
+import com.google.gson.GsonBuilder
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+
+
+object RetrofitHelper {
+ val baseUrl="http://10.0.2.2:5279"
+ fun getInstance():Retrofit{
+ val gson = GsonBuilder()
+ .setLenient()
+ .create()
+ return Retrofit.Builder().baseUrl(baseUrl)
+ .addConverterFactory(GsonConverterFactory.create(gson))
+ .build()
+ }
+}
+//Usage
+//Api = RetrofitHelper.getInstance().create(class) \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/SharedPreferencesHelper.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/SharedPreferencesHelper.kt
new file mode 100644
index 0000000..a6da94a
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Services/SharedPreferencesHelper.kt
@@ -0,0 +1,42 @@
+package com.example.brzodolokacije.Services
+
+import android.app.Activity
+import android.content.Context
+import android.content.SharedPreferences
+import android.content.SharedPreferences.Editor
+import androidx.fragment.app.FragmentActivity
+
+object SharedPreferencesHelper {
+ val prefName:String="OdysseyPreferences"
+
+ fun getValue(key:String,act: FragmentActivity):String?{
+ var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE)
+ return pref.getString(key,null)
+ }
+ fun getValue(key:String,act: Activity):String?{
+ var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE)
+ return pref.getString(key,null)
+ }
+ fun addValue(key:String,value:String,act:FragmentActivity):Boolean{
+ var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE)
+ var editor:Editor=pref.edit()
+ editor.putString(key,value)
+ return editor.commit()
+ }
+ fun addValue(key:String,value:String,act:Activity):Boolean{
+ var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE)
+ var editor:Editor=pref.edit()
+ editor.putString(key,value)
+ return editor.commit()
+ }
+ fun removeValue(key:String,act: FragmentActivity):Boolean{
+ var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE)
+ return pref.edit().remove(key).commit()
+ }
+ fun removeValue(key:String,act: Activity):Boolean{
+ var pref:SharedPreferences=act.getSharedPreferences(prefName,Context.MODE_PRIVATE)
+ return pref.edit().remove(key).commit()
+ }
+
+
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:endX="85.84757"
+ android:endY="92.4963"
+ android:startX="42.9492"
+ android:startY="49.59793"
+ android:type="linear">
+ <item
+ android:color="#44000000"
+ android:offset="0.0" />
+ <item
+ android:color="#00000000"
+ android:offset="1.0" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:fillColor="#FFFFFF"
+ android:fillType="nonZero"
+ android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
+ android:strokeWidth="1"
+ android:strokeColor="#00000000" />
+</vector> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/b3.jpg b/Client/BrzoDoLokacije/app/src/main/res/drawable/b3.jpg
new file mode 100644
index 0000000..f04899d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/b3.jpg
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/button_left_radius.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/button_left_radius.xml
new file mode 100644
index 0000000..8ab5223
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/button_left_radius.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#CCFFFFFF"/>
+ <stroke android:width="2dp" android:color="#FF1C789A"/>
+
+ <corners
+ android:topLeftRadius="100dp"
+ android:topRightRadius="0dp"
+ android:bottomLeftRadius="100dp"
+ android:bottomRightRadius="0dp"
+ />
+</shape> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/button_right_radius.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/button_right_radius.xml
new file mode 100644
index 0000000..9b1ac29
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/button_right_radius.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#CCFFFFFF"/>
+ <stroke android:width="2dp" android:color="#FF1C789A"/>
+
+ <corners
+ android:topLeftRadius="0dp"
+ android:topRightRadius="100dp"
+ android:bottomLeftRadius="0dp"
+ android:bottomRightRadius="100dp"
+ />
+</shape> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient.xml
new file mode 100644
index 0000000..0e20af4
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/gradient.xml
@@ -0,0 +1,12 @@
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+
+ <gradient
+ android:type="linear"
+ android:startColor="#260D62A9"
+ android:endColor="#D9063739"
+ android:angle="270"
+ />
+
+</shape>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_launcher_background.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path
+ android:fillColor="#3DDC84"
+ android:pathData="M0,0h108v108h-108z" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M9,0L9,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,0L19,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M29,0L29,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M39,0L39,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M49,0L49,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M59,0L59,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M69,0L69,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M79,0L79,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M89,0L89,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M99,0L99,108"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,9L108,9"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,19L108,19"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,29L108,29"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,39L108,39"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,49L108,49"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,59L108,59"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,69L108,69"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,79L108,79"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,89L108,89"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,99L108,99"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,29L89,29"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,39L89,39"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,49L89,49"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,59L89,59"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,69L89,69"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,79L89,79"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M29,19L29,89"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M39,19L39,89"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M49,19L49,89"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M59,19L59,89"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M69,19L69,89"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M79,19L79,89"
+ android:strokeWidth="0.8"
+ android:strokeColor="#33FFFFFF" />
+</vector>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/login_register_background_bottom_radius.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/login_register_background_bottom_radius.xml
new file mode 100644
index 0000000..ac29f68
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/login_register_background_bottom_radius.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#CCFFFFFF"/>
+
+ <padding android:left="2dp"
+ android:top="2dp"
+ android:right="2dp"
+ android:bottom="2dp"/>
+
+ <corners
+ android:topLeftRadius="0dp"
+ android:topRightRadius="0dp"
+ android:bottomLeftRadius="30dp"
+ android:bottomRightRadius="30dp"
+ />
+</shape> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/login_register_background_top_radius.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/login_register_background_top_radius.xml
new file mode 100644
index 0000000..5d71138
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/login_register_background_top_radius.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#CCFFFFFF"/>
+ <padding android:left="2dp"
+ android:top="2dp"
+ android:right="2dp"
+ android:bottom="2dp"/>
+
+ <corners
+ android:topLeftRadius="30dp"
+ android:topRightRadius="30dp"
+ android:bottomLeftRadius="0dp"
+ android:bottomRightRadius="0dp"
+ />
+</shape> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_cyan_button.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_cyan_button.xml
new file mode 100644
index 0000000..c2c005d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_cyan_button.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="100dp"/>
+ <solid android:color="#FF1C789A"></solid>
+</shape>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_transparent_button.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_transparent_button.xml
new file mode 100644
index 0000000..5b420a0
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_transparent_button.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="100dp"/>
+ <solid android:color="#00FFFFFF"></solid>
+</shape>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_white_button_login.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_white_button_login.xml
new file mode 100644
index 0000000..1a4c57d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/rounded_white_button_login.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#FFFFFF"/>
+ <corners android:radius="100dp"/>
+ <stroke android:width="2dp" android:color="#FF1C789A"/>
+
+</shape> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/switch_login_register_on.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/switch_login_register_on.xml
new file mode 100644
index 0000000..6bf62c6
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/switch_login_register_on.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners android:radius="100dp"/>
+ <solid android:color="#FFFFFF"></solid>
+ <stroke android:width="2dp" android:color="#FF1C789A"/>
+</shape>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password.xml
new file mode 100644
index 0000000..5841b49
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password.xml
@@ -0,0 +1,75 @@
+<?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.ActivityForgottenPassword">
+
+ <LinearLayout
+ android:layout_width="399dp"
+ android:layout_height="556dp"
+ android:orientation="vertical"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.154">
+
+ <ImageView
+ android:id="@+id/imageView"
+ android:layout_width="match_parent"
+ android:layout_height="300dp"
+ app:srcCompat="@mipmap/ic_launcher_foreground" />
+
+ <TextView
+ android:id="@+id/tvActivityForgottenPasswordText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Zaboravljena lozinka?"
+ android:textSize="25dp" />
+
+
+ <TextView
+ android:id="@+id/textView2"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Unesi Email adresu na koju ćemo ti poslati kod za resetovanje." />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="30dp" />
+
+ <TextView
+ android:id="@+id/textView4"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Email" />
+
+ <EditText
+ android:id="@+id/editTextTextPersonName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ems="10"
+ android:hint="Unesi Email"
+ android:inputType="textPersonName" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="30dp" />
+
+ <Button
+ android:id="@+id/forgottenPasswordSendCode"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/rounded_cyan_button"
+ android:gravity="center"
+ android:text="Pošalji Email za promenu lozinke" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="30dp" />
+
+ </LinearLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password_verify.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password_verify.xml
new file mode 100644
index 0000000..c652469
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password_verify.xml
@@ -0,0 +1,106 @@
+<?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.ActivityForgottenPassword">
+
+ <LinearLayout
+ android:layout_width="398dp"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.154">
+
+ <ImageView
+ android:id="@+id/imageView"
+ android:layout_width="match_parent"
+ android:layout_height="300dp"
+ app:srcCompat="@mipmap/ic_launcher_foreground" />
+
+ <TextView
+ android:id="@+id/tvActivityForgottenPasswordText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Verifikuj novu lozinku"
+ android:textSize="25dp" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="20dp" />
+
+ <TextView
+ android:id="@+id/textView2"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Unesi kod koji je poslat na email." />
+
+
+ <EditText
+ android:id="@+id/editTextTextPersonName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ems="10"
+ android:hint="Unesi kod"
+ android:inputType="textPersonName" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="20dp" />
+
+ <TextView
+ android:id="@+id/textViewoldpass"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="Nova lozinka" />
+
+ <EditText
+ android:hint="*********"
+ android:id="@+id/editTextoldPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ems="10"
+ android:inputType="textPassword" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="20dp" />
+
+ <TextView
+ android:id="@+id/textViewnewpass"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+
+ android:text="Potvrdi novu lozinku" />
+
+ <EditText
+ android:hint="*********"
+ android:id="@+id/editTextTextPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ems="10"
+ android:inputType="textPassword" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="20dp" />
+
+ <Button
+ android:id="@+id/btnChangePassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/rounded_cyan_button"
+ android:gravity="center"
+ android:text="Promeni lozinku" />
+
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="30dp" />
+
+ </LinearLayout>
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_login_register.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_login_register.xml
new file mode 100644
index 0000000..0f82285
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_login_register.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:elevation="0dp"
+ android:background="@drawable/b1"
+ tools:context=".Activities.ActivityLoginRegister">
+
+ <ImageView
+ android:id="@+id/imageView2"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="1.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="1.0"
+ app:srcCompat="@drawable/gradient" />
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:background="@drawable/login_register_background_top_radius"
+
+ android:id="@+id/linearLayout"
+ android:layout_width="0dp"
+ android:layout_height="65dp"
+ android:layout_marginStart="50dp"
+ android:layout_marginEnd="50dp"
+ android:gravity="center|center_horizontal"
+ android:orientation="horizontal"
+ app:layout_constraintBottom_toTopOf="@+id/flFragmentActivityLRFragmentsView"
+ app:layout_constraintEnd_toEndOf="@+id/imageView2"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="1.0">
+
+ <ImageView
+ android:id="@+id/imageView5"
+ android:layout_width="280dp"
+ android:layout_height="40dp"
+ android:background="@drawable/rounded_white_button_login"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="1.0"></ImageView>
+
+ <android.widget.Button
+ android:id="@+id/btnFragmentActivityLRLogin"
+ android:layout_width="139dp"
+ android:layout_height="40dp"
+ android:background="@drawable/rounded_cyan_button"
+ android:elevation="25dp"
+ android:padding="0dp"
+
+ android:text="Prijavi se"
+ android:textColor="@color/white"
+ app:layout_constraintBottom_toBottomOf="@+id/imageView5"
+ app:layout_constraintEnd_toStartOf="@+id/btnFragmentActivityLRRegister"
+ app:layout_constraintHorizontal_bias="1.0"
+ app:layout_constraintStart_toStartOf="@+id/imageView5"
+ app:layout_constraintTop_toTopOf="@+id/imageView5" />
+
+ <android.widget.Button
+ android:id="@+id/btnFragmentActivityLRRegister"
+ android:layout_width="140dp"
+ android:layout_height="40dp"
+ android:textColor="#FF1C789A"
+ android:background="@drawable/rounded_transparent_button"
+ android:elevation="25dp"
+ android:padding="0dp"
+ android:text="Registruj se"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="@+id/imageView5"
+ app:layout_constraintTop_toTopOf="@+id/imageView5"
+ app:layout_constraintVertical_bias="0.0" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+ <FrameLayout
+ android:id="@+id/flFragmentActivityLRFragmentsView"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="50dp"
+ android:layout_marginEnd="50dp"
+ android:background="@drawable/login_register_background_bottom_radius"
+ android:elevation="20dp"
+ android:foregroundGravity="center_vertical|center"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="@+id/imageView2"
+ app:layout_constraintVertical_bias="0.411">
+
+
+ </FrameLayout>
+
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_main.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..312e35d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,13 @@
+<?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=".MainActivity">
+<TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:text="MAIN"
+ />
+</androidx.constraintlayout.widget.ConstraintLayout> \ 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
new file mode 100644
index 0000000..2cf3c8c
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_post.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".Fragments.FragmentAddPost">
+
+ <!-- TODO: Update blank fragment layout -->
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:text="Post Add" />
+
+ <Button
+ android:id="@+id/btnFragmentAddLogOut"
+ android:layout_width="200dp"
+ android:layout_height="40dp"
+ android:layout_marginTop="40dp"
+ android:background="@drawable/rounded_cyan_button"
+ android:backgroundTint="#1C789A"
+ android:text="Log Out" />
+
+</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
new file mode 100644
index 0000000..3287683
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_browse.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".Fragments.FragmentBrowse">
+
+ <!-- TODO: Update blank fragment layout -->
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ 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
new file mode 100644
index 0000000..f548fe3
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home.xml
@@ -0,0 +1,18 @@
+<?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">
+ <!--
+ RecyclerView holds the items of the list
+ -->
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/rvMain"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"/>
+
+</FrameLayout>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_login.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_login.xml
new file mode 100644
index 0000000..c45051b
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_login.xml
@@ -0,0 +1,89 @@
+<?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"
+ android:layout_gravity="center_horizontal"
+ tools:context=".Fragments.FragmentLogin">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+
+ android:padding="20dp">
+
+ <TextView
+ android:id="@+id/tvFragimentLoginEmail"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:text="Email"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <EditText
+ android:id="@+id/etFragmentLoginEmail"
+ android:layout_width="match_parent"
+ android:layout_height="50dp"
+ android:layout_marginTop="0dp"
+ android:ems="10"
+ android:hint="primer@gmail.com"
+ android:inputType="textEmailAddress"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/tvFragimentLoginEmail" />
+
+ <TextView
+ android:id="@+id/tvFragmentLoginPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="24dp"
+ android:text="Lozinka"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/etFragmentLoginEmail" />
+
+ <EditText
+ android:id="@+id/etFragmentLoginPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="0dp"
+ android:ems="10"
+ android:hint="*********"
+ android:inputType="textPassword"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="1.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/tvFragmentLoginPassword" />
+
+ <Button
+ android:id="@+id/btnFragmentLoginLogin"
+ android:layout_width="200dp"
+ android:layout_height="40dp"
+ android:layout_marginTop="40dp"
+ android:background="@drawable/rounded_cyan_button"
+ android:backgroundTint="#1C789A"
+ android:text="Prijavi se"
+ app:layout_constraintDimensionRatio="w,1:1"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/tvFragmentLoginForgottenPassword" />
+
+ <TextView
+ android:id="@+id/tvFragmentLoginForgottenPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:clickable="true"
+ android:text="Zaboravljena lozinka?"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.498"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/etFragmentLoginPassword" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+</FrameLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_profile_info.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_profile_info.xml
new file mode 100644
index 0000000..d20c569
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_profile_info.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".Fragments.FragmentMyProfileInfo">
+
+ <!-- TODO: Update blank fragment layout -->
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:text="Moji podaci" />
+
+</FrameLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_recensions.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_recensions.xml
new file mode 100644
index 0000000..d5452b9
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_my_recensions.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".Fragments.FragmentMyRecensions">
+
+ <!-- TODO: Update blank fragment layout -->
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:text="Moje recenzije" />
+
+</FrameLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml
new file mode 100644
index 0000000..e7cccff
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml
@@ -0,0 +1,226 @@
+<?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.FragmentProfile">
+
+
+
+ <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="290dp"
+ 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" />
+
+ <ImageView
+
+ android:id="@+id/imageView4"
+ android:layout_width="411dp"
+ android:layout_height="287dp"
+ app:layout_constraintBottom_toBottomOf="@+id/imageView3"
+ app:layout_constraintEnd_toEndOf="@id/imageView3"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="@+id/imageView3"
+ app:layout_constraintTop_toTopOf="@+id/imageView3"
+ app:layout_constraintVertical_bias="0.0" />
+
+ <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="156dp"
+ android:layout_marginEnd="20dp"
+ android:adjustViewBounds="true"
+ android:background="#E8FFFFFF"
+ android:elevation="20dp"
+ android:scaleType="fitEnd"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.494"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="@+id/imageView3"
+ app:shapeAppearanceOverlay="@style/imageViewRoundedEdge" />
+
+
+ <com.google.android.material.imageview.ShapeableImageView
+ android:id="@+id/tvFragmentProfileProfilePicture"
+ android:layout_width="150dp"
+ android:layout_height="150dp"
+ android:layout_gravity="center"
+ android:layout_margin="5dp"
+ android:layout_marginTop="4dp"
+ android:layout_marginEnd="108dp"
+ android:adjustViewBounds="true"
+ android:elevation="21dp"
+ android:scaleType="fitCenter"
+ android:src="@drawable/ic_launcher_background"
+ app:layout_constraintBottom_toTopOf="@+id/tableLayout"
+ app:layout_constraintEnd_toEndOf="@+id/imageView3"
+ app:layout_constraintHorizontal_bias="0.483"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="@+id/imageView3"
+ app:layout_constraintVertical_bias="1.0"
+ app:shapeAppearanceOverlay="@style/imageViewCircle" />
+
+ <TableLayout
+ android:id="@+id/tableLayout"
+ android:layout_width="323dp"
+ android:layout_height="120dp"
+ android:elevation="20dp"
+ android:gravity="center"
+ android:stretchColumns="1"
+ app:layout_constraintBottom_toBottomOf="@+id/tvFragmentProfileInfoContainer"
+ app:layout_constraintEnd_toEndOf="@+id/tvFragmentProfileInfoContainer"
+ app:layout_constraintHorizontal_bias="0.488"
+ app:layout_constraintStart_toStartOf="@+id/tvFragmentProfileInfoContainer">
+
+ <TableRow
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+
+ android:gravity="center">
+
+ <TextView
+ android:id="@+id/tvFragmentProfileName"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:text="Petar Petrović" />
+ </TableRow>
+ <TableRow
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+
+ android:gravity="center">
+
+ <TextView
+ android:id="@+id/tvFragmentProfileUserName"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="#PetarP" />
+ </TableRow>
+ <Space android:layout_height="20dp"></Space>
+
+ <TableRow
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center">
+
+ <TextView
+ android:id="@+id/tvFragmentProfilePosts"
+ android:gravity="center"
+ android:text="OBJAVE" />
+
+ <TextView
+ android:id="@+id/tvFragmentProfileFollowers"
+ android:gravity="center"
+ android:text="PRATIOCI" />
+
+ <TextView
+ android:id="@+id/tvFragmentProfileFollow"
+ android:gravity="center"
+ android:text="PRAĆENJA" />
+ </TableRow>
+
+ <TableRow
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center">
+
+ <TextView
+ android:id="@+id/tvFragmentProfilePostsNo"
+ android:gravity="center"
+ android:text="156" />
+
+ <TextView
+ android:id="@+id/tvFragmentProfileFollowersNo"
+ android:gravity="center"
+ android:text="50" />
+
+ <TextView
+ android:id="@+id/tvFragmentProfileFollowNo"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="40" />
+ </TableRow>
+ </TableLayout>
+
+ <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/btnFragmentProfileShowMyPosts" />
+
+ <Button
+ android:id="@+id/btnFragmentProfileShowMyPosts"
+ 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/btnFragmentProfileShowMyData"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:layout_marginEnd="20dp"
+ android:backgroundTint="#FFFFFF"
+ android:stateListAnimator="@null"
+ android:text="Podaci"
+
+ android:textColor="@color/cardview_dark_background"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="1.0"
+ app:layout_constraintStart_toEndOf="@+id/btnFragmentProfileShowMyRecensions"
+ app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" />
+
+ <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>
+
+ <Button
+ android:id="@+id/btnFragmentProfileShowMyRecensions"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="36dp"
+ android:layout_marginTop="4dp"
+ android:backgroundTint="#FFFFFF"
+ android:stateListAnimator="@null"
+ android:textColor="@color/cardview_dark_background"
+ android:text="Recenzije"
+ app:layout_constraintStart_toEndOf="@+id/btnFragmentProfileShowMyPosts"
+ app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+</FrameLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_register.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_register.xml
new file mode 100644
index 0000000..c9d50a0
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_register.xml
@@ -0,0 +1,123 @@
+<?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.FragmentRegister"
+ android:layout_gravity="center_horizontal"
+
+>
+
+
+ <!-- TODO: Update blank fragment layout -->
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="432dp"
+ android:layout_gravity="center_horizontal"
+ android:padding="20dp">
+
+ <EditText
+ android:id="@+id/etFragmentRegisterPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ems="10"
+ android:hint="*********"
+ android:inputType="textPassword"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/tvFragmentRegisterPassword" />
+
+ <EditText
+ android:id="@+id/etFragmentRegisterEmail"
+ android:layout_width="match_parent"
+ android:layout_height="50dp"
+ android:ems="10"
+ android:hint="primer@gmail.com"
+ android:inputType="textEmailAddress"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/tvFragmentRegisterEmail" />
+
+ <TextView
+ android:id="@+id/tvFragmentRegisterPassword"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:text="Lozinka
+"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/etFragmentRegisterEmail" />
+
+ <TextView
+ android:id="@+id/tvFragmentRegisterEmail"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:backgroundTint="#00B8D4"
+ android:text="Email"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/etFragmentRegisterName" />
+
+ <EditText
+ android:id="@+id/etFragmentRegisterUser"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ems="10"
+ android:hint="PetarP"
+ android:inputType="textPersonName"
+ app:layout_constraintTop_toBottomOf="@+id/tvFragmentRegisterUser"
+ tools:layout_editor_absoluteX="-16dp" />
+
+ <EditText
+ android:id="@+id/etFragmentRegisterName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ems="10"
+ android:hint="Petar Petrovic"
+ android:inputType="textPersonName"
+
+ app:layout_constraintTop_toBottomOf="@+id/tvFragmentRegisterName"
+ tools:layout_editor_absoluteX="0dp" />
+
+ <TextView
+ android:id="@+id/tvFragmentRegisterName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:text="Ime i prezime"
+ app:layout_constraintTop_toBottomOf="@+id/etFragmentRegisterUser"
+ tools:layout_editor_absoluteX="0dp" />
+
+ <TextView
+ android:id="@+id/tvFragmentRegisterUser"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="4dp"
+ android:text="Korisničko ime"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:layout_editor_absoluteX="20dp" />
+
+ <Button
+ android:id="@+id/btnFragmentRegisterRegister"
+ android:layout_width="200dp"
+ android:layout_height="45dp"
+ android:layout_marginTop="48dp"
+ android:background="@drawable/rounded_cyan_button"
+ android:text="Registruj se"
+ android:textSize="16dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/etFragmentRegisterPassword" />
+
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+ />
+</FrameLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml
new file mode 100644
index 0000000..185719b
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".Fragments.FragmentUserPosts">
+
+ <!-- TODO: Update blank fragment layout -->
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:text="@string/hello_blank_fragment" />
+
+</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..4ce1a94
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/list_item.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ single item component
+-->
+<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
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Client/BrzoDoLokacije/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background" />
+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Client/BrzoDoLokacije/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background" />
+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-hdpi/ic_launcher.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-mdpi/ic_launcher.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/Client/BrzoDoLokacije/app/src/main/res/values-night/themes.xml b/Client/BrzoDoLokacije/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..b963a50
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,16 @@
+<resources xmlns:tools="http://schemas.android.com/tools">
+ <!-- Base application theme.
+ <style name="Theme.BrzoDoLokacije" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
+
+ <item name="colorPrimary">@color/white</item>
+ <item name="colorPrimaryVariant">@color/purple_700</item>
+ <item name="colorOnPrimary">#071935</item>
+
+ <item name="colorSecondary">@color/teal_200</item>
+ <item name="colorSecondaryVariant">@color/teal_200</item>
+ <item name="colorOnSecondary">#071935</item>
+
+ <item name="android:statusBarColor">#143257</item>
+
+ </style>-->
+</resources> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml b/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..588b9cf
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/values/colors.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="purple_200">#FFBB86FC</color>
+ <color name="purple_500">#1C789A</color>
+ <color name="purple_700">#1C789A</color>
+ <color name="teal_200">#FF03DAC5</color>
+ <color name="teal_700">#FF018786</color>
+ <color name="black">#FF000000</color>
+ <color name="white">#FFFFFFFF</color>
+
+</resources> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/values/strings.xml b/Client/BrzoDoLokacije/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..d7b376c
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/values/strings.xml
@@ -0,0 +1,6 @@
+<resources>
+ <string name="app_name">Brzo Do Lokacije</string>
+ <!-- TODO: Remove or change this placeholder text -->
+ <string name="hello_blank_fragment">Hello blank fragment</string>
+ <string name="dim">16dp</string>
+</resources> \ 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
new file mode 100644
index 0000000..2dee0ab
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <style name="imageViewCircle" parent="">
+ <item name="cornerFamily">rounded</item>
+ <item name="cornerSize">70dp</item>
+ <item name="color">@color/white</item>
+</style>
+ <style name="imageViewRoundedEdge" parent="">
+ <item name="cornerFamily">rounded</item>
+ <item name="cornerSize">15dp</item>
+ <item name="color">@color/white</item>
+ </style>
+</resources> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/values/themes.xml b/Client/BrzoDoLokacije/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..6193009
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/values/themes.xml
@@ -0,0 +1,15 @@
+<resources xmlns:tools="http://schemas.android.com/tools">
+ <style name="Theme.BrzoDoLokacije" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
+
+ <item name="colorPrimary">@color/purple_500</item>
+ <item name="colorPrimaryVariant">@color/purple_700</item>
+ <item name="colorOnPrimary">@color/white</item>
+
+ <item name="colorSecondary">@color/teal_200</item>
+ <item name="colorSecondaryVariant">@color/teal_700</item>
+ <item name="colorOnSecondary">@color/black</item>
+
+ <item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
+
+ </style>
+</resources> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/xml/backup_rules.xml b/Client/BrzoDoLokacije/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 0000000..fa0f996
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ Sample backup rules file; uncomment and customize as necessary.
+ See https://developer.android.com/guide/topics/data/autobackup
+ for details.
+ Note: This file is ignored for devices older that API 31
+ See https://developer.android.com/about/versions/12/backup-restore
+-->
+<full-backup-content>
+ <!--
+ <include domain="sharedpref" path="."/>
+ <exclude domain="sharedpref" path="device.xml"/>
+-->
+</full-backup-content> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/xml/data_extraction_rules.xml b/Client/BrzoDoLokacije/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 0000000..9ee9997
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ Sample data extraction rules file; uncomment and customize as necessary.
+ See https://developer.android.com/about/versions/12/backup-restore#xml-changes
+ for details.
+-->
+<data-extraction-rules>
+ <cloud-backup>
+ <!-- TODO: Use <include> and <exclude> to control what is backed up.
+ <include .../>
+ <exclude .../>
+ -->
+ </cloud-backup>
+ <!--
+ <device-transfer>
+ <include .../>
+ <exclude .../>
+ </device-transfer>
+ -->
+</data-extraction-rules> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/test/java/com/example/brzodolokacije/ExampleUnitTest.kt b/Client/BrzoDoLokacije/app/src/test/java/com/example/brzodolokacije/ExampleUnitTest.kt
new file mode 100644
index 0000000..3bc92cd
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/test/java/com/example/brzodolokacije/ExampleUnitTest.kt
@@ -0,0 +1,17 @@
+package com.example.brzodolokacije
+
+import org.junit.Test
+
+import org.junit.Assert.*
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+class ExampleUnitTest {
+ @Test
+ fun addition_isCorrect() {
+ assertEquals(4, 2 + 2)
+ }
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/build.gradle b/Client/BrzoDoLokacije/build.gradle
new file mode 100644
index 0000000..c518bc1
--- /dev/null
+++ b/Client/BrzoDoLokacije/build.gradle
@@ -0,0 +1,6 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ id 'com.android.application' version '7.3.0' apply false
+ id 'com.android.library' version '7.3.0' apply false
+ id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/gradle.properties b/Client/BrzoDoLokacije/gradle.properties
new file mode 100644
index 0000000..3c5031e
--- /dev/null
+++ b/Client/BrzoDoLokacije/gradle.properties
@@ -0,0 +1,23 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Kotlin code style for this project: "official" or "obsolete":
+kotlin.code.style=official
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=true \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/gradle/wrapper/gradle-wrapper.jar b/Client/BrzoDoLokacije/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
--- /dev/null
+++ b/Client/BrzoDoLokacije/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/Client/BrzoDoLokacije/gradle/wrapper/gradle-wrapper.properties b/Client/BrzoDoLokacije/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..2a5837b
--- /dev/null
+++ b/Client/BrzoDoLokacije/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Oct 26 22:36:41 CEST 2022
+distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/Client/BrzoDoLokacije/gradlew b/Client/BrzoDoLokacije/gradlew
new file mode 100644
index 0000000..4f906e0
--- /dev/null
+++ b/Client/BrzoDoLokacije/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/Client/BrzoDoLokacije/gradlew.bat b/Client/BrzoDoLokacije/gradlew.bat
new file mode 100644
index 0000000..107acd3
--- /dev/null
+++ b/Client/BrzoDoLokacije/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Client/BrzoDoLokacije/settings.gradle b/Client/BrzoDoLokacije/settings.gradle
new file mode 100644
index 0000000..dc8bcc0
--- /dev/null
+++ b/Client/BrzoDoLokacije/settings.gradle
@@ -0,0 +1,16 @@
+pluginManagement {
+ repositories {
+ gradlePluginPortal()
+ google()
+ mavenCentral()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+rootProject.name = "BrzoDoLokacije"
+include ':app'