mirror of
https://github.com/imcarlost/Friendlists.git
synced 2026-04-10 02:46:54 -04:00
implement favorite view
This commit is contained in:
@@ -4,18 +4,21 @@ import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.ui.NavigationUI.setupActionBarWithNavController
|
||||
import com.hako.base.extensions.observeNonNull
|
||||
import com.hako.base.extensions.*
|
||||
import com.hako.base.navigation.NavigationRouter
|
||||
import com.hako.base.navigation.ShowFabButton
|
||||
import com.hako.friendlists.BuildConfig
|
||||
import com.hako.friendlists.R
|
||||
import com.hako.friendlists.viewmodel.NavigationViewmodel
|
||||
import com.squareup.picasso.Picasso
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import org.koin.android.ext.android.inject
|
||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
||||
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
||||
private val navController by lazy { findNavController(R.id.main_fragment_container) }
|
||||
private val navHostFragment by lazy { findNavHostFragment(R.id.main_fragment_container) }
|
||||
private val navRouter: NavigationRouter by inject()
|
||||
private val picasso: Picasso by inject()
|
||||
private val viewModel: NavigationViewmodel by viewModel()
|
||||
@@ -39,6 +42,28 @@ class MainActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
setupActionBarWithNavController(this, navController)
|
||||
|
||||
navHostFragment.registerOnFragmentViewCreated { currentFragment ->
|
||||
initializeViews()
|
||||
when (currentFragment) {
|
||||
is ShowFabButton -> fabButtonBehaviour(currentFragment)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initializeViews() {
|
||||
main_fragment_fab.hide()
|
||||
}
|
||||
|
||||
private fun fabButtonBehaviour(currentFragment: ShowFabButton) {
|
||||
main_fragment_fab.setOnClickListener {
|
||||
currentFragment.fabButtonPressed().invoke()
|
||||
}
|
||||
if (currentFragment.shouldShowFabButton()) {
|
||||
main_fragment_fab.show()
|
||||
} else {
|
||||
main_fragment_fab.hide()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupPicasso() {
|
||||
|
||||
@@ -35,6 +35,9 @@ class NavigationViewmodel : ViewModel() {
|
||||
putString(FRAGMENT_TITLE, event.userName)
|
||||
})
|
||||
)
|
||||
is UserlistNavigation.ClickedOnFab -> navigate.postValue(
|
||||
buildNavigation(R.id.action_userlistFragment_to_favoriteUserlistFragment)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,4 +15,14 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/main_fragment_fab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end|bottom"
|
||||
android:layout_margin="24dp"
|
||||
android:src="@drawable/ic_heart"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<resources>
|
||||
<color name="colorPrimary">#37474F</color>
|
||||
<color name="colorPrimaryDark">#324047</color>
|
||||
<color name="colorAccent">#CBCFD1</color>
|
||||
<color name="colorAccent">#D32F2F</color>
|
||||
<color name="colorRed">#D32F2F</color>
|
||||
<color name="colorDarkGray">#333333</color>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user