Removed redundant String ArrayLists in DataFetcher, made notifications simpler to glance at, changed accent colour of notifications

This commit is contained in:
Deniz Düzgören
2019-08-25 13:19:11 +02:00
parent e1f091d308
commit 0455cae88f
3 changed files with 65 additions and 92 deletions
+3 -10
View File
@@ -27,7 +27,6 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0-rc1' implementation 'androidx.appcompat:appcompat:1.1.0-rc1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
implementation 'org.jsoup:jsoup:1.11.3'
implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0-beta03' implementation 'androidx.recyclerview:recyclerview:1.1.0-beta03'
implementation 'com.google.android.material:material:1.1.0-alpha09' implementation 'com.google.android.material:material:1.1.0-alpha09'
@@ -35,24 +34,18 @@ dependencies {
implementation 'com.google.firebase:firebase-core:17.1.0' implementation 'com.google.firebase:firebase-core:17.1.0'
implementation 'com.google.firebase:firebase-messaging:20.0.0' implementation 'com.google.firebase:firebase-messaging:20.0.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
// implementation 'androidx.core:core-ktx:1.0.2'
implementation 'com.jaredrummler:android-device-names:1.1.8' implementation 'com.jaredrummler:android-device-names:1.1.8'
implementation 'org.jsoup:jsoup:1.11.3'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
def lifecycle_version = "2.0.0" def lifecycle_version = "2.0.0"
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
def room_version = "2.1.0-alpha04" def room_version = "2.1.0-alpha04"
implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version" kapt "androidx.room:room-compiler:$room_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
// implementation "androidx.work:work-runtime-ktx:2.0.1"
} }
repositories { repositories {
@@ -87,13 +87,6 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
val rows = doc.select("tr") val rows = doc.select("tr")
val paragraphs = doc.select("p") val paragraphs = doc.select("p")
val groupS = ArrayList<String>()
val dateS = ArrayList<String>()
val timeS = ArrayList<String>()
val courseS = ArrayList<String>()
val roomS = ArrayList<String>()
val additionalS = ArrayList<String>()
for (i in 0 until paragraphs.size) { for (i in 0 until paragraphs.size) {
if (i == 0) { if (i == 0) {
informational = paragraphs[i].text() informational = paragraphs[i].text()
@@ -103,51 +96,33 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
} }
edit.putString("informational", informational).apply() edit.putString("informational", informational).apply()
// substViewModel.deleteAllSubst()
substRepo.deleteAllSubst() substRepo.deleteAllSubst()
for (i in 0 until rows.size) { for (i in 0 until rows.size) {
val row = rows[i] val row = rows[i]
val cols = row.select("th") val cols = row.select("th")
groupS.add(cols[0].text()) val group = cols[0].text()
dateS.add(cols[1].text()) val course = cols[3].text()
timeS.add(cols[2].text()) val additional = cols[5].text()
courseS.add(cols[3].text()) substRepo.insert(Subst(group = group, date = cols[1].text(), time = cols[2].text(), course = course,
roomS.add(cols[4].text()) room = cols[4].text(), additional = additional, priority = priority))
additionalS.add(cols[5].text())
val subst = Subst(groupS[i], dateS[i], timeS[i], courseS[i],
roomS[i], additionalS[i], priority)
priority-- priority--
// substViewModel.insertSubst(subst)
substRepo.insert(subst)
if (jobservice && prefs.getBoolean("notif", true)) { if (jobservice && prefs.getBoolean("notif", true)) {
if ((prefs.getString("courses", "") if ((prefs.getString("courses", "") ?: "").isEmpty() && (prefs.getString("classes", "") ?: "").isNotEmpty()) {
?: "").isEmpty() && (prefs.getString("classes", "") if (group.isNotEmpty() && group != "") {
?: "").isNotEmpty()) { if ((prefs.getString("classes", "") ?: "").contains(group) || group.contains((prefs.getString("classes", "") ?: "").toString())) {
if (groupS[i].isNotEmpty() && groupS[i] != "") {
if ((prefs.getString("classes", "") notifText += "${if (notifText.isNotEmpty()) ",\n" else ""}$course: ${if (additional.isNotEmpty()) additional else "---"}"
?: "").contains(groupS[i]) || groupS[i].contains((prefs.getString("classes", "")
?: "").toString())) {
if (notifText.isNotEmpty()) {
notifText += ", "
}
notifText += courseS[i] + ": " + additionalS[i]
} }
} }
} else if ((prefs.getString("classes", "") } else if ((prefs.getString("classes", "") ?: "").isNotEmpty() && (prefs.getString("courses", "") ?: "").isNotEmpty()) {
?: "").isNotEmpty() && (prefs.getString("courses", "") if (group != "" && course != "") {
?: "").isNotEmpty()) { if ((prefs.getString("courses", "") ?: "").contains(course)) {
if (groupS[i] != "" && courseS[i] != "") { if ((prefs.getString("classes", "") ?: "").contains(group) || group.contains((prefs.getString("classes", "") ?: "").toString())) {
if ((prefs.getString("courses", "") ?: "").contains(courseS[i])) {
if ((prefs.getString("classes", "") notifText += "${if (notifText.isNotEmpty()) ",\n" else ""}$course: ${if (additional.isNotEmpty()) additional else "---"}"
?: "").contains(groupS[i]) || groupS[i].contains((prefs.getString("classes", "")
?: "").toString())) {
if (notifText.isNotEmpty()) {
notifText += ", "
}
notifText += courseS[i] + ": " + additionalS[i]
} }
} }
} }
@@ -155,7 +130,8 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
} }
} }
if (jobservice && prefs.getBoolean("notif", true)) { if (notifText.isNotEmpty()) {
val openApp = Intent(mContext, Main::class.java) val openApp = Intent(mContext, Main::class.java)
openApp.flags = Intent.FLAG_ACTIVITY_NEW_TASK openApp.flags = Intent.FLAG_ACTIVITY_NEW_TASK
openApp.flags += Intent.FLAG_ACTIVITY_CLEAR_TASK openApp.flags += Intent.FLAG_ACTIVITY_CLEAR_TASK
@@ -165,7 +141,6 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
notificationLayout.setTextViewText(R.id.notification_title, mContext.getString(R.string.substitutionPlan)) notificationLayout.setTextViewText(R.id.notification_title, mContext.getString(R.string.substitutionPlan))
notificationLayout.setTextViewText(R.id.notification_textview, notifText) notificationLayout.setTextViewText(R.id.notification_textview, notifText)
if (notifText.isNotEmpty()) {
val manager = mContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val manager = mContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val channelId = "general" val channelId = "general"
val channelName = mContext.getString(R.string.general) val channelName = mContext.getString(R.string.general)
@@ -184,10 +159,11 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
.setContentIntent(openAppPending) .setContentIntent(openAppPending)
.setAutoCancel(true) .setAutoCancel(true)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setColor(ContextCompat.getColor(mContext, R.color.colorAccent))
.build() .build()
manager.notify(1, notification) manager.notify(1, notification)
} }
}
edit.putString("timeNew", currentTime).apply() edit.putString("timeNew", currentTime).apply()
} }
} }
@@ -26,27 +26,31 @@ class FBPingService : JobService() {
FirebaseApp.initializeApp(context) FirebaseApp.initializeApp(context)
FirebaseMessaging.getInstance().apply {
if (prefs.getBoolean("notif", true)) { if (prefs.getBoolean("notif", true)) {
FirebaseMessaging.getInstance().subscribeToTopic("substitutions-android") subscribeToTopic("substitutions-android")
} else { } else {
FirebaseMessaging.getInstance().unsubscribeFromTopic("substitutions-android") unsubscribeFromTopic("substitutions-android")
} }
if (prefs.getBoolean("subscribedToFBDebugChannel", false)) { if (prefs.getBoolean("subscribedToFBDebugChannel", false)) {
FirebaseMessaging.getInstance().subscribeToTopic("substitutions-debug") subscribeToTopic("substitutions-debug")
} else { } else {
FirebaseMessaging.getInstance().unsubscribeFromTopic("substitutions-debug") unsubscribeFromTopic("substitutions-debug")
} }
if (prefs.getBoolean("subscribedToiOSChannel", false)) { if (prefs.getBoolean("subscribedToiOSChannel", false)) {
FirebaseMessaging.getInstance().subscribeToTopic("substitutions-ios") subscribeToTopic("substitutions-ios")
} else { } else {
FirebaseMessaging.getInstance().unsubscribeFromTopic("substitutions-ios") unsubscribeFromTopic("substitutions-ios")
} }
FirebaseMessaging.getInstance().subscribeToTopic("substitutions-broadcast") subscribeToTopic("substitutions-broadcast")
prefs.edit().putInt("pingFB", prefs.getInt("pingFB", 0) + 1).apply() prefs.edit().putInt("pingFB", prefs.getInt("pingFB", 0) + 1).apply()
}
jobFinished(params, false) jobFinished(params, false)
} }
} }