12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package com.ted.weather.ui.activity
- import android.support.v7.graphics.drawable.DrawerArrowDrawable
- import android.support.v7.widget.RecyclerView
- import android.support.v7.widget.Toolbar
- import com.ted.weather.ui.App
- import com.ted.weather.R
- import com.ted.weather.extensions.ctx
- import com.ted.weather.extensions.slideEnter
- import com.ted.weather.extensions.slideExit
- import org.jetbrains.anko.startActivity
- import org.jetbrains.anko.toast
- interface ToolbarManager {
- val toolbar: Toolbar
- var toolbarTitle: String
- get() = toolbar.title.toString()
- set(value) {
- toolbar.title = value
- }
- fun initToolbar() {
- toolbar.inflateMenu(R.menu.menu_main)
- toolbar.setOnMenuItemClickListener {
- when (it.itemId) {
- R.id.action_settings -> toolbar.ctx.startActivity<SettingsActivity>()
- else -> App.instance.toast("Unknown option")
- }
- true
- }
- }
- fun enableHomeAsUp(up: () -> Unit) {
- toolbar.navigationIcon = createUpDrawable()
- toolbar.setNavigationOnClickListener { up() }
- }
- private fun createUpDrawable() = DrawerArrowDrawable(toolbar.ctx).apply { progress = 1f }
- fun attachToScroll(recyclerView: RecyclerView) {
- recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
- override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {
- if (dy > 0) toolbar.slideExit() else toolbar.slideEnter()
- }
- })
- }
- }
|