diff options
author | Allan Wang <me@allanwang.ca> | 2017-06-19 15:31:10 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2017-06-19 15:31:10 -0700 |
commit | 382433780c3f4403723a78e409cb161c9fad5034 (patch) | |
tree | 1138696bdd6e04d2227acaa4ab19ee8b85b4d2f8 /app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt | |
parent | 0720413ee859762fc4c2d8748ba10402dffd0be7 (diff) | |
download | frost-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.kt | 21 |
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))) } } |