From 21554b99ca15124cca0e03f4d86aa9a478d5be1a Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Fri, 1 May 2020 11:59:30 +0100 Subject: [PATCH] #770 Show extended detail for a book in a bottom sheet - add buttons - improve constraint Flow --- .../zim_manager/ZimManageViewModel.kt | 54 +++-- .../BookInfoBottomSheetDialog.kt | 22 +- .../fileselect_view/ZimFileSelectFragment.kt | 18 +- .../effects/StartMultiSelection.kt | 16 +- .../res/drawable-night/ic_delete_24dp.xml | 27 +++ .../main/res/drawable-night/ic_open_24dp.xml | 27 +++ .../main/res/drawable-night/ic_share_24dp.xml | 27 +++ app/src/main/res/drawable/ic_delete_24dp.xml | 27 +++ app/src/main/res/drawable/ic_open_24dp.xml | 27 +++ app/src/main/res/drawable/ic_share_24dp.xml | 27 +++ app/src/main/res/layout/detail_chip.xml | 3 +- app/src/main/res/layout/sheet_book_info.xml | 188 +++++++++++------- app/src/main/res/values/styles.xml | 11 + .../zim_manager/ZimManageViewModelTest.kt | 32 +-- buildSrc/src/main/kotlin/Versions.kt | 2 +- 15 files changed, 376 insertions(+), 132 deletions(-) create mode 100644 app/src/main/res/drawable-night/ic_delete_24dp.xml create mode 100644 app/src/main/res/drawable-night/ic_open_24dp.xml create mode 100644 app/src/main/res/drawable-night/ic_share_24dp.xml create mode 100644 app/src/main/res/drawable/ic_delete_24dp.xml create mode 100644 app/src/main/res/drawable/ic_open_24dp.xml create mode 100644 app/src/main/res/drawable/ic_share_24dp.xml diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModel.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModel.kt index 214df3dae..3bf528e3a 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModel.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModel.kt @@ -51,14 +51,16 @@ import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDis import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDiskListItem.BookOnDisk import org.kiwix.kiwixmobile.zim_manager.Fat32Checker.FileSystemState import org.kiwix.kiwixmobile.zim_manager.NetworkState.CONNECTED -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.MultiModeFinished -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestDeleteMultiSelection -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestMultiSelection -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestOpen -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestSelect -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestShareMultiSelection -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestShowInfo -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RestartActionMode +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.MultiModeFinished +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestDelete +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestDeleteMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestOpen +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestSelect +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestShare +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestShareMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestShowInfo +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RestartActionMode import org.kiwix.kiwixmobile.zim_manager.fileselect_view.FileSelectListState import org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects.DeleteFiles import org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects.None @@ -89,15 +91,17 @@ class ZimManageViewModel @Inject constructor( private val defaultLanguageProvider: DefaultLanguageProvider, private val dataSource: DataSource ) : ViewModel() { - sealed class FileSelectActions { - data class RequestOpen(val bookOnDisk: BookOnDisk) : FileSelectActions() - data class RequestShowInfo(val bookOnDisk: BookOnDisk) : FileSelectActions() - data class RequestSelect(val bookOnDisk: BookOnDisk) : FileSelectActions() - data class RequestMultiSelection(val bookOnDisk: BookOnDisk) : FileSelectActions() - object RequestDeleteMultiSelection : FileSelectActions() - object RequestShareMultiSelection : FileSelectActions() - object MultiModeFinished : FileSelectActions() - object RestartActionMode : FileSelectActions() + sealed class DeviceTabActions { + data class RequestOpen(val bookOnDisk: BookOnDisk) : DeviceTabActions() + data class RequestShare(val bookOnDisk: BookOnDisk) : DeviceTabActions() + data class RequestDelete(val bookOnDisk: BookOnDisk) : DeviceTabActions() + data class RequestShowInfo(val bookOnDisk: BookOnDisk) : DeviceTabActions() + data class RequestSelect(val bookOnDisk: BookOnDisk) : DeviceTabActions() + data class RequestMultiSelection(val bookOnDisk: BookOnDisk) : DeviceTabActions() + object RequestDeleteMultiSelection : DeviceTabActions() + object RequestShareMultiSelection : DeviceTabActions() + object MultiModeFinished : DeviceTabActions() + object RestartActionMode : DeviceTabActions() } val sideEffects = PublishProcessor.create>() @@ -109,7 +113,7 @@ class ZimManageViewModel @Inject constructor( val networkStates = MutableLiveData() val requestFileSystemCheck = PublishProcessor.create() - val fileSelectActions = PublishProcessor.create() + val deviceTabActions = PublishProcessor.create() val requestDownloadLibrary = BehaviorProcessor.createDefault(Unit) val requestFiltering = BehaviorProcessor.createDefault("") val currentPage = PublishProcessor.create() @@ -150,7 +154,7 @@ class ZimManageViewModel @Inject constructor( ) } - private fun fileSelectActions() = fileSelectActions.subscribe({ + private fun fileSelectActions() = deviceTabActions.subscribe({ sideEffects.offer( when (it) { is RequestOpen -> OpenFile(it.bookOnDisk) @@ -159,11 +163,19 @@ class ZimManageViewModel @Inject constructor( RequestShareMultiSelection -> ShareFiles(selectionsFromState()) MultiModeFinished -> noSideEffectAndClearSelectionState() is RequestSelect -> noSideEffectSelectBook(it.bookOnDisk) - RestartActionMode -> StartMultiSelection(fileSelectActions) + RestartActionMode -> StartMultiSelection(deviceTabActions) is RequestShowInfo -> { selectedInfoItem.postValue(it.bookOnDisk) ShowInfo() } + is RequestShare -> { + selectedInfoItem.postValue(null) + ShareFiles(listOf(it.bookOnDisk)) + } + is RequestDelete -> { + selectedInfoItem.postValue(null) + DeleteFiles(listOf(it.bookOnDisk)) + } } ) }, Throwable::printStackTrace) @@ -179,7 +191,7 @@ class ZimManageViewModel @Inject constructor( ) ) } - return StartMultiSelection(fileSelectActions) + return StartMultiSelection(deviceTabActions) } private fun selectBook( diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/BookInfoBottomSheetDialog.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/BookInfoBottomSheetDialog.kt index 5d09827c9..8133ff5ad 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/BookInfoBottomSheetDialog.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/BookInfoBottomSheetDialog.kt @@ -24,6 +24,7 @@ import android.view.View import android.view.ViewGroup import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider +import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialogFragment import kotlinx.android.synthetic.main.sheet_book_info.detail_article_count import kotlinx.android.synthetic.main.sheet_book_info.detail_creator @@ -36,8 +37,11 @@ import kotlinx.android.synthetic.main.sheet_book_info.detail_publisher import kotlinx.android.synthetic.main.sheet_book_info.detail_size import kotlinx.android.synthetic.main.sheet_book_info.detail_tags import kotlinx.android.synthetic.main.sheet_book_info.detail_url +import kotlinx.android.synthetic.main.sheet_book_info.info_sheet_delete import kotlinx.android.synthetic.main.sheet_book_info.info_sheet_description import kotlinx.android.synthetic.main.sheet_book_info.info_sheet_favicon +import kotlinx.android.synthetic.main.sheet_book_info.info_sheet_open +import kotlinx.android.synthetic.main.sheet_book_info.info_sheet_share import kotlinx.android.synthetic.main.sheet_book_info.info_sheet_title import org.kiwix.kiwixmobile.R import org.kiwix.kiwixmobile.core.downloader.model.Base64String @@ -47,6 +51,9 @@ import org.kiwix.kiwixmobile.core.extensions.setBitmap import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDiskListItem.BookOnDisk import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestDelete +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestOpen +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestShare import javax.inject.Inject class BookInfoBottomSheetDialog : BottomSheetDialogFragment() { @@ -60,7 +67,9 @@ class BookInfoBottomSheetDialog : BottomSheetDialogFragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View = inflater.inflate(R.layout.sheet_book_info, container, false) + ): View = inflater.inflate(R.layout.sheet_book_info, container, false).also { + (dialog as BottomSheetDialog).dismissWithAnimation = true + } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -72,7 +81,16 @@ class BookInfoBottomSheetDialog : BottomSheetDialogFragment() { bookOnDisk?.let { render(it.book) detail_file.setDetail(it.file.absolutePath) - } + info_sheet_open.setOnClickListener { + zimManageViewModel.deviceTabActions.offer(RequestOpen(bookOnDisk)) + } + info_sheet_share.setOnClickListener { + zimManageViewModel.deviceTabActions.offer(RequestShare(bookOnDisk)) + } + info_sheet_delete.setOnClickListener { + zimManageViewModel.deviceTabActions.offer(RequestDelete(bookOnDisk)) + } + } ?: dismiss() } private fun render(book: Book) { diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/ZimFileSelectFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/ZimFileSelectFragment.kt index 7f2565d8d..869d72711 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/ZimFileSelectFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/ZimFileSelectFragment.kt @@ -40,19 +40,19 @@ import org.kiwix.kiwixmobile.core.base.BaseActivity import org.kiwix.kiwixmobile.core.base.BaseFragment import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.viewModel import org.kiwix.kiwixmobile.core.extensions.toast -import org.kiwix.kiwixmobile.core.utils.REQUEST_STORAGE_PERMISSION import org.kiwix.kiwixmobile.core.utils.LanguageUtils +import org.kiwix.kiwixmobile.core.utils.REQUEST_STORAGE_PERMISSION import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BookOnDiskDelegate.BookDelegate import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BookOnDiskDelegate.LanguageDelegate import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDiskAdapter import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestMultiSelection -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestOpen -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestSelect -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestShowInfo +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestOpen +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestSelect +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestShowInfo import javax.inject.Inject private const val WAS_IN_ACTION_MODE = "WAS_IN_ACTION_MODE" @@ -111,7 +111,7 @@ class ZimFileSelectFragment : BaseFragment() { zim_swiperefresh.isRefreshing = it!! }) if (savedInstanceState != null && savedInstanceState.getBoolean(WAS_IN_ACTION_MODE)) { - zimManageViewModel.fileSelectActions.offer(FileSelectActions.RestartActionMode) + zimManageViewModel.deviceTabActions.offer(DeviceTabActions.RestartActionMode) } disposable.add(zimManageViewModel.libraryTabIsVisible.subscribe { finishActionMode() }) @@ -154,9 +154,9 @@ class ZimFileSelectFragment : BaseFragment() { } private fun offerAction( - action: FileSelectActions + action: DeviceTabActions ) { - zimManageViewModel.fileSelectActions.offer(action) + zimManageViewModel.deviceTabActions.offer(action) } private fun checkPermissions() { diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/StartMultiSelection.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/StartMultiSelection.kt index c3110216a..79c35d15b 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/StartMultiSelection.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/StartMultiSelection.kt @@ -24,20 +24,20 @@ import io.reactivex.processors.PublishProcessor import org.kiwix.kiwixmobile.R import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.startActionMode -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.MultiModeFinished -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestDeleteMultiSelection -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestShareMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.MultiModeFinished +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestDeleteMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestShareMultiSelection data class StartMultiSelection( - val fileSelectActions: PublishProcessor + val deviceTabActions: PublishProcessor ) : SideEffect { override fun invokeWith(activity: AppCompatActivity): ActionMode? = activity.startActionMode( R.menu.menu_zim_files_contextual, mapOf( - R.id.zim_file_delete_item to { fileSelectActions.offer(RequestDeleteMultiSelection) }, - R.id.zim_file_share_item to { fileSelectActions.offer(RequestShareMultiSelection) } + R.id.zim_file_delete_item to { deviceTabActions.offer(RequestDeleteMultiSelection) }, + R.id.zim_file_share_item to { deviceTabActions.offer(RequestShareMultiSelection) } ) - ) { fileSelectActions.offer(MultiModeFinished) } + ) { deviceTabActions.offer(MultiModeFinished) } } diff --git a/app/src/main/res/drawable-night/ic_delete_24dp.xml b/app/src/main/res/drawable-night/ic_delete_24dp.xml new file mode 100644 index 000000000..c6b8b4ac4 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_delete_24dp.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable-night/ic_open_24dp.xml b/app/src/main/res/drawable-night/ic_open_24dp.xml new file mode 100644 index 000000000..7c3ecc6dc --- /dev/null +++ b/app/src/main/res/drawable-night/ic_open_24dp.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable-night/ic_share_24dp.xml b/app/src/main/res/drawable-night/ic_share_24dp.xml new file mode 100644 index 000000000..7c477fdc7 --- /dev/null +++ b/app/src/main/res/drawable-night/ic_share_24dp.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_delete_24dp.xml b/app/src/main/res/drawable/ic_delete_24dp.xml new file mode 100644 index 000000000..4a54361ec --- /dev/null +++ b/app/src/main/res/drawable/ic_delete_24dp.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_open_24dp.xml b/app/src/main/res/drawable/ic_open_24dp.xml new file mode 100644 index 000000000..7ef8df0e2 --- /dev/null +++ b/app/src/main/res/drawable/ic_open_24dp.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_share_24dp.xml b/app/src/main/res/drawable/ic_share_24dp.xml new file mode 100644 index 000000000..b43539228 --- /dev/null +++ b/app/src/main/res/drawable/ic_share_24dp.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/layout/detail_chip.xml b/app/src/main/res/layout/detail_chip.xml index d9bcfb8bc..c79d37a94 100644 --- a/app/src/main/res/layout/detail_chip.xml +++ b/app/src/main/res/layout/detail_chip.xml @@ -12,5 +12,6 @@ android:id="@+id/detail" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textAppearance="?textAppearanceBody2" /> + android:textAppearance="?textAppearanceBody2" + android:textIsSelectable="true" /> diff --git a/app/src/main/res/layout/sheet_book_info.xml b/app/src/main/res/layout/sheet_book_info.xml index 8dd158494..c3f80a717 100644 --- a/app/src/main/res/layout/sheet_book_info.xml +++ b/app/src/main/res/layout/sheet_book_info.xml @@ -2,9 +2,9 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:orientation="vertical" - android:padding="@dimen/activity_horizontal_margin"> + android:paddingTop="@dimen/activity_horizontal_margin"> - + + app:layout_constraintTop_toBottomOf="@id/info_sheet_description"> - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 3860dc96a..0a8ad9046 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -28,4 +28,15 @@ parent parent + + diff --git a/app/src/test/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModelTest.kt b/app/src/test/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModelTest.kt index 5e97402ae..b9dc2ff50 100644 --- a/app/src/test/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModelTest.kt +++ b/app/src/test/java/org/kiwix/kiwixmobile/zim_manager/ZimManageViewModelTest.kt @@ -53,13 +53,13 @@ import org.kiwix.kiwixmobile.zim_manager.Fat32Checker.FileSystemState.CanWrite4G import org.kiwix.kiwixmobile.zim_manager.Fat32Checker.FileSystemState.CannotWrite4GbFile import org.kiwix.kiwixmobile.zim_manager.NetworkState.CONNECTED import org.kiwix.kiwixmobile.zim_manager.NetworkState.NOT_CONNECTED -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.MultiModeFinished -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestDeleteMultiSelection -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestMultiSelection -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestOpen -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestSelect -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RequestShareMultiSelection -import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.FileSelectActions.RestartActionMode +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.MultiModeFinished +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestDeleteMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestOpen +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestSelect +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RequestShareMultiSelection +import org.kiwix.kiwixmobile.zim_manager.ZimManageViewModel.DeviceTabActions.RestartActionMode import org.kiwix.kiwixmobile.zim_manager.fileselect_view.FileSelectListState import org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects.DeleteFiles import org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects.None @@ -424,7 +424,7 @@ class ZimManageViewModelTest { fun `RequestOpen offers OpenFile`() { val bookOnDisk = bookOnDisk() viewModel.sideEffects.test() - .also { viewModel.fileSelectActions.offer(RequestOpen(bookOnDisk)) } + .also { viewModel.deviceTabActions.offer(RequestOpen(bookOnDisk)) } .assertValues(OpenFile(bookOnDisk)) } @@ -440,8 +440,8 @@ class ZimManageViewModelTest { NORMAL ) viewModel.sideEffects.test() - .also { viewModel.fileSelectActions.offer(RequestMultiSelection(bookToSelect)) } - .assertValues(StartMultiSelection(viewModel.fileSelectActions)) + .also { viewModel.deviceTabActions.offer(RequestMultiSelection(bookToSelect)) } + .assertValues(StartMultiSelection(viewModel.deviceTabActions)) viewModel.fileSelectListStates.test() .assertValue( FileSelectListState( @@ -457,7 +457,7 @@ class ZimManageViewModelTest { viewModel.fileSelectListStates.value = FileSelectListState(listOf(selectedBook, bookOnDisk()), NORMAL) viewModel.sideEffects.test() - .also { viewModel.fileSelectActions.offer(RequestDeleteMultiSelection) } + .also { viewModel.deviceTabActions.offer(RequestDeleteMultiSelection) } .assertValues(DeleteFiles(listOf(selectedBook))) } @@ -467,7 +467,7 @@ class ZimManageViewModelTest { viewModel.fileSelectListStates.value = FileSelectListState(listOf(selectedBook, bookOnDisk()), NORMAL) viewModel.sideEffects.test() - .also { viewModel.fileSelectActions.offer(RequestShareMultiSelection) } + .also { viewModel.deviceTabActions.offer(RequestShareMultiSelection) } .assertValues(ShareFiles(listOf(selectedBook))) } @@ -477,7 +477,7 @@ class ZimManageViewModelTest { viewModel.fileSelectListStates.value = FileSelectListState(listOf(selectedBook, bookOnDisk()), NORMAL) viewModel.sideEffects.test() - .also { viewModel.fileSelectActions.offer(MultiModeFinished) } + .also { viewModel.deviceTabActions.offer(MultiModeFinished) } .assertValues(None) viewModel.fileSelectListStates.test().assertValue( FileSelectListState( @@ -495,7 +495,7 @@ class ZimManageViewModelTest { viewModel.fileSelectListStates.value = FileSelectListState(listOf(selectedBook, bookOnDisk(1L)), NORMAL) viewModel.sideEffects.test() - .also { viewModel.fileSelectActions.offer(RequestSelect(selectedBook)) } + .also { viewModel.deviceTabActions.offer(RequestSelect(selectedBook)) } .assertValues(None) viewModel.fileSelectListStates.test().assertValue( FileSelectListState( @@ -510,8 +510,8 @@ class ZimManageViewModelTest { @Test fun `RestartActionMode offers StartMultiSelection`() { viewModel.sideEffects.test() - .also { viewModel.fileSelectActions.offer(RestartActionMode) } - .assertValues(StartMultiSelection(viewModel.fileSelectActions)) + .also { viewModel.deviceTabActions.offer(RestartActionMode) } + .assertValues(StartMultiSelection(viewModel.deviceTabActions)) } } diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 2f75ac725..ce34bb1b9 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -91,7 +91,7 @@ object Versions { const val kiwixlib: String = "9.1.2" - const val material: String = "1.1.0-beta02" // available: "1.1.0" + const val material: String = "1.1.0" const val multidex: String = "2.0.1"