mirror of
https://github.com/Matte23/circolapp.git
synced 2025-12-05 23:19:10 +00:00
Add support for Prever
This commit is contained in:
@@ -44,6 +44,7 @@ import net.underdesk.circolapp.data.AndroidCircularRepository
|
||||
import net.underdesk.circolapp.data.AndroidDatabase
|
||||
import net.underdesk.circolapp.databinding.ItemCircularBinding
|
||||
import net.underdesk.circolapp.fragments.NewReminderFragment
|
||||
import net.underdesk.circolapp.server.AndroidServerApi
|
||||
import net.underdesk.circolapp.shared.data.Circular
|
||||
import net.underdesk.circolapp.shared.data.CircularRepository
|
||||
import net.underdesk.circolapp.utils.DownloadableFile
|
||||
@@ -57,6 +58,7 @@ class CircularLetterAdapter(
|
||||
RecyclerView.Adapter<CircularLetterAdapter.CircularLetterViewHolder>() {
|
||||
private lateinit var context: Context
|
||||
private lateinit var circularRepository: CircularRepository
|
||||
private var idsAreHumanReadable = true
|
||||
private val adapterCallback: AdapterCallback = mainActivity
|
||||
private var collapsedItems = -1
|
||||
|
||||
@@ -90,14 +92,22 @@ class CircularLetterAdapter(
|
||||
val binding = ItemCircularBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||
context = parent.context
|
||||
circularRepository = AndroidCircularRepository.getInstance(context)
|
||||
idsAreHumanReadable = AndroidServerApi.getInstance(context).idsAreHumanReadable()
|
||||
|
||||
return CircularLetterViewHolder(binding)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: CircularLetterViewHolder, position: Int) {
|
||||
holder.number.text = context.getString(R.string.notification_title, circulars[position].id)
|
||||
if (idsAreHumanReadable) {
|
||||
holder.number.text =
|
||||
context.getString(R.string.notification_title_id, circulars[position].id)
|
||||
holder.date.text = circulars[position].date
|
||||
} else {
|
||||
holder.number.text =
|
||||
context.getString(R.string.notification_title_date, circulars[position].date)
|
||||
holder.date.text = ""
|
||||
}
|
||||
holder.title.text = circulars[position].name
|
||||
holder.date.text = circulars[position].date
|
||||
|
||||
val observer = Observer<Boolean> {
|
||||
if (it) {
|
||||
|
||||
@@ -30,19 +30,21 @@ import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.core.app.TaskStackBuilder
|
||||
import net.underdesk.circolapp.MainActivity
|
||||
import net.underdesk.circolapp.R
|
||||
import net.underdesk.circolapp.server.AndroidServerApi
|
||||
import net.underdesk.circolapp.shared.data.Circular
|
||||
import net.underdesk.circolapp.works.PollWork
|
||||
|
||||
object NotificationsUtils {
|
||||
fun createNotificationsForCirculars(circulars: List<Circular>, context: Context) {
|
||||
createNotificationChannel(context)
|
||||
val idsAreHumanReadable = AndroidServerApi.getInstance(context).idsAreHumanReadable()
|
||||
|
||||
val summaryStyle = NotificationCompat.InboxStyle()
|
||||
.setBigContentTitle(context.getString(R.string.notification_summary_title))
|
||||
.setSummaryText(context.getString(R.string.notification_summary))
|
||||
|
||||
for (circular in circulars) {
|
||||
createNotification(circular, context)
|
||||
createNotification(circular, context, idsAreHumanReadable)
|
||||
summaryStyle.addLine(circular.name)
|
||||
}
|
||||
|
||||
@@ -67,7 +69,11 @@ object NotificationsUtils {
|
||||
}
|
||||
}
|
||||
|
||||
private fun createNotification(circular: Circular, context: Context) {
|
||||
private fun createNotification(
|
||||
circular: Circular,
|
||||
context: Context,
|
||||
idsAreHumanReadable: Boolean
|
||||
) {
|
||||
val mainIntent = Intent(context, MainActivity::class.java)
|
||||
val viewIntent = Intent(Intent.ACTION_VIEW)
|
||||
|
||||
@@ -88,7 +94,6 @@ object NotificationsUtils {
|
||||
|
||||
val builder = NotificationCompat.Builder(context, PollWork.CHANNEL_ID)
|
||||
.setSmallIcon(R.drawable.ic_notification)
|
||||
.setContentTitle(context.getString(R.string.notification_title, circular.id))
|
||||
.setContentText(circular.name)
|
||||
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
||||
.setContentIntent(pendingIntent)
|
||||
@@ -99,6 +104,17 @@ object NotificationsUtils {
|
||||
.bigText(circular.name)
|
||||
)
|
||||
|
||||
if (idsAreHumanReadable) {
|
||||
builder.setContentTitle(context.getString(R.string.notification_title_id, circular.id))
|
||||
} else {
|
||||
builder.setContentTitle(
|
||||
context.getString(
|
||||
R.string.notification_title_date,
|
||||
circular.date
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
with(NotificationManagerCompat.from(context)) {
|
||||
notify(circular.id.toInt(), builder.build())
|
||||
}
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
<string name="preferences_polling_summary">Sconsigliato. Disabilitare questa opzione per utilizzare le notifiche push</string>
|
||||
<string name="preferences_poll_interval_summary">Quanto tempo attendere tra una sincronizzazione ed un altra</string>
|
||||
|
||||
<string name="notification_title">Circolare numero %1$d</string>
|
||||
<string name="notification_title_id">Circolare numero %1$d</string>
|
||||
<string name="notification_title_date">Circolare pubblicata il %1$s</string>
|
||||
<string name="notification_summary_title">Nuove circolari pubblicate</string>
|
||||
<string name="notification_summary">Nuove circolari</string>
|
||||
<plurals name="notification_summary_text">
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
<string name="preferences_polling_summary">Not recommended. Disable this option to use push notifications</string>
|
||||
<string name="preferences_poll_interval_summary">How long to wait before checking if new circulars are published</string>
|
||||
|
||||
<string name="notification_title">Circular letter number %1$d</string>
|
||||
<string name="notification_title_id">Circular letter number %1$d</string>
|
||||
<string name="notification_title_date">Circular published on %1$s</string>
|
||||
<string name="notification_summary_title">New circulars published</string>
|
||||
<string name="notification_summary">New circulars</string>
|
||||
<plurals name="notification_summary_text">
|
||||
|
||||
Reference in New Issue
Block a user