aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTAMARA JERINIC <tamara.jerinic@gmail.com>2022-11-07 02:16:20 +0100
committerTAMARA JERINIC <tamara.jerinic@gmail.com>2022-11-07 02:16:20 +0100
commit3a6537bc3060d818d522e33f03321fd8aba1c0d9 (patch)
tree0e64e3149071644cd1b6757d6be9357e57425fe2
parent85ecac6429c2c27351429c4bfbc1e24bfb587d28 (diff)
Omogućen pregled fotografija učitanih iz galerije.
-rw-r--r--Client/BrzoDoLokacije/app/src/main/AndroidManifest.xml9
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityAddPost.kt122
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt11
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentAddNew.kt13
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_back.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_arrow_forward.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_add_post.xml69
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_capture_post.xml9
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_add_new.xml22
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