fix worker crash on grades sync & fix mensa blocking update on start
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
* improve qispos logging
This commit is contained in:
parent
451f6082ff
commit
f40c0503c0
|
@ -58,7 +58,7 @@ import kotlin.system.measureTimeMillis
|
|||
class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
|
||||
|
||||
private var activeFragment: Fragment = HomeFragment() // the currently active fragment, home at the start
|
||||
private val className = "MainActivity"
|
||||
private val className = this.javaClass.name
|
||||
|
||||
private lateinit var adapter: NfcAdapter
|
||||
private lateinit var pendingIntent: PendingIntent
|
||||
|
@ -181,7 +181,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
|
|||
EncryptedPreferences.load(this)
|
||||
NotificationUtils(this)
|
||||
}
|
||||
Log.i(className, "startup completed in $startupTime ms")
|
||||
Log.i(className, "Startup completed in $startupTime ms")
|
||||
}
|
||||
|
||||
private fun initAesthetic() {
|
||||
|
|
|
@ -68,8 +68,10 @@ class QISPOSParser(val context: Context) {
|
|||
.referrer("https://notenverwaltung.hs-offenburg.de/qispos/rds?state=user&type=0")
|
||||
.execute()
|
||||
|
||||
Log.i(className, "Qispos status is: ${res.statusCode()}")
|
||||
res.statusCode()
|
||||
} catch (exHttp: HttpStatusException) {
|
||||
Log.w(className, "Qispos status is: ${exHttp.statusCode}")
|
||||
exHttp.statusCode
|
||||
} catch (ex: Exception) {
|
||||
Log.e(className, "Error while checking status", ex)
|
||||
|
@ -152,7 +154,7 @@ class QISPOSParser(val context: Context) {
|
|||
.data(list)
|
||||
.postDataCharset("UTF-8")
|
||||
.execute()
|
||||
Log.i(className, "login status is: ${res.statusMessage()}: ${res.statusCode()}")
|
||||
Log.i(className, "Login status is: ${res.statusCode()} (${res.statusMessage()})")
|
||||
|
||||
val loginCookies = res.cookies()
|
||||
|
||||
|
@ -187,9 +189,10 @@ class QISPOSParser(val context: Context) {
|
|||
.referrer("https://notenverwaltung.hs-offenburg.de/qispos/rds?state=user&type=0")
|
||||
.get()
|
||||
|
||||
Log.i(className, "Read html length: ${gradesListHtml.body().html().length}")
|
||||
gradesListHtml.body()
|
||||
} catch (ex: Exception) {
|
||||
Log.e(className, "error while loading qispos", ex)
|
||||
Log.e(className, "Error while loading Qispos", ex)
|
||||
null
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,10 +49,9 @@ import kotlin.collections.HashMap
|
|||
* It contains the courseList and mensaMenu object, all timetable objects
|
||||
* are located in TimetableController.
|
||||
*/
|
||||
class CacheController(cont: Context) {
|
||||
class CacheController(private val context: Context) {
|
||||
|
||||
private val className = "CacheController"
|
||||
private val context = cont
|
||||
private val className = this.javaClass.name
|
||||
|
||||
init {
|
||||
val cal = Calendar.getInstance()
|
||||
|
@ -63,8 +62,8 @@ class CacheController(cont: Context) {
|
|||
cal.time = Date(mensaCacheTime * 1000)
|
||||
|
||||
// if a) it's monday and the last cache update was on sunday or b) the cache is older than 24hr, update blocking
|
||||
if ((currentDay == Calendar.MONDAY && cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) || (currentTime - mensaMenu.meta.updateTime) > 86400) {
|
||||
Log.i(className, "update mensa blocking")
|
||||
if ((currentDay == Calendar.MONDAY && cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) || (currentTime - mensaCacheTime) > 86400) {
|
||||
Log.i(className, "Update mensa blocking")
|
||||
GlobalScope.launch(Dispatchers.Default) { updateMensaMenu(context).join() }
|
||||
}
|
||||
|
||||
|
@ -73,7 +72,7 @@ class CacheController(cont: Context) {
|
|||
|
||||
// if a) it`s monday and the last cache update was not on a sunday or b) the cache is older than 24hr, update blocking
|
||||
if ((currentDay == Calendar.MONDAY && cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) || (currentTime - timetableCacheTime) > 86400) {
|
||||
Log.i(className, "updating timetable after sunday!")
|
||||
Log.i(className, "Updating timetable after sunday!")
|
||||
|
||||
GlobalScope.launch(Dispatchers.Default) {
|
||||
val threads = listOf(
|
||||
|
@ -95,10 +94,8 @@ class CacheController(cont: Context) {
|
|||
if (currentTime - mensaCacheTime > 10800)
|
||||
updateMensaMenu(context)
|
||||
|
||||
if (currentTime - timetableCacheTime > 10800) {
|
||||
if (currentTime - timetableCacheTime > 10800)
|
||||
TimetableController.update(context)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
@ -48,15 +48,14 @@ class GradesUpdateWorker(val context: Context, params: WorkerParameters): Worker
|
|||
return Result.success()
|
||||
}
|
||||
|
||||
// TODO show updating notification, for debugging
|
||||
val notificationIdDBG = NotificationUtils.getId()
|
||||
val builderDBG = NotificationCompat.Builder(context, CHANNEL_ID_GRADES)
|
||||
val notificationIdChecking = NotificationUtils.getId()
|
||||
val builderChecking = NotificationCompat.Builder(context, CHANNEL_ID_GRADES)
|
||||
.setSmallIcon(R.drawable.ic_grading_black_24dp)
|
||||
.setContentTitle(context.getString(R.string.notification_grades))
|
||||
.setContentText(context.getString(R.string.notification_grades_updating_desc))
|
||||
.setNotificationSilent()
|
||||
NotificationManagerCompat.from(context).apply {
|
||||
notify(notificationIdDBG, builderDBG.build())
|
||||
notify(notificationIdChecking, builderChecking.build())
|
||||
}
|
||||
|
||||
// get old grades
|
||||
|
@ -70,7 +69,7 @@ class GradesUpdateWorker(val context: Context, params: WorkerParameters): Worker
|
|||
val diff = GradesController().diffGrades(oldGrades, newGrades)
|
||||
|
||||
// show message
|
||||
if (diff.isNotEmpty() || diff.isEmpty()) {
|
||||
if (diff.isNotEmpty()) {
|
||||
val text = if (diff.size < 2) {
|
||||
context.getString(R.string.notification_grades_single_desc, diff.first().name)
|
||||
} else {
|
||||
|
@ -100,11 +99,11 @@ class GradesUpdateWorker(val context: Context, params: WorkerParameters): Worker
|
|||
}
|
||||
}
|
||||
|
||||
// TODO remove debug notification
|
||||
// remove scanning notification
|
||||
NotificationManagerCompat.from(context).apply {
|
||||
cancel(notificationIdDBG)
|
||||
cancel(notificationIdChecking)
|
||||
}
|
||||
|
||||
|
||||
return Result.success()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue