aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-02-06 12:12:10 -0500
committerGitHub <noreply@github.com>2019-02-06 12:12:10 -0500
commit91b7d53fb37b9939943c16b0bfd7a947d9f2363e (patch)
tree01d8feffb8e467bb19bc405c91e0cd4f66f8fe06 /app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
parenta75555f3464607b93d523478999b9c8a7dc224a0 (diff)
downloadfrost-91b7d53fb37b9939943c16b0bfd7a947d9f2363e.tar.gz
frost-91b7d53fb37b9939943c16b0bfd7a947d9f2363e.tar.bz2
frost-91b7d53fb37b9939943c16b0bfd7a947d9f2363e.zip
Fix/open broadcast (#1345)
* Convert jsi related channels to broadcasts * Close channel in debug activity
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt54
1 files changed, 27 insertions, 27 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
index 044a1f37..c53e9055 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
@@ -21,6 +21,7 @@ import androidx.viewpager.widget.ViewPager
import ca.allanwang.kau.utils.withMainContext
import com.google.android.material.tabs.TabLayout
import com.pitchedapps.frost.facebook.FbItem
+import com.pitchedapps.frost.kotlin.subscribeDuringJob
import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.views.BadgedIcon
import kotlinx.coroutines.Dispatchers
@@ -34,7 +35,7 @@ import org.jsoup.Jsoup
class MainActivity : BaseMainActivity() {
override val fragmentChannel = BroadcastChannel<Int>(10)
- override val headerBadgeChannel = Channel<String>(Channel.CONFLATED)
+ override val headerBadgeChannel = BroadcastChannel<String>(Channel.CONFLATED)
var lastPosition = -1
override fun onNestedCreate(savedInstanceState: Bundle?) {
@@ -86,35 +87,34 @@ class MainActivity : BaseMainActivity() {
(tab.customView as BadgedIcon).badgeText = null
}
})
- launch(Dispatchers.IO) {
- for (html in headerBadgeChannel) {
- try {
- val doc = Jsoup.parse(html)
- if (doc.select("[data-sigil=count]").isEmpty())
- continue // Header doesn't exist
- val (feed, requests, messages, notifications) = listOf(
- "feed",
- "requests",
- "messages",
- "notifications"
- )
- .map { "[data-sigil*=$it] [data-sigil=count]" }
- .map { doc.select(it) }
- .map { e -> e?.getOrNull(0)?.ownText() }
- L.v { "Badges $feed $requests $messages $notifications" }
- withMainContext {
- tabsForEachView { _, view ->
- when (view.iicon) {
- FbItem.FEED.icon -> view.badgeText = feed
- FbItem.FRIENDS.icon -> view.badgeText = requests
- FbItem.MESSAGES.icon -> view.badgeText = messages
- FbItem.NOTIFICATIONS.icon -> view.badgeText = notifications
- }
+ headerBadgeChannel.subscribeDuringJob(this, Dispatchers.IO) {
+ html->
+ try {
+ val doc = Jsoup.parse(html)
+ if (doc.select("[data-sigil=count]").isEmpty())
+ return@subscribeDuringJob // Header doesn't exist
+ val (feed, requests, messages, notifications) = listOf(
+ "feed",
+ "requests",
+ "messages",
+ "notifications"
+ )
+ .map { "[data-sigil*=$it] [data-sigil=count]" }
+ .map { doc.select(it) }
+ .map { e -> e?.getOrNull(0)?.ownText() }
+ L.v { "Badges $feed $requests $messages $notifications" }
+ withMainContext {
+ tabsForEachView { _, view ->
+ when (view.iicon) {
+ FbItem.FEED.icon -> view.badgeText = feed
+ FbItem.FRIENDS.icon -> view.badgeText = requests
+ FbItem.MESSAGES.icon -> view.badgeText = messages
+ FbItem.NOTIFICATIONS.icon -> view.badgeText = notifications
}
}
- } catch (e: Exception) {
- L.e(e) { "Header badge error" }
}
+ } catch (e: Exception) {
+ L.e(e) { "Header badge error" }
}
}
adapter.pages.forEach {