aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-06-19 15:31:10 -0700
committerAllan Wang <me@allanwang.ca>2017-06-19 15:31:10 -0700
commit382433780c3f4403723a78e409cb161c9fad5034 (patch)
tree1138696bdd6e04d2227acaa4ab19ee8b85b4d2f8 /app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
parent0720413ee859762fc4c2d8748ba10402dffd0be7 (diff)
downloadfrost-382433780c3f4403723a78e409cb161c9fad5034.tar.gz
frost-382433780c3f4403723a78e409cb161c9fad5034.tar.bz2
frost-382433780c3f4403723a78e409cb161c9fad5034.zip
Parse header badges
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
index cdded244..cdfebfac 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
@@ -30,8 +30,12 @@ import com.pitchedapps.frost.facebook.FbTab
import com.pitchedapps.frost.facebook.PROFILE_PICTURE_URL
import com.pitchedapps.frost.fragments.WebFragment
import com.pitchedapps.frost.utils.*
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.schedulers.Schedulers
import io.reactivex.subjects.PublishSubject
import org.jetbrains.anko.childrenSequence
+import org.jsoup.Jsoup
+import java.util.concurrent.TimeUnit
class MainActivity : BaseActivity() {
@@ -45,6 +49,7 @@ class MainActivity : BaseActivity() {
lateinit var drawerHeader: AccountHeader
var webFragmentObservable = PublishSubject.create<Int>()!!
var lastPosition = -1
+ val headerBadgeObservable = PublishSubject.create<String>()
companion object {
const val FRAGMENT_REFRESH = 99
@@ -97,6 +102,22 @@ class MainActivity : BaseActivity() {
currentFragment.web.scrollOrRefresh()
}
})
+ headerBadgeObservable.throttleFirst(15, TimeUnit.SECONDS).subscribeOn(Schedulers.newThread())
+ .map { Jsoup.parse(it) }
+ .filter { it.select("[data-sigil=\"count\"]").size >= 0 } //ensure headers exist
+ .map {
+ val feed = it.select("[data-sigil*=\"feed\"] [data-sigil=\"count\"]")
+ val requests = it.select("[data-sigil*=\"requests\"] [data-sigil=\"count\"]")
+ val messages = it.select("[data-sigil*=\"messages\"] [data-sigil=\"count\"]")
+ val notifications = it.select("[data-sigil*=\"notifications\"] [data-sigil=\"count\"]")
+ return@map arrayOf(feed, requests, messages, notifications).map { it?.getOrNull(0)?.ownText() }
+ }
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe {
+ (feed, requests, messages, notifications) ->
+ L.d("Header subscription $feed $requests $messages $notifications")
+ L.d("contained nulls ${feed == null}")
+ }
adapter.pages.forEach { tabs.addTab(tabs.newTab().setIcon(it.icon.toDrawable(this, sizeDp = 20, color = Prefs.iconColor))) }
}