Use databinding for some widgets
This commit is contained in:
parent
9ae2b36a3c
commit
53e3bd6229
|
@ -34,6 +34,7 @@ android {
|
|||
jvmTarget = "1.8"
|
||||
}
|
||||
buildFeatures {
|
||||
dataBinding = true
|
||||
viewBinding = true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ class GalleryFragment : Fragment() {
|
|||
// val galleryViewModel = ViewModelProvider(this)[GalleryViewModel::class.java]
|
||||
|
||||
_binding = FragmentGalleryBinding.inflate(inflater, container, false)
|
||||
binding.viewModel = galleryViewModel
|
||||
val root: View = binding.root
|
||||
|
||||
val chipGroupPages = binding.chipGroupPages
|
||||
|
@ -45,19 +46,12 @@ class GalleryFragment : Fragment() {
|
|||
pageZoomLevelChips[pages] = chip
|
||||
}
|
||||
pageZoomLevelChips[galleryViewModel.pagesPerLandscape.value]?.isChecked = true
|
||||
binding.chipAutoCrop.isChecked = galleryViewModel.renderAutoCrop.value!!
|
||||
binding.chipUsePdfBox.isChecked = galleryViewModel.usePdfBox.value!!
|
||||
|
||||
galleryViewModel.textDisplays.observe(viewLifecycleOwner) { binding.textDisplays.text = it }
|
||||
galleryViewModel.usePdfBox.observe(viewLifecycleOwner) { binding.chipUsePdfBox.isChecked = it }
|
||||
galleryViewModel.renderAutoCrop.observe(viewLifecycleOwner) { binding.chipAutoCrop.isChecked = it }
|
||||
galleryViewModel.textDisplays.observe(viewLifecycleOwner) { binding.textDisplays.text = it } // TODO: Investigate why the binding, even when set @=, in the XML is insufficient for live updates
|
||||
galleryViewModel.pagesPerLandscape.observe(viewLifecycleOwner) {
|
||||
pageZoomLevelChips[it]?.isChecked = true
|
||||
}
|
||||
|
||||
binding.chipAutoCrop.setOnCheckedChangeListener { _, checked -> galleryViewModel.renderAutoCrop.value = checked }
|
||||
binding.chipUsePdfBox.setOnCheckedChangeListener { _, checked -> galleryViewModel.usePdfBox.value = checked }
|
||||
|
||||
galleryViewModel.pageThumbnails.observe(viewLifecycleOwner, ::populateThumbnails)
|
||||
|
||||
val container = binding.thumbnailsLayout
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout>
|
||||
<data>
|
||||
<variable name="viewModel" type="com.lhw.pdf.ui.gallery.GalleryViewModel" />
|
||||
</data>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
|
@ -45,6 +49,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="@{viewModel.textDisplays}"
|
||||
android:textAlignment="center"
|
||||
android:textSize="20sp" />
|
||||
|
||||
|
@ -66,7 +71,7 @@
|
|||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/chip_auto_crop"
|
||||
android:checkable="true"
|
||||
android:checked="true"
|
||||
android:checked="@={viewModel.renderAutoCrop}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Auto Crop" />
|
||||
|
@ -74,6 +79,7 @@
|
|||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/chip_use_pdf_box"
|
||||
android:checkable="true"
|
||||
android:checked="@={viewModel.usePdfBox}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Use PdfBox renderer (slower)" />
|
||||
|
@ -81,3 +87,4 @@
|
|||
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
Loading…
Reference in New Issue