Add buttons for view and download circulars

This commit is contained in:
2019-09-17 18:46:44 +02:00
committed by Matte23
parent 27001c9ea4
commit 6a1c56678f
7 changed files with 117 additions and 2 deletions

View File

@@ -3,6 +3,7 @@
package="net.underdesk.circolapp">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"

View File

@@ -18,10 +18,15 @@
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_circular.view.*
@@ -37,6 +42,10 @@ class CircularLetterAdapter(private val circulars: List<Circular>) :
var title: TextView = view.circular_title_textview
var number: TextView = view.circular_number_textview
var date: TextView = view.circular_date_textview
var viewButton: ImageButton = view.circular_view_button
var downloadButton: ImageButton = view.circular_download_button
var favouriteButton: ImageButton = view.circular_favourite_button
var reminderButton: ImageButton = view.circular_reminder_button
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CircularLetterViewHolder {
@@ -51,6 +60,23 @@ class CircularLetterAdapter(private val circulars: List<Circular>) :
holder.number.text = context.getString(R.string.notification_title, circulars[position].id)
holder.title.text = circulars[position].name
holder.date.text = circulars[position].date
holder.viewButton.setOnClickListener {
val viewIntent = Intent(Intent.ACTION_VIEW)
viewIntent.setDataAndType(Uri.parse(circulars[position].url), "application/pdf")
context.startActivity(viewIntent)
}
holder.downloadButton.setOnClickListener {
val request = DownloadManager.Request(Uri.parse(circulars[position].url))
request.setTitle(circulars[position].name)
request.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS,
"Circolapp/" + circulars[position].id + ".pdf"
)
(context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager).enqueue(request)
}
}
override fun getItemCount() = circulars.size

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"/>
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z"/>
</vector>

View File

@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z" />
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,4.5C7,4.5 2.73,7.61 1,12c1.73,4.39 6,7.5 11,7.5s9.27,-3.11 11,-7.5c-1.73,-4.39 -6,-7.5 -11,-7.5zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3 3,-1.34 3,-3 -1.34,-3 -3,-3z"/>
</vector>

View File

@@ -29,8 +29,7 @@
android:layout_marginStart="8dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintBottom_toTopOf="@+id/circular_view_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/circular_number_textview" />
@@ -45,6 +44,54 @@
app:layout_constraintStart_toEndOf="@+id/circular_number_textview"
app:layout_constraintTop_toTopOf="@+id/circular_number_textview" />
<ImageButton
android:id="@+id/circular_view_button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:src="@drawable/baseline_visibility_24"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ImageButton
android:id="@+id/circular_download_button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:src="@drawable/baseline_get_app_24"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/circular_guideline"
app:layout_constraintStart_toEndOf="@+id/circular_view_button" />
<ImageButton
android:id="@+id/circular_favourite_button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/baseline_star_24"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/circular_reminder_button"
app:layout_constraintStart_toStartOf="@+id/circular_guideline" />
<ImageButton
android:id="@+id/circular_reminder_button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:src="@drawable/baseline_notifications_24"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/circular_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>