Highlight unread circulars on Android

This commit is contained in:
Matte23
2021-01-10 13:24:09 +01:00
parent 571e58095b
commit ca0ebc8e2c
8 changed files with 66 additions and 4 deletions

View File

@@ -30,6 +30,7 @@ import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import androidx.appcompat.widget.SearchView
import androidx.lifecycle.lifecycleScope
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupActionBarWithNavController
@@ -38,7 +39,9 @@ import androidx.preference.PreferenceManager
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.snackbar.Snackbar
import com.mikepenz.aboutlibraries.LibsBuilder
import kotlinx.coroutines.launch
import net.underdesk.circolapp.adapters.CircularLetterAdapter
import net.underdesk.circolapp.data.AndroidDatabase
import net.underdesk.circolapp.databinding.ActivityMainBinding
import net.underdesk.circolapp.utils.DownloadableFile
import net.underdesk.circolapp.works.PollWork
@@ -113,6 +116,12 @@ class MainActivity : AppCompatActivity(), CircularLetterAdapter.AdapterCallback
refreshCallback?.refresh()
true
}
R.id.menu_main_mark_all_read -> {
lifecycleScope.launch {
AndroidDatabase.getDaoInstance(this@MainActivity).markAllRead(true)
}
true
}
R.id.menu_main_settings -> {
startActivity(Intent(this, SettingsActivity::class.java))
true

View File

@@ -21,6 +21,7 @@ package net.underdesk.circolapp.adapters
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.graphics.Typeface
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -85,6 +86,14 @@ class CircularLetterAdapter(
holder.title.text = circulars[position].name
holder.date.text = circulars[position].date
if (circulars[position].read) {
holder.number.typeface = Typeface.DEFAULT
holder.date.typeface = Typeface.DEFAULT
} else {
holder.number.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
holder.date.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
}
holder.favouriteButton.setImageResource(
if (circulars[position].favourite) {
holder.favouriteButton.contentDescription =
@@ -154,6 +163,14 @@ class CircularLetterAdapter(
}
holder.viewButton.setOnClickListener {
adapterScope.launch {
AndroidDatabase.getDaoInstance(context).markRead(
circulars[position].id,
circulars[position].school,
true
)
}
FileUtils.viewFile(circulars[position].url, context)
}

View File

@@ -12,6 +12,10 @@
android:id="@+id/menu_main_refresh"
android:title="@string/menu_refresh"
app:showAsAction="never" />
<item
android:id="@+id/menu_main_mark_all_read"
android:title="@string/menu_mark_all_read"
app:showAsAction="never" />
<item
android:id="@+id/menu_main_settings"
android:title="@string/title_settings" />

View File

@@ -9,6 +9,7 @@
<string name="menu_about">Informazioni</string>
<string name="menu_search">Cerca</string>
<string name="menu_refresh">Aggiorna</string>
<string name="menu_mark_all_read">Segna tutte le circolari come lette</string>
<string name="preferences_general_header">Generale</string>
<string name="preference_notifications_header">Notifiche</string>

View File

@@ -9,6 +9,7 @@
<string name="menu_about">About</string>
<string name="menu_search">Search</string>
<string name="menu_refresh">Refresh</string>
<string name="menu_mark_all_read">Mark all circulars as read</string>
<string name="preferences_general_header">General</string>
<string name="preference_notifications_header">Notifications</string>