diff --git a/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt b/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt
new file mode 100644
index 0000000..767de90
--- /dev/null
+++ b/app/src/main/java/net/underdesk/circolapp/adapters/AttachmentAdapter.kt
@@ -0,0 +1,78 @@
+/*
+ * Circolapp
+ * Copyright (C) 2019 Matteo Schiff
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package net.underdesk.circolapp.adapters
+
+import android.app.DownloadManager
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
+import android.os.Environment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageButton
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import kotlinx.android.synthetic.main.item_attachment.view.*
+import net.underdesk.circolapp.R
+
+class AttachmentAdapter(
+ private val attachmentsNames: List,
+ private val attachmentsUrls: List
+) :
+ RecyclerView.Adapter() {
+ private lateinit var context: Context
+
+ inner class AttachmentViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var title: TextView = view.attachment_title_textview
+ var viewButton: ImageButton = view.attachment_view_button
+ var downloadButton: ImageButton = view.attachment_download_button
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AttachmentViewHolder {
+ val itemView = LayoutInflater.from(parent.context)
+ .inflate(R.layout.item_attachment, parent, false)
+ context = parent.context
+
+ return AttachmentViewHolder(itemView)
+ }
+
+ override fun onBindViewHolder(holder: AttachmentViewHolder, position: Int) {
+ holder.title.text = attachmentsNames[position]
+
+ holder.viewButton.setOnClickListener {
+ val viewIntent = Intent(Intent.ACTION_VIEW)
+ viewIntent.setDataAndType(Uri.parse(attachmentsUrls[position]), "application/pdf")
+ context.startActivity(viewIntent)
+ }
+
+ holder.downloadButton.setOnClickListener {
+ val request = DownloadManager.Request(Uri.parse(attachmentsUrls[position]))
+ request.setTitle(attachmentsNames[position])
+ request.setDestinationInExternalPublicDir(
+ Environment.DIRECTORY_DOWNLOADS,
+ "Circolapp/" + attachmentsNames[position] + ".pdf"
+ )
+
+ (context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager).enqueue(request)
+ }
+ }
+
+ override fun getItemCount() = attachmentsNames.size
+}
\ No newline at end of file
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 65ffa74..e5ebc24 100644
--- a/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt
+++ b/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt
@@ -28,6 +28,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ImageButton
import android.widget.TextView
+import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.item_circular.view.*
import net.underdesk.circolapp.R
@@ -46,6 +47,7 @@ class CircularLetterAdapter(private val circulars: List) :
var downloadButton: ImageButton = view.circular_download_button
var favouriteButton: ImageButton = view.circular_favourite_button
var reminderButton: ImageButton = view.circular_reminder_button
+ var attachmentsList: RecyclerView = view.circulars_attachments_list
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CircularLetterViewHolder {
@@ -77,6 +79,18 @@ class CircularLetterAdapter(private val circulars: List) :
(context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager).enqueue(request)
}
+
+ if (circulars[position].attachmentsNames.isNotEmpty()) {
+ holder.attachmentsList.visibility = View.VISIBLE
+ holder.attachmentsList.layoutManager = LinearLayoutManager(context)
+ holder.attachmentsList.adapter = AttachmentAdapter(
+ circulars[position].attachmentsNames,
+ circulars[position].attachmentsUrls
+ )
+ } else {
+ holder.attachmentsList.visibility = View.GONE
+ holder.attachmentsList.adapter = null
+ }
}
override fun getItemCount() = circulars.size
diff --git a/app/src/main/res/layout/item_attachment.xml b/app/src/main/res/layout/item_attachment.xml
new file mode 100644
index 0000000..243ffd8
--- /dev/null
+++ b/app/src/main/res/layout/item_attachment.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_circular.xml b/app/src/main/res/layout/item_circular.xml
index db71743..6115cf8 100644
--- a/app/src/main/res/layout/item_circular.xml
+++ b/app/src/main/res/layout/item_circular.xml
@@ -51,7 +51,8 @@
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:src="@drawable/baseline_visibility_24"
- app:layout_constraintBottom_toBottomOf="parent"
+ android:tint="@color/colorAccent"
+ app:layout_constraintBottom_toTopOf="@+id/circulars_attachments_list"
app:layout_constraintStart_toStartOf="parent" />
@@ -71,7 +73,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/baseline_star_24"
- app:layout_constraintBottom_toBottomOf="parent"
+ android:tint="@color/colorAccent"
+ app:layout_constraintBottom_toTopOf="@+id/circulars_attachments_list"
app:layout_constraintEnd_toStartOf="@+id/circular_reminder_button"
app:layout_constraintStart_toStartOf="@+id/circular_guideline" />
@@ -82,9 +85,22 @@
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:src="@drawable/baseline_notifications_24"
- app:layout_constraintBottom_toBottomOf="parent"
+ android:tint="@color/colorAccent"
+ app:layout_constraintBottom_toTopOf="@+id/circulars_attachments_list"
app:layout_constraintEnd_toEndOf="parent" />
+
+
#008577
#00574B
#D81B60
+ #BDBDBD