diff options
Diffstat (limited to 'Client')
10 files changed, 364 insertions, 100 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index 93463e8..5ec6ac0 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -16,14 +16,19 @@ android:usesCleartextTraffic="true" tools:targetApi="31"> <activity - android:name=".NavigationActivity" - android:exported="false"> - <meta-data + + android:name=".NavigationActivity"> + </activity> + <activity android:name=".ActivityForgottenPassword"> + + <!--<meta-data android:name="android.app.lib_name" - android:value="" /> + android:value="" />--> </activity> <activity android:name=".Activities.ActivityLoginRegister" /> + <activity android:name=".Activities.NavigationActivity"/> + <activity android:name=".MainActivity" android:exported="true"> diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt new file mode 100644 index 0000000..a77ef97 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityForgottenPassword.kt @@ -0,0 +1,12 @@ +package com.example.brzodolokacije.Activities + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import com.example.brzodolokacije.R + +class ActivityForgottenPassword : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_forgotten_password) + } +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt index 478a08b..03df35d 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentLogin.kt @@ -11,8 +11,13 @@ 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 @@ -56,13 +61,27 @@ class FragmentLogin : Fragment() { { 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()) { +*/ + if(!emailString.isEmpty() && !passwordString.isEmpty()&& checkPassword(passwordString)==true && checkEmail(emailString)==true) { var loginData= Login(emailString,passwordString) val authApi= RetrofitHelper.getInstance().create(IAuthApi::class.java) @@ -97,30 +116,34 @@ class FragmentLogin : Fragment() { } } + // zaboravljena lozinka + forgottenPassword.setOnClickListener{ + val intent = Intent (getActivity(), ActivityForgottenPassword::class.java) + getActivity()?.startActivity(intent) + } + + 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 fragmentLogin. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - fragmentLogin().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } + 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/res/layout/activity_forgotten_password.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password.xml new file mode 100644 index 0000000..8688a6f --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_forgotten_password.xml @@ -0,0 +1,76 @@ +<?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" /> + + <Space + android:layout_width="match_parent" + android:layout_height="30dp" /> + + <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 link 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/button" + android:layout_width="match_parent" + android:layout_height="wrap_content" + 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/fragment_login.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_login.xml index 6942362..9a9702a 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_login.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_login.xml @@ -10,31 +10,29 @@ android:layout_width="400dp" android:layout_height="352dp" 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="28dp" + android:layout_marginTop="4dp" 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_toTopOf="parent" - android:text="Email" /> + app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/etFragmentLoginEmail" android:layout_width="match_parent" android:layout_height="50dp" - android:layout_marginTop="8dp" + android:layout_marginTop="0dp" 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/tvFragimentLoginEmail" /> @@ -54,12 +52,12 @@ android:id="@+id/etFragmentLoginPassword" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="8dp" + android:layout_marginTop="0dp" android:ems="10" android:hint="*********" android:inputType="textPassword" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvFragmentLoginPassword" /> diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml index 5fb3efe..bbca8cb 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile.xml @@ -1,14 +1,185 @@ <?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"> - <!-- TODO: Update blank fragment layout --> - <TextView + + + <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" - android:layout_height="match_parent" - android:text="Profile" /> + 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" /> + + <TextView + android:id="@+id/tvFragmentProfilePictures" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="44dp" + android:text="Slike" + android:textSize="20dp" + app:layout_constraintEnd_toStartOf="@+id/btnFragmentProfileAddPicture" + app:layout_constraintHorizontal_bias="0.252" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + + <Button + android:id="@+id/btnFragmentProfileAddPicture" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="32dp" + android:layout_marginEnd="20dp" + android:background="#00FFFFFF" + android:text="Dodaj Novu Sliku" + android:textColor="@color/cardview_dark_background" + + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tvFragmentProfileInfoContainer" /> + + <Button + android:id="@+id/button4" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="Pogledaj sve slike" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + + <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> + + <Space android:layout_height="35dp"></Space> + + <TableRow + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center"> + + <TextView + android:id="@+id/tvFragmentProfileContributions" + 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/tvFragmentProfileContributionsNo" + 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> + </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 index 0c59f09..3280aed 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_register.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_register.xml @@ -6,10 +6,12 @@ android:layout_height="match_parent" tools:context=".Fragments.FragmentRegister"> + <!-- TODO: Update blank fragment layout --> <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="400dp" - android:layout_height="521dp" + android:padding="20dp" + android:layout_width="match_parent" + android:layout_height="match_parent" android:layout_gravity="center_horizontal"> <EditText @@ -54,19 +56,18 @@ 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" - android:text="Email" /> + 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="korisnik123 -" + android:hint="PetarP" android:inputType="textPersonName" app:layout_constraintTop_toBottomOf="@+id/tvFragmentRegisterUser" tools:layout_editor_absoluteX="-16dp" /> @@ -95,10 +96,10 @@ android:id="@+id/tvFragmentRegisterUser" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="88dp" + android:layout_marginTop="4dp" android:text="Korisničko ime" app:layout_constraintTop_toTopOf="parent" - tools:layout_editor_absoluteX="0dp" /> + tools:layout_editor_absoluteX="20dp" /> <Button android:id="@+id/btnFragmentRegisterRegister" @@ -112,40 +113,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/etFragmentRegisterPassword" /> - <TextView - android:id="@+id/textView4" - android:layout_width="200dp" - android:layout_height="45dp" - android:layout_marginStart="176dp" - android:background="@drawable/rounded_cyan_button" - android:gravity="center" - android:text="REGISTRUJ SE" - android:textColor="#ffffff" - android:textSize="16dp" - android:translationZ="50dp" - app:layout_constraintBottom_toTopOf="@+id/tvFragmentRegisterUser" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.058" - app:layout_constraintStart_toStartOf="@+id/button2" - app:layout_constraintTop_toTopOf="parent" /> - - <Button - android:id="@+id/button2" - android:layout_width="230dp" - android:layout_height="45dp" - android:layout_marginStart="16dp" - android:background="@drawable/switch_login_register_on" - android:backgroundTint="#D1BCBC" - android:foreground="@drawable/rounded_white_button_login" - - android:text="Registruj se" - android:textColor="#00B8D4" - android:translationZ="1dp" - app:layout_constraintBottom_toTopOf="@+id/tvFragmentRegisterUser" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.511" /> - </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/Client/BrzoDoLokacije/app/src/main/res/values-night/themes.xml b/Client/BrzoDoLokacije/app/src/main/res/values-night/themes.xml index dabe4b8..b963a50 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/values-night/themes.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/values-night/themes.xml @@ -1,16 +1,16 @@ <resources xmlns:tools="http://schemas.android.com/tools"> - <!-- Base application theme. --> + <!-- Base application theme. <style name="Theme.BrzoDoLokacije" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> - <!-- Primary brand color. --> + <item name="colorPrimary">@color/white</item> <item name="colorPrimaryVariant">@color/purple_700</item> <item name="colorOnPrimary">#071935</item> - <!-- Secondary brand color. --> + <item name="colorSecondary">@color/teal_200</item> <item name="colorSecondaryVariant">@color/teal_200</item> <item name="colorOnSecondary">#071935</item> - <!-- Status bar color. --> + <item name="android:statusBarColor">#143257</item> - <!-- Customize your theme here. --> - </style> + + </style>--> </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 index 323d3da..6193009 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/values/themes.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/values/themes.xml @@ -1,16 +1,15 @@ <resources xmlns:tools="http://schemas.android.com/tools"> - <!-- Base application theme. --> <style name="Theme.BrzoDoLokacije" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> - <!-- Primary brand color. --> - <item name="colorPrimary">@color/purple_500</item> - <item name="colorPrimaryVariant">@color/purple_700</item> - <item name="colorOnPrimary">@color/white</item> - <!-- Secondary brand color. --> - <item name="colorSecondary">@color/teal_200</item> - <item name="colorSecondaryVariant">@color/teal_700</item> - <item name="colorOnSecondary">@color/black</item> - <!-- Status bar color. --> - <item name="android:statusBarColor">?attr/colorPrimaryVariant</item> - <!-- Customize your theme here. --> - </style> + + <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 |