diff options
author | Allan Wang <me@allanwang.ca> | 2017-06-03 15:51:36 -0700 |
---|---|---|
committer | Allan Wang <me@allanwang.ca> | 2017-06-03 15:51:36 -0700 |
commit | 8ec65f55f85c730e97d5521c1443819435b98208 (patch) | |
tree | 6bd4350b3f6e5eda03c95c4a13fd7b7c7f50f2ac /app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt | |
parent | a5aa87bbaef7d2c937cc89295942882d050c3b5c (diff) | |
download | frost-8ec65f55f85c730e97d5521c1443819435b98208.tar.gz frost-8ec65f55f85c730e97d5521c1443819435b98208.tar.bz2 frost-8ec65f55f85c730e97d5521c1443819435b98208.zip |
Add toolbar title listeners
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt index 047cedac..f4ffd2b1 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt @@ -11,6 +11,7 @@ import android.support.v7.app.AppCompatActivity import android.support.v7.widget.Toolbar import android.view.Menu import android.view.MenuItem +import android.view.ViewTreeObserver import butterknife.ButterKnife import co.zsmb.materialdrawerkt.builders.Builder import co.zsmb.materialdrawerkt.builders.accountHeader @@ -26,9 +27,9 @@ import com.pitchedapps.frost.events.FbAccountEvent import com.pitchedapps.frost.facebook.FbCookie.switchUser import com.pitchedapps.frost.facebook.FbTab import com.pitchedapps.frost.facebook.PROFILE_PICTURE_URL -import com.pitchedapps.frost.fragments.BaseFragment import com.pitchedapps.frost.fragments.WebFragment import com.pitchedapps.frost.utils.* +import io.reactivex.disposables.Disposable import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -43,6 +44,7 @@ class MainActivity : AppCompatActivity() { lateinit var drawer: Drawer lateinit var drawerHeader: AccountHeader val cookies: ArrayList<CookieModel> by lazy { cookies() } + var titleDisposable: Disposable? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -53,6 +55,11 @@ class MainActivity : AppCompatActivity() { viewPager.adapter = adapter viewPager.offscreenPageLimit = 5 viewPager.addOnPageChangeListener(object : ViewPager.SimpleOnPageChangeListener() { + override fun onPageSelected(position: Int) { + super.onPageSelected(position) + updateTitleListener() + } + override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { super.onPageScrolled(position, positionOffset, positionOffsetPixels) val delta: Float by lazy { positionOffset * (255 - 128).toFloat() } @@ -72,6 +79,17 @@ class MainActivity : AppCompatActivity() { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show() } + viewPager.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener{ + override fun onGlobalLayout() { + viewPager.viewTreeObserver.removeOnGlobalLayoutListener(this) + updateTitleListener() + } + }) + } + + fun updateTitleListener() { + titleDisposable?.dispose() + titleDisposable = currentFragment.web.addTitleListener({ toolbar.title = it }) } fun setupTabs() { @@ -144,8 +162,8 @@ class MainActivity : AppCompatActivity() { super.onBackPressed() } - val currentFragment: BaseFragment - get() = supportFragmentManager.findFragmentByTag("android:switcher:${R.id.container}:${viewPager.currentItem}") as BaseFragment + val currentFragment + get() = supportFragmentManager.findFragmentByTag("android:switcher:${R.id.container}:${viewPager.currentItem}") as WebFragment inner class SectionsPagerAdapter(fm: FragmentManager, val pages: List<FbTab>) : FragmentPagerAdapter(fm) { |