diff options
9 files changed, 227 insertions, 38 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml index 00ee960..2af585f 100644 --- a/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml +++ b/Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml @@ -4,9 +4,11 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> + <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" @@ -19,6 +21,13 @@ android:usesCleartextTraffic="true" tools:targetApi="31"> <activity + android:name=".Activities.ActivityCapturePost" + android:exported="false"> + <meta-data + android:name="android.app.lib_name" + android:value="" /> + </activity> + <activity android:name=".Activities.ActivityAddPost" android:exported="false"> <meta-data diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt index 0ada26a..c81e7fe 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt @@ -1,14 +1,19 @@ package com.example.brzodolokacije.Activities import android.Manifest +import android.content.Context import android.content.Intent import android.content.pm.PackageManager +import android.database.Cursor +import android.graphics.BitmapFactory import android.net.Uri import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.provider.MediaStore +import android.provider.MediaStore.Audio.Media import android.view.View -import android.widget.Button -import android.widget.ImageView +import android.view.ViewGroup +import android.widget.* import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import com.example.brzodolokacije.Models.PostImage @@ -19,18 +24,33 @@ import java.net.URI class ActivityAddPost : AppCompatActivity() { private lateinit var uploadFromGallery: Button private lateinit var takePhoto: Button - private lateinit var image:ImageView - private lateinit var uploadedImages:ArrayList<Uri> - - var paths = mutableListOf<String>() - + private lateinit var showNextImage:Button + private lateinit var showPreviousImage:Button + private lateinit var switcher: ImageSwitcher + private var uploadedImages:ArrayList<Uri?>?=null + //private var paths :ArrayList<String?>?=null + private var place=0; override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_add_post) + Toast.makeText( + applicationContext, "Add new ", Toast.LENGTH_LONG + ).show(); + uploadedImages= ArrayList() + + //paths= ArrayList() uploadFromGallery=findViewById<View>(R.id.btnActivityAddPostUploadImages) as Button takePhoto=findViewById<View>(R.id.btnActivityAddPosTakeImage) as Button - image=findViewById<View>(R.id.image) as ImageView + showNextImage=findViewById<View>(R.id.nextImage) as Button + showPreviousImage=findViewById<View>(R.id.previousImage) as Button + switcher=findViewById<View>(R.id.switcher) as ImageSwitcher + + switcher?.setFactory{ + val imgView = ImageView(applicationContext) + imgView.scaleType = ImageView.ScaleType.CENTER_CROP + imgView.setPadding(8, 8, 8, 8) + imgView} //dodavanje iz galerije uploadFromGallery.setOnClickListener{ @@ -45,9 +65,9 @@ class ActivityAddPost : AppCompatActivity() { intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) intent.action = Intent.ACTION_GET_CONTENT intent.type="image/*" - startActivityForResult(Intent.createChooser(intent,"Izaberi fotografije"),100) + startActivityForResult(Intent.createChooser(intent,"Izaberi fotografije"),0) } - +/* //fotografisanje takePhoto.setOnClickListener { //provera da li je odobrena upotreba kamere @@ -56,12 +76,38 @@ class ActivityAddPost : AppCompatActivity() { } } +*/ + //prikaz ucitanih + // + showPreviousImage.setOnClickListener{ + if(place>0){ + place=place-1 + switcher.setImageURI(uploadedImages!![place]) + + } + else{ + showPreviousImage.isEnabled=false + } + } + + + showNextImage.setOnClickListener{ + if(place<uploadedImages!!.size-1){ + place=place+1 + switcher.setImageURI(uploadedImages!![place]) + + } + else{ + showNextImage.isEnabled=false + } + } + } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) //nakon otvaranja - if(requestCode==100 && resultCode== RESULT_OK){ + if(requestCode==0 && resultCode== RESULT_OK){ //samo jedna slika //image.setImageURI(data?.data) @@ -73,11 +119,63 @@ class ActivityAddPost : AppCompatActivity() { var _uri: Uri = data!!.clipData!!.getItemAt(i).uri uploadedImages!!.add(_uri) } + + // prikaz ucitanih + switcher.setImageURI(uploadedImages!![0]) + place=0 //jedna slika } else if (data?.getData() != null) { - uploadedImages.add(data.data!!) + uploadedImages!!.add(data.data!!) + + //prikaz jedne ucitane + switcher.setImageURI(data.data!!) } } + } + + + + /* + private fun showImportedImages(){ + var cols= listOf<String>(MediaStore.Images.Thumbnails.DATA).toTypedArray() + rs= contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,cols,null,null,null)!! + imagesGrid.adapter=ImageAdapter(applicationContext) + } + + inner class ImageAdapter:BaseAdapter{ + lateinit var context: Context + + constructor(contect: Context){ + this.context=context + } + + override fun getCount(): Int { + return rs.count + } + + override fun getItem(p0: Int): Any { + return p0 + } + + override fun getItemId(p0: Int): Long { + return p0 as Long } + override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View { + //prikaz slike u GridView-u + + //generisanje jednog imageView-a + var imageView=ImageView(context) + rs.moveToPosition(p0) + var path=rs.getString(0) + var bitmap=BitmapFactory.decodeFile(path) + + imageView.setImageBitmap(bitmap) + imageView.layoutParams=AbsListView.LayoutParams(300,300) + return imageView + + } + + }*/ + }
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt new file mode 100644 index 0000000..8d639a8 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt @@ -0,0 +1,11 @@ +package com.example.brzodolokacije.Activities + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle + +class ActivityCapturePost : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_capture_post) + } +}
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt index b1b257b..8eaa469 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt @@ -1,12 +1,17 @@ package com.example.brzodolokacije.Fragments +import android.content.Intent 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.Toast import androidx.fragment.app.FragmentTransaction +import com.example.brzodolokacije.Activities.ActivityAddPost +import com.example.brzodolokacije.Activities.ActivityForgottenPassword import com.example.brzodolokacije.R // TODO: Rename parameter arguments, choose names that match @@ -36,11 +41,17 @@ class FragmentAddNew : Fragment() { addNewPost.setOnClickListener{ + Toast.makeText( + activity, "Add new post", Toast.LENGTH_LONG + ).show(); + val intent = Intent (getActivity(), ActivityAddPost::class.java) + getActivity()?.startActivity(intent) +/* var fm: FragmentTransaction =childFragmentManager.beginTransaction() fm.replace(R.id.flFragmentAddNewFragmentContainer, FragmentAddPost()) - fm.commit() + fm.commit()*/ } diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_back.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_back.xml new file mode 100644 index 0000000..d9b7ee0 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_back.xml @@ -0,0 +1,5 @@ +<vector android:autoMirrored="true" android:height="24dp" + android:tint="#274352" android:viewportHeight="24" + android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M11.67,3.87L9.9,2.1 0,12l9.9,9.9 1.77,-1.77L3.54,12z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_forward.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_forward.xml new file mode 100644 index 0000000..80b796f --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_forward.xml @@ -0,0 +1,5 @@ +<vector android:autoMirrored="true" android:height="24dp" + android:tint="#274352" android:viewportHeight="24" + android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M6.23,20.23l1.77,1.77l10,-10l-10,-10l-1.77,1.77l8.23,8.23z"/> +</vector> diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml index da38262..5727fb1 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml @@ -6,34 +6,71 @@ android:layout_height="match_parent" tools:context=".Activities.ActivityAddPost"> - <ImageView - android:id="@+id/image" - android:layout_width="200dp" - android:layout_height="200dp" - android:layout_weight="1" - app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostUploadImages" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - <Button android:id="@+id/btnActivityAddPostUploadImages" - android:layout_width="match_parent" - android:layout_height="40dp" + android:layout_width="417dp" + android:layout_height="61dp" android:layout_gravity="center" android:layout_weight="0" android:text="Importuj" app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPosTakeImage" - tools:layout_editor_absoluteX="-16dp" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> <Button android:id="@+id/btnActivityAddPosTakeImage" - android:layout_width="match_parent" - android:layout_height="40dp" + android:layout_width="417dp" + android:layout_height="57dp" android:layout_gravity="center" + android:layout_marginBottom="4dp" android:layout_weight="0" + android:text="Slikaj" app:layout_constraintBottom_toBottomOf="parent" - tools:layout_editor_absoluteX="-16dp" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" /> + + <Button + android:id="@+id/nextImage" + android:layout_width="wrap_content" + android:layout_height="0dp" + android:background="@drawable/rounded_transparent_button" + android:gravity="right" + android:textColor="@color/material_dynamic_primary30" + android:padding="30dp" + app:icon="@drawable/ic_baseline_arrow_forward" + app:iconTint="#072242" + app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostUploadImages" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:ignore="SpeakableTextPresentCheck" /> + + <Button + android:id="@+id/previousImage" + android:layout_width="wrap_content" + android:layout_height="0dp" + android:padding="30dp" + + android:gravity="left" + android:background="@drawable/rounded_transparent_button" + android:textColor="@color/material_dynamic_primary30" + app:icon="@drawable/ic_baseline_arrow_back" + app:iconTint="#0E283C" + app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostUploadImages" + app:layout_constraintEnd_toStartOf="@+id/nextImage" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:ignore="SpeakableTextPresentCheck" /> + + <ImageSwitcher + android:id="@+id/switcher" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintBottom_toTopOf="@+id/btnActivityAddPostUploadImages" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml new file mode 100644 index 0000000..c96961e --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml @@ -0,0 +1,9 @@ +<?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.ActivityCapturePost"> + +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml index 5cfda04..579afdb 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml @@ -10,6 +10,7 @@ <TextView android:layout_width="match_parent" android:layout_height="match_parent" /> + <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent"> @@ -22,11 +23,11 @@ android:stateListAnimator="@null" android:text="Nova lokacija" android:textColor="@color/cardview_dark_background" - app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toTopOf="@+id/flFragmentAddNewFragmentContainer" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/btnFragmentAddNewNewPost" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.00999999" /> + app:layout_constraintVertical_bias="0.997" /> <Button android:id="@+id/btnFragmentAddNewNewPost" @@ -37,33 +38,36 @@ android:text="Nova objava" android:textColor="@color/cardview_dark_background" - app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintBottom_toTopOf="@+id/flFragmentAddNewFragmentContainer" app:layout_constraintEnd_toStartOf="@+id/btnFragmentAddNewNewLocation" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.00999999" /> + app:layout_constraintVertical_bias="0.997" /> <View android:id="@+id/divider3" android:layout_width="409dp" android:layout_height="1dp" android:background="?android:attr/listDivider" + app:layout_constraintBottom_toTopOf="@+id/flFragmentAddNewFragmentContainer" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/btnFragmentAddNewNewPost" /> + app:layout_constraintTop_toBottomOf="@+id/btnFragmentAddNewNewPost" + app:layout_constraintVertical_bias="1.0" /> <FrameLayout android:id="@+id/flFragmentAddNewFragmentContainer" - android:layout_width="409dp" - android:layout_height="673dp" + android:layout_width="411dp" + android:layout_height="309dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent"> </FrameLayout> - </androidx.constraintlayout.widget.ConstraintLayout> - + </androidx.constraintlayout.widget.ConstraintLayout> </FrameLayout>
\ No newline at end of file |