diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt b/app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt index 0aaeaa6d..b77847de 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/fragments/FragmentBase.kt @@ -2,14 +2,19 @@ package com.pitchedapps.frost.fragments import android.content.Context import android.os.Bundle +import android.support.design.widget.FloatingActionButton import android.support.v4.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import ca.allanwang.kau.utils.fadeScaleTransition +import ca.allanwang.kau.utils.setIcon import ca.allanwang.kau.utils.withArguments +import com.mikepenz.iconics.typeface.IIcon import com.pitchedapps.frost.contracts.DynamicUiContract import com.pitchedapps.frost.contracts.FrostContentParent import com.pitchedapps.frost.contracts.MainActivityContract +import com.pitchedapps.frost.contracts.MainFabContract import com.pitchedapps.frost.enums.FeedSort import com.pitchedapps.frost.facebook.FbItem import com.pitchedapps.frost.utils.* @@ -70,7 +75,7 @@ abstract class BaseFragment : Fragment(), FragmentContract, DynamicUiContract { throw IllegalArgumentException("${this::class.java.simpleName} is not attached to a context implementing MainActivityContract") } - override final fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + final override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(layoutRes, container, false) val content = view as? FrostContentParent ?: throw IllegalArgumentException("layoutRes for fragment must return view implementing FrostContentParent") @@ -118,6 +123,7 @@ abstract class BaseFragment : Fragment(), FragmentContract, DynamicUiContract { } position -> { contract.setTitle(baseEnum.titleId) + updateFab(contract) core?.active = true } -(position + 1) -> { @@ -129,6 +135,22 @@ abstract class BaseFragment : Fragment(), FragmentContract, DynamicUiContract { } } + override fun updateFab(contract: MainFabContract) { + contract.hideFab() // default + } + + protected fun FloatingActionButton.update(iicon: IIcon, click: () -> Unit) { + if (isShown) { + fadeScaleTransition { + setIcon(iicon, Prefs.iconColor) + } + } else { + setIcon(iicon, Prefs.iconColor) + show() + } + setOnClickListener { click() } + } + override fun detachMainObservable() { activityDisposable?.dispose() } |