diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt index b60fe1f..88c4b20 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt @@ -90,10 +90,11 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte // based on the intent we get, call readBalance or open a Fragment when (intent.action) { NfcAdapter.ACTION_TECH_DISCOVERED -> NFCMensaCard.readBalance(intent, this) - "org.mosad.seil0.projectlaogai.fragments.MensaFragment" -> activeFragment = MensaFragment() - "org.mosad.seil0.projectlaogai.fragments.TimeTableFragment" -> activeFragment = TimeTableFragment() - "org.mosad.seil0.projectlaogai.fragments.MoodleFragment" -> activeFragment = MoodleFragment() - "org.mosad.seil0.projectlaogai.fragments.GradesFragment" -> activeFragment = GradesFragment() + getString(R.string.intent_action_mensaFragment) -> activeFragment = MensaFragment() + getString(R.string.intent_action_timetableFragment) -> activeFragment = TimetableFragment() + getString(R.string.intent_action_moodleFragment) -> activeFragment = MoodleFragment() + getString(R.string.intent_action_gradesFragment) -> activeFragment = GradesFragment() + else -> activeFragment = HomeFragment() } // open the activeFragment, default is the HomeFragment @@ -154,7 +155,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte activeFragment = when(item.itemId) { R.id.nav_home -> HomeFragment() R.id.nav_mensa -> MensaFragment() - R.id.nav_timetable -> TimeTableFragment() + R.id.nav_timetable -> TimetableFragment() R.id.nav_moodle -> MoodleFragment() R.id.nav_grades -> GradesFragment() R.id.nav_settings -> SettingsFragment() diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimetableFragment.kt similarity index 99% rename from app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt rename to app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimetableFragment.kt index 2ddf4a6..121fb4e 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimetableFragment.kt @@ -44,7 +44,7 @@ import org.mosad.seil0.projectlaogai.util.NotRetardedCalendar * The timetable controller class * 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 faBtnAddSubject: FloatingActionButton diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/worker/GradesUpdateWorker.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/worker/GradesUpdateWorker.kt index 3bea701..c44632a 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/worker/GradesUpdateWorker.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/worker/GradesUpdateWorker.kt @@ -22,12 +22,15 @@ package org.mosad.seil0.projectlaogai.worker +import android.app.PendingIntent import android.content.Context +import android.content.Intent import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.work.Worker import androidx.work.WorkerParameters import kotlinx.coroutines.runBlocking +import org.mosad.seil0.projectlaogai.MainActivity import org.mosad.seil0.projectlaogai.R import org.mosad.seil0.projectlaogai.controller.GradesController 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 - println("doing work ...") val notificationIdDBG = NotificationUtils.getId() val builderDBG = NotificationCompat.Builder(context, CHANNEL_ID_GRADES) .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) // show message - if (diff.isNotEmpty()) { + if (diff.isNotEmpty() || diff.isEmpty()) { val text = if (diff.size < 2) { context.getString(R.string.notification_grades_single_desc, diff.first().name) } else { 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) .setSmallIcon(R.drawable.ic_grading_black_24dp) .setContentTitle(context.getString(R.string.notification_grades)) .setContentText(text) + .setContentIntent(pendingIntent) + .setAutoCancel(true) // if there are multiple subjects, use BigText if (diff.size > 1) diff --git a/app/src/main/res/layouts/activities/xml/shortcuts.xml b/app/src/main/res/layouts/activities/xml/shortcuts.xml index a5e9ab8..dc94618 100644 --- a/app/src/main/res/layouts/activities/xml/shortcuts.xml +++ b/app/src/main/res/layouts/activities/xml/shortcuts.xml @@ -21,7 +21,7 @@ android:shortcutLongLabel="@string/shortcut_timetable_long" android:shortcutDisabledMessage="@string/shortcut_timetable_disabled"> diff --git a/app/src/main/res/layouts/fragments/layout/fragment_timetable.xml b/app/src/main/res/layouts/fragments/layout/fragment_timetable.xml index 00de1e1..116de40 100644 --- a/app/src/main/res/layouts/fragments/layout/fragment_timetable.xml +++ b/app/src/main/res/layouts/fragments/layout/fragment_timetable.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".fragments.TimeTableFragment" + tools:context=".fragments.TimetableFragment" android:background="?themePrimary"> org.mosad.seil0.projectlaogai.user_email org.mosad.seil0.projectlaogai.user_password + + org.mosad.seil0.projectlaogai.fragments.MensaFragment + org.mosad.seil0.projectlaogai.fragments.TimetableFragment + org.mosad.seil0.projectlaogai.fragments.MoodleFragment + org.mosad.seil0.projectlaogai.fragments.GradesFragment + Manually 1 Hour