diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt index 40f31954b..825f9f56f 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt @@ -43,7 +43,6 @@ import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.base.BaseFragment import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions import org.kiwix.kiwixmobile.core.databinding.FragmentPageBinding -import org.kiwix.kiwixmobile.core.downloader.downloadManager.FIVE import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.isCustomApp import org.kiwix.kiwixmobile.core.extensions.closeKeyboard import org.kiwix.kiwixmobile.core.extensions.setToolTipWithContentDescription @@ -196,31 +195,14 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv pageAdapter.items = state.visiblePageItems fragmentPageBinding?.pageSwitch?.isEnabled = !state.isInSelectionState fragmentPageBinding?.noPage?.visibility = if (state.pageItems.isEmpty()) VISIBLE else GONE - when { - state.isInSelectionState -> { - if (actionMode == null) { - actionMode = - (requireActivity() as AppCompatActivity).startSupportActionMode(actionModeCallback) - } - actionMode?.title = getString(R.string.selected_items, state.numberOfSelectedItems()) - } - - state.isLoading -> { - fragmentPageBinding?.loadingZimfileContent?.apply { - if (state.isLoading) { - progress = FIVE - visibility = View.VISIBLE - show() - } else { - visibility = View.GONE - hide() - } - } - } - - else -> { - actionMode?.finish() + if (state.isInSelectionState) { + if (actionMode == null) { + actionMode = + (requireActivity() as AppCompatActivity).startSupportActionMode(actionModeCallback) } + actionMode?.title = getString(R.string.selected_items, state.numberOfSelectedItems()) + } else { + actionMode?.finish() } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkState.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkState.kt index 09ed19616..aea012598 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkState.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkState.kt @@ -26,8 +26,7 @@ data class BookmarkState( override val pageItems: List, override val showAll: Boolean, override val currentZimId: String?, - override val searchTerm: String = "", - override val isLoading: Boolean + override val searchTerm: String = "" ) : PageState() { override val visiblePageItems: List = filteredPageItems diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkViewModel.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkViewModel.kt index cee6592fa..f491ddc78 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkViewModel.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkViewModel.kt @@ -40,15 +40,7 @@ class BookmarkViewModel @Inject constructor( ) { override fun initialState(): BookmarkState = - BookmarkState( - emptyList(), - sharedPreferenceUtil.showBookmarksAllBooks, - zimReaderContainer.id, - isLoading = false - ) - - override fun loadData(state: BookmarkState, action: Action.LoadingData): BookmarkState = - state.copy(isLoading = action.isLoading) + BookmarkState(emptyList(), sharedPreferenceUtil.showBookmarksAllBooks, zimReaderContainer.id) override fun updatePagesBasedOnFilter( state: BookmarkState, diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/HistoryState.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/HistoryState.kt index fa925723b..10ea0b37a 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/HistoryState.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/HistoryState.kt @@ -28,8 +28,7 @@ data class HistoryState( override val pageItems: List, override val showAll: Boolean, override val currentZimId: String?, - override val searchTerm: String = "", - override val isLoading: Boolean + override val searchTerm: String = "" ) : PageState() { override val visiblePageItems: List = HeaderizableList(filteredPageItems) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/HistoryViewModel.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/HistoryViewModel.kt index 04892bb17..5a9493cdd 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/HistoryViewModel.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/HistoryViewModel.kt @@ -36,15 +36,7 @@ class HistoryViewModel @Inject constructor( ) : PageViewModel(historyRoomDao, sharedPrefs, zimReaderContainer) { override fun initialState(): HistoryState = - HistoryState( - emptyList(), - sharedPreferenceUtil.showHistoryAllBooks, - zimReaderContainer.id, - isLoading = false - ) - - override fun loadData(state: HistoryState, action: Action.LoadingData): HistoryState = - state.copy(isLoading = action.isLoading) + HistoryState(emptyList(), sharedPreferenceUtil.showHistoryAllBooks, zimReaderContainer.id) override fun updatePagesBasedOnFilter( state: HistoryState, diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/NotesState.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/NotesState.kt index 286e35ca4..948926b77 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/NotesState.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/NotesState.kt @@ -26,8 +26,7 @@ data class NotesState( override val pageItems: List, override val showAll: Boolean, override val currentZimId: String?, - override val searchTerm: String = "", - override val isLoading: Boolean, + override val searchTerm: String = "" ) : PageState() { override val visiblePageItems: List = filteredPageItems diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/NotesViewModel.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/NotesViewModel.kt index a639b8b84..11c47ecbf 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/NotesViewModel.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/NotesViewModel.kt @@ -44,15 +44,7 @@ class NotesViewModel @Inject constructor( } override fun initialState(): NotesState = - NotesState( - emptyList(), - sharedPreferenceUtil.showNotesAllBooks, - zimReaderContainer.id, - isLoading = false - ) - - override fun loadData(state: NotesState, action: Action.LoadingData): NotesState = - state.copy(isLoading = action.isLoading) + NotesState(emptyList(), sharedPreferenceUtil.showNotesAllBooks, zimReaderContainer.id) override fun updatePagesBasedOnFilter(state: NotesState, action: Action.Filter): NotesState = state.copy(searchTerm = action.searchTerm) @@ -78,5 +70,5 @@ class NotesViewModel @Inject constructor( ShowDeleteNotesDialog(effects, state, pageDao, viewModelScope) override fun onItemClick(page: Page) = - ShowOpenNoteDialog(effects, actions, page, zimReaderContainer) + ShowOpenNoteDialog(effects, page, zimReaderContainer) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/effects/ShowOpenNoteDialog.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/effects/ShowOpenNoteDialog.kt index 1c255f57d..f662824b6 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/effects/ShowOpenNoteDialog.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/notes/viewmodel/effects/ShowOpenNoteDialog.kt @@ -24,7 +24,6 @@ import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.cachedComponent import org.kiwix.kiwixmobile.core.page.adapter.Page import org.kiwix.kiwixmobile.core.page.notes.adapter.NoteListItem -import org.kiwix.kiwixmobile.core.page.viewmodel.Action import org.kiwix.kiwixmobile.core.page.viewmodel.effects.OpenNote import org.kiwix.kiwixmobile.core.page.viewmodel.effects.OpenPage import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer @@ -34,7 +33,6 @@ import javax.inject.Inject data class ShowOpenNoteDialog( private val effects: PublishProcessor>, - private val actions: PublishProcessor, private val page: Page, private val zimReaderContainer: ZimReaderContainer ) : SideEffect { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/Action.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/Action.kt index 761933eff..428d02275 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/Action.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/Action.kt @@ -13,5 +13,4 @@ sealed class Action { data class UserClickedShowAllToggle(val isChecked: Boolean) : Action() data class Filter(val searchTerm: String) : Action() data class UpdatePages(val pages: List) : Action() - data class LoadingData(val isLoading: Boolean) : Action() } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageState.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageState.kt index 85a443538..05decb874 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageState.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageState.kt @@ -30,7 +30,6 @@ abstract class PageState { .filter { it.title.contains(searchTerm, true) } } - abstract val isLoading: Boolean abstract val visiblePageItems: List abstract val showAll: Boolean abstract val currentZimId: String? diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageViewModel.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageViewModel.kt index ad7a8b76a..25ce27bce 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageViewModel.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/viewmodel/PageViewModel.kt @@ -32,7 +32,6 @@ import org.kiwix.kiwixmobile.core.page.adapter.Page import org.kiwix.kiwixmobile.core.page.viewmodel.Action.Exit import org.kiwix.kiwixmobile.core.page.viewmodel.Action.ExitActionModeMenu import org.kiwix.kiwixmobile.core.page.viewmodel.Action.Filter -import org.kiwix.kiwixmobile.core.page.viewmodel.Action.LoadingData import org.kiwix.kiwixmobile.core.page.viewmodel.Action.OnItemClick import org.kiwix.kiwixmobile.core.page.viewmodel.Action.OnItemLongClick import org.kiwix.kiwixmobile.core.page.viewmodel.Action.UpdatePages @@ -89,11 +88,8 @@ abstract class PageViewModel>( is OnItemLongClick -> handleItemLongClick(state, action) is Filter -> updatePagesBasedOnFilter(state, action) is UpdatePages -> updatePages(state, action) - is LoadingData -> loadData(state, action) } - abstract fun loadData(state: S, action: LoadingData): S - abstract fun updatePagesBasedOnFilter(state: S, action: Filter): S abstract fun updatePages(state: S, action: UpdatePages): S diff --git a/core/src/main/res/layout/fragment_page.xml b/core/src/main/res/layout/fragment_page.xml index ce5a4fb50..d4e449bd2 100644 --- a/core/src/main/res/layout/fragment_page.xml +++ b/core/src/main/res/layout/fragment_page.xml @@ -37,18 +37,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/app_bar" /> - - = pageItems, override val showAll: Boolean = true, override val currentZimId: String? = "currentZimId", - override val searchTerm: String = "", - override val isLoading: Boolean = false + override val searchTerm: String = "" ) : PageState() { override fun copyWithNewItems(newItems: List): PageState = TestablePageState(pageItems = pageItems)