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"> package="net.underdesk.circolapp">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application <application
android:allowBackup="true" android:allowBackup="true"

View File

@@ -18,10 +18,15 @@
package net.underdesk.circolapp.adapters package net.underdesk.circolapp.adapters
import android.app.DownloadManager
import android.content.Context import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Environment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageButton
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.item_circular.view.* 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 title: TextView = view.circular_title_textview
var number: TextView = view.circular_number_textview var number: TextView = view.circular_number_textview
var date: TextView = view.circular_date_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 { 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.number.text = context.getString(R.string.notification_title, circulars[position].id)
holder.title.text = circulars[position].name holder.title.text = circulars[position].name
holder.date.text = circulars[position].date 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 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_marginStart="8dp"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp" app:layout_constraintBottom_toTopOf="@+id/circular_view_button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/circular_number_textview" /> app:layout_constraintTop_toBottomOf="@+id/circular_number_textview" />
@@ -45,6 +44,54 @@
app:layout_constraintStart_toEndOf="@+id/circular_number_textview" app:layout_constraintStart_toEndOf="@+id/circular_number_textview"
app:layout_constraintTop_toTopOf="@+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.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>