mirror of
https://github.com/hmalik144/Farmr.git
synced 2026-01-31 02:41:49 +00:00
- Calender view page added
- migrated to tabbed bottom bar - update and clear filters fixed - Title set for child fragments
This commit is contained in:
@@ -15,7 +15,7 @@ import org.kodein.di.android.x.kodein
|
||||
import org.kodein.di.generic.instance
|
||||
import java.io.IOException
|
||||
|
||||
@Suppress("EmptyMethod", "EmptyMethod")
|
||||
@Suppress("EmptyMethod")
|
||||
abstract class ChildFragment<V : BaseViewModel>(@LayoutRes contentLayoutId: Int) :
|
||||
Fragment(contentLayoutId), KodeinAware {
|
||||
|
||||
@@ -24,10 +24,12 @@ abstract class ChildFragment<V : BaseViewModel>(@LayoutRes contentLayoutId: Int)
|
||||
|
||||
lateinit var viewModel: V
|
||||
|
||||
private val parent by lazy { requireParentFragment().requireParentFragment() }
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
viewModel =
|
||||
ViewModelProvider(requireParentFragment().requireParentFragment(), factory)[getGenericClassAt<V>(0).java]
|
||||
ViewModelProvider(parent, factory)[getGenericClassAt<V>(0).java]
|
||||
configureObserver()
|
||||
}
|
||||
|
||||
@@ -58,11 +60,14 @@ abstract class ChildFragment<V : BaseViewModel>(@LayoutRes contentLayoutId: Int)
|
||||
|
||||
|
||||
fun navigateParent(navArg: Any) {
|
||||
val fragment = requireParentFragment().requireParentFragment()
|
||||
when(navArg) {
|
||||
is Int -> (fragment).navigateTo(navArg)
|
||||
is NavDirections -> (fragment).navigateTo(navArg)
|
||||
is Int -> (parent).navigateTo(navArg)
|
||||
is NavDirections -> (parent).navigateTo(navArg)
|
||||
else -> { throw IOException("${navArg::class} is not a valid navigation argment") }
|
||||
}
|
||||
}
|
||||
|
||||
fun setTitle(title: String) {
|
||||
(parent as BaseFragment<*>).setTitle(title)
|
||||
}
|
||||
}
|
||||
@@ -64,16 +64,16 @@ class FragmentMain : BaseFragment<MainViewModel>(R.layout.fragment_main) {
|
||||
val navController = navHost.navController
|
||||
navController.setGraph(R.navigation.home_navigation)
|
||||
|
||||
navView.setOnNavigationItemSelectedListener {
|
||||
setTitle(it.title.toString())
|
||||
true
|
||||
}
|
||||
navView.setupWithNavController(navController)
|
||||
|
||||
viewModel.getBottomBarState()?.let {
|
||||
navView.selectedItemId = it
|
||||
}
|
||||
|
||||
navController.addOnDestinationChangedListener { _, destination, _ ->
|
||||
setTitle(destination.label.toString())
|
||||
}
|
||||
|
||||
view.findViewById<FloatingActionButton>(R.id.fab1).setOnClickListener {
|
||||
navigateTo(R.id.main_to_addItem)
|
||||
}
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
<fragment
|
||||
android:id="@+id/nav_list"
|
||||
android:name="com.appttude.h_mal.farmr.ui.FragmentList"
|
||||
android:label="fragment_list"
|
||||
android:label="@string/text_label_1"
|
||||
tools:layout="@layout/fragment_list" />
|
||||
<fragment
|
||||
android:id="@+id/nav_calendar"
|
||||
android:name="com.appttude.h_mal.farmr.ui.CalendarFragment"
|
||||
android:label="fragment_calendar"
|
||||
android:label="@string/text_label_2"
|
||||
tools:layout="@layout/fragment_calendar" />
|
||||
</navigation>
|
||||
Reference in New Issue
Block a user