From f7213dae1c453dff4eb5ab39db6df3389e4f9ae0 Mon Sep 17 00:00:00 2001 From: Matte23 Date: Sun, 27 Dec 2020 15:32:20 +0100 Subject: [PATCH] Add share button for Android --- .../circolapp/adapters/AttachmentAdapter.kt | 5 ++ .../adapters/CircularLetterAdapter.kt | 7 +++ .../underdesk/circolapp/utils/FileUtils.kt | 11 +++++ .../main/res/drawable/baseline_share_24.xml | 10 ++++ app/src/main/res/layout/item_attachment.xml | 13 +++++ app/src/main/res/layout/item_circular.xml | 47 +++++++++++-------- app/src/main/res/values-it/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 8 files changed, 78 insertions(+), 19 deletions(-) create mode 100644 app/src/main/res/drawable/baseline_share_24.xml diff --git a/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt b/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt index 0df91ae..64a1f58 100644 --- a/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt +++ b/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt @@ -39,6 +39,7 @@ class AttachmentAdapter( inner class AttachmentViewHolder(binding: ItemAttachmentBinding) : RecyclerView.ViewHolder(binding.root) { var title: TextView = binding.attachmentTitleTextview var viewButton: ImageButton = binding.attachmentViewButton + var shareButton: ImageButton = binding.attachmentShareButton var downloadButton: ImageButton = binding.attachmentDownloadButton } @@ -56,6 +57,10 @@ class AttachmentAdapter( FileUtils.viewFile(attachmentsUrls[position], context) } + holder.shareButton.setOnClickListener { + FileUtils.shareFile(attachmentsUrls[position], context) + } + holder.downloadButton.setOnClickListener { val file = DownloadableFile(attachmentsNames[position], attachmentsUrls[position]) FileUtils.downloadFile(file, adapterCallback, context) diff --git a/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt b/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt index f509830..9079a85 100644 --- a/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt +++ b/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt @@ -62,6 +62,7 @@ class CircularLetterAdapter( var date: TextView = binding.circularDateTextview var collapseButton: ImageButton = binding.circularCollapseButton var viewButton: ImageButton = binding.circularViewButton + var shareButton: ImageButton = binding.circularShareButton var downloadButton: ImageButton = binding.circularDownloadButton var favouriteButton: ImageButton = binding.circularFavouriteButton var reminderButton: ImageButton = binding.circularReminderButton @@ -118,6 +119,7 @@ class CircularLetterAdapter( holder.collapseButton.contentDescription = context.getString(R.string.image_expand) holder.viewButton.visibility = View.GONE + holder.shareButton.visibility = View.GONE holder.downloadButton.visibility = View.GONE holder.favouriteButton.visibility = View.GONE holder.reminderButton.visibility = View.GONE @@ -134,6 +136,7 @@ class CircularLetterAdapter( holder.collapseButton.contentDescription = context.getString(R.string.image_collapse) holder.viewButton.visibility = View.VISIBLE + holder.shareButton.visibility = View.VISIBLE holder.downloadButton.visibility = View.VISIBLE holder.favouriteButton.visibility = View.VISIBLE holder.reminderButton.visibility = View.VISIBLE @@ -154,6 +157,10 @@ class CircularLetterAdapter( FileUtils.viewFile(circulars[position].url, context) } + holder.shareButton.setOnClickListener { + FileUtils.shareFile(circulars[position].url, context) + } + holder.downloadButton.setOnClickListener { val file = DownloadableFile(circulars[position].name, circulars[position].url) FileUtils.downloadFile(file, adapterCallback, context) diff --git a/app/src/main/java/net/underdesk/circolapp/utils/FileUtils.kt b/app/src/main/java/net/underdesk/circolapp/utils/FileUtils.kt index 6f69911..26a1ad6 100644 --- a/app/src/main/java/net/underdesk/circolapp/utils/FileUtils.kt +++ b/app/src/main/java/net/underdesk/circolapp/utils/FileUtils.kt @@ -43,6 +43,17 @@ object FileUtils { context.startActivity(viewIntent) } + fun shareFile(url: String, context: Context) { + val sendIntent: Intent = Intent().apply { + action = Intent.ACTION_SEND + putExtra(Intent.EXTRA_TEXT, url) + type = "text/plain" + } + + val shareIntent = Intent.createChooser(sendIntent, null) + context.startActivity(shareIntent) + } + fun downloadFile( file: DownloadableFile, adapterCallback: CircularLetterAdapter.AdapterCallback, diff --git a/app/src/main/res/drawable/baseline_share_24.xml b/app/src/main/res/drawable/baseline_share_24.xml new file mode 100644 index 0000000..4505f47 --- /dev/null +++ b/app/src/main/res/drawable/baseline_share_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/item_attachment.xml b/app/src/main/res/layout/item_attachment.xml index 7d4183e..26c6052 100644 --- a/app/src/main/res/layout/item_attachment.xml +++ b/app/src/main/res/layout/item_attachment.xml @@ -35,6 +35,19 @@ android:src="@drawable/baseline_visibility_24" android:tint="@color/colorSecondary" android:contentDescription="@string/image_view_attachment" + app:layout_constraintEnd_toStartOf="@+id/attachment_share_button" + app:layout_constraintTop_toTopOf="@+id/attachment_title_textview" + app:layout_constraintBottom_toBottomOf="@+id/attachment_title_textview" /> + + diff --git a/app/src/main/res/layout/item_circular.xml b/app/src/main/res/layout/item_circular.xml index 048bd8f..a972fed 100644 --- a/app/src/main/res/layout/item_circular.xml +++ b/app/src/main/res/layout/item_circular.xml @@ -62,55 +62,71 @@ + + + app:layout_constraintEnd_toStartOf="@+id/circular_favourite_button" + app:layout_constraintStart_toEndOf="@+id/circular_share_button" /> + app:layout_constraintStart_toEndOf="@+id/circular_download_button" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/circular_favourite_button" /> - - \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 39193b1..7a37860 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -78,8 +78,10 @@ Rete non disponibile. I risultati potrebbero non essere aggiornati Visualizza allegato + Condividi allegato Scarica allegato Visualizza circolare + Condividi circolare Scarica circolare Aggiungi ai preferiti Aggiungi promemoria diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4792ef1..7e4e9ac 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -79,8 +79,10 @@ Network not available. Results may be outdated View attachment + Share attachment Download attachment View circular + Share circular Download circular Add to favourites Add reminder