From 87db41c4f14b95f4298bca1dd2c50cf7f8b42d92 Mon Sep 17 00:00:00 2001 From: Lup31519 Date: Thu, 31 Dec 2020 14:16:19 +0100 Subject: [PATCH 01/10] [Lab 04] 04 - Introduced Image Picker --- .../activities/SpotActivity.kt | 8 ++++++++ .../helpers/ImageHelpers.kt | 16 +++++++++++++++ app/src/main/res/layout/activity_spot.xml | 20 ++++++++++++++++++- app/src/main/res/values/strings.xml | 5 ++++- 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/archaeologicalfieldwork/helpers/ImageHelpers.kt diff --git a/app/src/main/java/com/archaeologicalfieldwork/activities/SpotActivity.kt b/app/src/main/java/com/archaeologicalfieldwork/activities/SpotActivity.kt index 7d3ead4..6f1e214 100644 --- a/app/src/main/java/com/archaeologicalfieldwork/activities/SpotActivity.kt +++ b/app/src/main/java/com/archaeologicalfieldwork/activities/SpotActivity.kt @@ -9,6 +9,7 @@ import org.jetbrains.anko.info import org.jetbrains.anko.toast import org.jetbrains.anko.AnkoLogger import com.archaeologicalfieldwork.R +import com.archaeologicalfieldwork.helpers.showImagePicker import com.archaeologicalfieldwork.main.MainApp import com.archaeologicalfieldwork.models.SpotModel @@ -18,6 +19,8 @@ class SpotActivity : AppCompatActivity(), AnkoLogger { lateinit var app: MainApp var edit = false + val IMAGE_REQUEST = 1 + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_spot) @@ -57,6 +60,11 @@ class SpotActivity : AppCompatActivity(), AnkoLogger { finish() } } + + //Handle Add Image Button Press + btnChooseImage.setOnClickListener { + showImagePicker(this, IMAGE_REQUEST) + } } override fun onCreateOptionsMenu(menu: Menu?): Boolean { diff --git a/app/src/main/java/com/archaeologicalfieldwork/helpers/ImageHelpers.kt b/app/src/main/java/com/archaeologicalfieldwork/helpers/ImageHelpers.kt new file mode 100644 index 0000000..0866320 --- /dev/null +++ b/app/src/main/java/com/archaeologicalfieldwork/helpers/ImageHelpers.kt @@ -0,0 +1,16 @@ +package com.archaeologicalfieldwork.helpers + +import android.app.Activity +import android.content.Intent +import com.archaeologicalfieldwork.R + + +fun showImagePicker(parent: Activity, id: Int) { + val intent = Intent() + intent.type = "image/*" + intent.action = Intent.ACTION_OPEN_DOCUMENT + intent.addCategory(Intent.CATEGORY_OPENABLE) + + val chooser = Intent.createChooser(intent, R.string.select_spot_image.toString()) + parent.startActivityForResult(chooser, id) +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_spot.xml b/app/src/main/res/layout/activity_spot.xml index 22f1f36..936e4a2 100644 --- a/app/src/main/res/layout/activity_spot.xml +++ b/app/src/main/res/layout/activity_spot.xml @@ -66,6 +66,24 @@ android:textColor="@color/colorPrimaryDark" android:textSize="14sp" /> +