diff options
author | Allan Wang <me@allanwang.ca> | 2017-06-19 17:08:15 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2017-06-19 17:08:15 -0700 |
commit | a3b5b647e2651c9768a4056852aff36074590e94 (patch) | |
tree | 4398fd2f27dfda32d26c21d71ed0af746061bdc6 /app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt | |
parent | 382433780c3f4403723a78e409cb161c9fad5034 (diff) | |
download | frost-a3b5b647e2651c9768a4056852aff36074590e94.tar.gz frost-a3b5b647e2651c9768a4056852aff36074590e94.tar.bz2 frost-a3b5b647e2651c9768a4056852aff36074590e94.zip |
Created notification 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 | 39 |
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?) { |