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 org.kodein.di.generic.instance
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
||||||
@Suppress("EmptyMethod", "EmptyMethod")
|
@Suppress("EmptyMethod")
|
||||||
abstract class ChildFragment<V : BaseViewModel>(@LayoutRes contentLayoutId: Int) :
|
abstract class ChildFragment<V : BaseViewModel>(@LayoutRes contentLayoutId: Int) :
|
||||||
Fragment(contentLayoutId), KodeinAware {
|
Fragment(contentLayoutId), KodeinAware {
|
||||||
|
|
||||||
@@ -24,10 +24,12 @@ abstract class ChildFragment<V : BaseViewModel>(@LayoutRes contentLayoutId: Int)
|
|||||||
|
|
||||||
lateinit var viewModel: V
|
lateinit var viewModel: V
|
||||||
|
|
||||||
|
private val parent by lazy { requireParentFragment().requireParentFragment() }
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
viewModel =
|
viewModel =
|
||||||
ViewModelProvider(requireParentFragment().requireParentFragment(), factory)[getGenericClassAt<V>(0).java]
|
ViewModelProvider(parent, factory)[getGenericClassAt<V>(0).java]
|
||||||
configureObserver()
|
configureObserver()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,11 +60,14 @@ abstract class ChildFragment<V : BaseViewModel>(@LayoutRes contentLayoutId: Int)
|
|||||||
|
|
||||||
|
|
||||||
fun navigateParent(navArg: Any) {
|
fun navigateParent(navArg: Any) {
|
||||||
val fragment = requireParentFragment().requireParentFragment()
|
|
||||||
when(navArg) {
|
when(navArg) {
|
||||||
is Int -> (fragment).navigateTo(navArg)
|
is Int -> (parent).navigateTo(navArg)
|
||||||
is NavDirections -> (fragment).navigateTo(navArg)
|
is NavDirections -> (parent).navigateTo(navArg)
|
||||||
else -> { throw IOException("${navArg::class} is not a valid navigation argment") }
|
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
|
val navController = navHost.navController
|
||||||
navController.setGraph(R.navigation.home_navigation)
|
navController.setGraph(R.navigation.home_navigation)
|
||||||
|
|
||||||
navView.setOnNavigationItemSelectedListener {
|
|
||||||
setTitle(it.title.toString())
|
|
||||||
true
|
|
||||||
}
|
|
||||||
navView.setupWithNavController(navController)
|
navView.setupWithNavController(navController)
|
||||||
|
|
||||||
viewModel.getBottomBarState()?.let {
|
viewModel.getBottomBarState()?.let {
|
||||||
navView.selectedItemId = it
|
navView.selectedItemId = it
|
||||||
}
|
}
|
||||||
|
|
||||||
|
navController.addOnDestinationChangedListener { _, destination, _ ->
|
||||||
|
setTitle(destination.label.toString())
|
||||||
|
}
|
||||||
|
|
||||||
view.findViewById<FloatingActionButton>(R.id.fab1).setOnClickListener {
|
view.findViewById<FloatingActionButton>(R.id.fab1).setOnClickListener {
|
||||||
navigateTo(R.id.main_to_addItem)
|
navigateTo(R.id.main_to_addItem)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,11 +7,11 @@
|
|||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/nav_list"
|
android:id="@+id/nav_list"
|
||||||
android:name="com.appttude.h_mal.farmr.ui.FragmentList"
|
android:name="com.appttude.h_mal.farmr.ui.FragmentList"
|
||||||
android:label="fragment_list"
|
android:label="@string/text_label_1"
|
||||||
tools:layout="@layout/fragment_list" />
|
tools:layout="@layout/fragment_list" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/nav_calendar"
|
android:id="@+id/nav_calendar"
|
||||||
android:name="com.appttude.h_mal.farmr.ui.CalendarFragment"
|
android:name="com.appttude.h_mal.farmr.ui.CalendarFragment"
|
||||||
android:label="fragment_calendar"
|
android:label="@string/text_label_2"
|
||||||
tools:layout="@layout/fragment_calendar" />
|
tools:layout="@layout/fragment_calendar" />
|
||||||
</navigation>
|
</navigation>
|
||||||
Reference in New Issue
Block a user