make grades notification clickable
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
6388dfe54a
commit
36568e9682
|
@ -90,10 +90,11 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
|
||||||
// based on the intent we get, call readBalance or open a Fragment
|
// based on the intent we get, call readBalance or open a Fragment
|
||||||
when (intent.action) {
|
when (intent.action) {
|
||||||
NfcAdapter.ACTION_TECH_DISCOVERED -> NFCMensaCard.readBalance(intent, this)
|
NfcAdapter.ACTION_TECH_DISCOVERED -> NFCMensaCard.readBalance(intent, this)
|
||||||
"org.mosad.seil0.projectlaogai.fragments.MensaFragment" -> activeFragment = MensaFragment()
|
getString(R.string.intent_action_mensaFragment) -> activeFragment = MensaFragment()
|
||||||
"org.mosad.seil0.projectlaogai.fragments.TimeTableFragment" -> activeFragment = TimeTableFragment()
|
getString(R.string.intent_action_timetableFragment) -> activeFragment = TimetableFragment()
|
||||||
"org.mosad.seil0.projectlaogai.fragments.MoodleFragment" -> activeFragment = MoodleFragment()
|
getString(R.string.intent_action_moodleFragment) -> activeFragment = MoodleFragment()
|
||||||
"org.mosad.seil0.projectlaogai.fragments.GradesFragment" -> activeFragment = GradesFragment()
|
getString(R.string.intent_action_gradesFragment) -> activeFragment = GradesFragment()
|
||||||
|
else -> activeFragment = HomeFragment()
|
||||||
}
|
}
|
||||||
|
|
||||||
// open the activeFragment, default is the HomeFragment
|
// open the activeFragment, default is the HomeFragment
|
||||||
|
@ -154,7 +155,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
|
||||||
activeFragment = when(item.itemId) {
|
activeFragment = when(item.itemId) {
|
||||||
R.id.nav_home -> HomeFragment()
|
R.id.nav_home -> HomeFragment()
|
||||||
R.id.nav_mensa -> MensaFragment()
|
R.id.nav_mensa -> MensaFragment()
|
||||||
R.id.nav_timetable -> TimeTableFragment()
|
R.id.nav_timetable -> TimetableFragment()
|
||||||
R.id.nav_moodle -> MoodleFragment()
|
R.id.nav_moodle -> MoodleFragment()
|
||||||
R.id.nav_grades -> GradesFragment()
|
R.id.nav_grades -> GradesFragment()
|
||||||
R.id.nav_settings -> SettingsFragment()
|
R.id.nav_settings -> SettingsFragment()
|
||||||
|
|
|
@ -44,7 +44,7 @@ import org.mosad.seil0.projectlaogai.util.NotRetardedCalendar
|
||||||
* The timetable controller class
|
* The timetable controller class
|
||||||
* contains all needed parts to display and the timetable detail screen
|
* contains all needed parts to display and the timetable detail screen
|
||||||
*/
|
*/
|
||||||
class TimeTableFragment : Fragment() {
|
class TimetableFragment : Fragment() {
|
||||||
|
|
||||||
private lateinit var scrollViewTimetable: ScrollView
|
private lateinit var scrollViewTimetable: ScrollView
|
||||||
private lateinit var faBtnAddSubject: FloatingActionButton
|
private lateinit var faBtnAddSubject: FloatingActionButton
|
|
@ -22,12 +22,15 @@
|
||||||
|
|
||||||
package org.mosad.seil0.projectlaogai.worker
|
package org.mosad.seil0.projectlaogai.worker
|
||||||
|
|
||||||
|
import android.app.PendingIntent
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
import androidx.core.app.NotificationManagerCompat
|
import androidx.core.app.NotificationManagerCompat
|
||||||
import androidx.work.Worker
|
import androidx.work.Worker
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import org.mosad.seil0.projectlaogai.MainActivity
|
||||||
import org.mosad.seil0.projectlaogai.R
|
import org.mosad.seil0.projectlaogai.R
|
||||||
import org.mosad.seil0.projectlaogai.controller.GradesController
|
import org.mosad.seil0.projectlaogai.controller.GradesController
|
||||||
import org.mosad.seil0.projectlaogai.controller.cache.CacheController
|
import org.mosad.seil0.projectlaogai.controller.cache.CacheController
|
||||||
|
@ -46,7 +49,6 @@ class GradesUpdateWorker(val context: Context, params: WorkerParameters): Worker
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO show updating notification, for debugging
|
// TODO show updating notification, for debugging
|
||||||
println("doing work ...")
|
|
||||||
val notificationIdDBG = NotificationUtils.getId()
|
val notificationIdDBG = NotificationUtils.getId()
|
||||||
val builderDBG = NotificationCompat.Builder(context, CHANNEL_ID_GRADES)
|
val builderDBG = NotificationCompat.Builder(context, CHANNEL_ID_GRADES)
|
||||||
.setSmallIcon(R.drawable.ic_grading_black_24dp)
|
.setSmallIcon(R.drawable.ic_grading_black_24dp)
|
||||||
|
@ -68,17 +70,26 @@ class GradesUpdateWorker(val context: Context, params: WorkerParameters): Worker
|
||||||
val diff = GradesController().diffGrades(oldGrades, newGrades)
|
val diff = GradesController().diffGrades(oldGrades, newGrades)
|
||||||
|
|
||||||
// show message
|
// show message
|
||||||
if (diff.isNotEmpty()) {
|
if (diff.isNotEmpty() || diff.isEmpty()) {
|
||||||
val text = if (diff.size < 2) {
|
val text = if (diff.size < 2) {
|
||||||
context.getString(R.string.notification_grades_single_desc, diff.first().name)
|
context.getString(R.string.notification_grades_single_desc, diff.first().name)
|
||||||
} else {
|
} else {
|
||||||
context.getString(R.string.notification_grades_multiple_desc, diff.first().name, (diff.size - 1))
|
context.getString(R.string.notification_grades_multiple_desc, diff.first().name, (diff.size - 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val intent = Intent(context, MainActivity::class.java).apply {
|
||||||
|
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
|
||||||
|
action = context.getString(R.string.intent_action_gradesFragment)
|
||||||
|
}
|
||||||
|
|
||||||
|
val pendingIntent: PendingIntent = PendingIntent.getActivity(context, 0, intent, 0)
|
||||||
|
|
||||||
val builder = NotificationCompat.Builder(context, CHANNEL_ID_GRADES)
|
val builder = NotificationCompat.Builder(context, CHANNEL_ID_GRADES)
|
||||||
.setSmallIcon(R.drawable.ic_grading_black_24dp)
|
.setSmallIcon(R.drawable.ic_grading_black_24dp)
|
||||||
.setContentTitle(context.getString(R.string.notification_grades))
|
.setContentTitle(context.getString(R.string.notification_grades))
|
||||||
.setContentText(text)
|
.setContentText(text)
|
||||||
|
.setContentIntent(pendingIntent)
|
||||||
|
.setAutoCancel(true)
|
||||||
|
|
||||||
// if there are multiple subjects, use BigText
|
// if there are multiple subjects, use BigText
|
||||||
if (diff.size > 1)
|
if (diff.size > 1)
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
android:shortcutLongLabel="@string/shortcut_timetable_long"
|
android:shortcutLongLabel="@string/shortcut_timetable_long"
|
||||||
android:shortcutDisabledMessage="@string/shortcut_timetable_disabled">
|
android:shortcutDisabledMessage="@string/shortcut_timetable_disabled">
|
||||||
<intent
|
<intent
|
||||||
android:action="org.mosad.seil0.projectlaogai.fragments.TimeTableFragment"
|
android:action="org.mosad.seil0.projectlaogai.fragments.TimetableFragment"
|
||||||
android:targetPackage="org.mosad.seil0.projectlaogai"
|
android:targetPackage="org.mosad.seil0.projectlaogai"
|
||||||
android:targetClass="org.mosad.seil0.projectlaogai.MainActivity" />
|
android:targetClass="org.mosad.seil0.projectlaogai.MainActivity" />
|
||||||
<categories android:name="android.shortcut.conversation" />
|
<categories android:name="android.shortcut.conversation" />
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:context=".fragments.TimeTableFragment"
|
tools:context=".fragments.TimetableFragment"
|
||||||
android:background="?themePrimary">
|
android:background="?themePrimary">
|
||||||
|
|
||||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||||
|
|
|
@ -141,6 +141,12 @@
|
||||||
<string name="save_key_user_email" translatable="false">org.mosad.seil0.projectlaogai.user_email</string>
|
<string name="save_key_user_email" translatable="false">org.mosad.seil0.projectlaogai.user_email</string>
|
||||||
<string name="save_key_user_password" translatable="false">org.mosad.seil0.projectlaogai.user_password</string>
|
<string name="save_key_user_password" translatable="false">org.mosad.seil0.projectlaogai.user_password</string>
|
||||||
|
|
||||||
|
<!-- intent actions -->
|
||||||
|
<string name="intent_action_mensaFragment" translatable="false">org.mosad.seil0.projectlaogai.fragments.MensaFragment</string>
|
||||||
|
<string name="intent_action_timetableFragment" translatable="false">org.mosad.seil0.projectlaogai.fragments.TimetableFragment</string>
|
||||||
|
<string name="intent_action_moodleFragment" translatable="false">org.mosad.seil0.projectlaogai.fragments.MoodleFragment</string>
|
||||||
|
<string name="intent_action_gradesFragment" translatable="false">org.mosad.seil0.projectlaogai.fragments.GradesFragment</string>
|
||||||
|
|
||||||
<string-array name="syncInterval">
|
<string-array name="syncInterval">
|
||||||
<item>Manually</item>
|
<item>Manually</item>
|
||||||
<item>1 Hour</item>
|
<item>1 Hour</item>
|
||||||
|
|
Loading…
Reference in New Issue