aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt39
1 files changed, 30 insertions, 9 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
index cdfebfac..b4320ba3 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
@@ -13,7 +13,10 @@ import android.support.v7.widget.Toolbar
import android.view.Menu
import android.view.MenuItem
import android.widget.ImageButton
-import ca.allanwang.kau.utils.*
+import ca.allanwang.kau.utils.bindView
+import ca.allanwang.kau.utils.showChangelog
+import ca.allanwang.kau.utils.startActivitySlideIn
+import ca.allanwang.kau.utils.withMinAlpha
import co.zsmb.materialdrawerkt.builders.Builder
import co.zsmb.materialdrawerkt.builders.accountHeader
import co.zsmb.materialdrawerkt.builders.drawer
@@ -30,6 +33,7 @@ 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 com.pitchedapps.frost.views.BadgedIcon
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import io.reactivex.subjects.PublishSubject
@@ -76,11 +80,11 @@ class MainActivity : BaseActivity() {
val delta: Float by lazy { positionOffset * (255 - 128).toFloat() }
(0 until tabs.tabCount).asSequence().forEach {
i ->
- tabs.getTabAt(i)?.icon?.alpha = when (i) {
- position -> (255.0 - delta).toInt()
- position + 1 -> (128.0 + delta).toInt()
- else -> 128
- }
+ (tabs.getTabAt(i)!!.customView as BadgedIcon).setAllAlpha(when (i) {
+ position -> 255.0f - delta
+ position + 1 -> 128.0f + delta
+ else -> 128f
+ })
}
}
})
@@ -101,6 +105,11 @@ class MainActivity : BaseActivity() {
super.onTabReselected(tab)
currentFragment.web.scrollOrRefresh()
}
+
+ override fun onTabSelected(tab: TabLayout.Tab) {
+ super.onTabSelected(tab)
+ (tab.customView as BadgedIcon).badgeText = null
+ }
})
headerBadgeObservable.throttleFirst(15, TimeUnit.SECONDS).subscribeOn(Schedulers.newThread())
.map { Jsoup.parse(it) }
@@ -115,10 +124,22 @@ class MainActivity : BaseActivity() {
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
(feed, requests, messages, notifications) ->
- L.d("Header subscription $feed $requests $messages $notifications")
- L.d("contained nulls ${feed == null}")
+ (0 until tabs.tabCount).asSequence().forEach {
+ val tabBadge = tabs.getTabAt(it)!!.customView as BadgedIcon
+ when (tabBadge.iicon) {
+ FbTab.FEED.icon -> tabBadge.badgeText = feed
+ FbTab.FRIENDS.icon -> tabBadge.badgeText = requests
+ FbTab.MESSAGES.icon -> tabBadge.badgeText = messages
+ FbTab.NOTIFICATIONS.icon -> tabBadge.badgeText = notifications
+ }
+ }
}
- adapter.pages.forEach { tabs.addTab(tabs.newTab().setIcon(it.icon.toDrawable(this, sizeDp = 20, color = Prefs.iconColor))) }
+ adapter.pages.forEach {
+ tabs.addTab(tabs.newTab()
+ .setCustomView(BadgedIcon(this).apply {
+ iicon = it.icon
+ }))
+ }
}
fun setupDrawer(savedInstanceState: Bundle?) {