- Calender view page added

- migrated to tabbed bottom bar
 - update and clear filters fixed
 - Title set for child fragments
This commit is contained in:
2023-09-14 11:43:09 +01:00
parent 6e41d78d60
commit 5c0ddcae5d
3 changed files with 16 additions and 11 deletions

View File

@@ -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)
}
}

View File

@@ -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)
}

View File

@@ -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>