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 8fdffbcfb..63067c2f2 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 @@ -34,14 +34,11 @@ import androidx.compose.runtime.referentialEqualityPolicy import androidx.compose.ui.platform.ComposeView import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider -import androidx.recyclerview.widget.RecyclerView import io.reactivex.disposables.CompositeDisposable 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.ZERO -import org.kiwix.kiwixmobile.core.extensions.closeKeyboard import org.kiwix.kiwixmobile.core.main.CoreMainActivity import org.kiwix.kiwixmobile.core.page.adapter.OnItemClickListener import org.kiwix.kiwixmobile.core.page.adapter.Page @@ -54,7 +51,6 @@ import org.kiwix.kiwixmobile.core.ui.components.NavigationIcon import org.kiwix.kiwixmobile.core.ui.models.ActionMenuItem import org.kiwix.kiwixmobile.core.ui.models.IconItem import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil -import org.kiwix.kiwixmobile.core.utils.SimpleRecyclerViewScrollListener import javax.inject.Inject const val SEARCH_ICON_TESTING_TAG = "search" @@ -106,7 +102,6 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv clearSearchButtonClickListener = {} ) ) - private var fragmentPageBinding: FragmentPageBinding? = null private val actionModeCallback: ActionMode.Callback = object : ActionMode.Callback { @@ -150,14 +145,14 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv compositeDisposable.add(pageViewModel.effects.subscribe { it.invokeWith(activity) }) pageViewModel.state.observe(viewLifecycleOwner, Observer(::render)) - // hides keyboard when scrolled - fragmentPageBinding?.recyclerView?.addOnScrollListener( - SimpleRecyclerViewScrollListener { _, newState -> - if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { - fragmentPageBinding?.recyclerView?.closeKeyboard() - } - } - ) + // // hides keyboard when scrolled + // fragmentPageBinding?.recyclerView?.addOnScrollListener( + // SimpleRecyclerViewScrollListener { _, newState -> + // if (newState == RecyclerView.SCROLL_STATE_DRAGGING) { + // fragmentPageBinding?.recyclerView?.closeKeyboard() + // } + // } + // ) } override fun onCreateView( diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageScreen.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageScreen.kt index f98a4a613..2a96d9131 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageScreen.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageScreen.kt @@ -20,9 +20,12 @@ package org.kiwix.kiwixmobile.core.page import androidx.activity.compose.LocalActivity import androidx.compose.foundation.background +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn @@ -31,10 +34,12 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Switch +import androidx.compose.material3.SwitchDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.text.TextStyle import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.isCustomApp import org.kiwix.kiwixmobile.core.main.CoreMainActivity import org.kiwix.kiwixmobile.core.page.adapter.OnItemClickListener @@ -43,8 +48,13 @@ import org.kiwix.kiwixmobile.core.page.history.adapter.HistoryListItem.DateItem import org.kiwix.kiwixmobile.core.ui.components.KiwixAppBar import org.kiwix.kiwixmobile.core.ui.components.KiwixSearchView import org.kiwix.kiwixmobile.core.ui.models.ActionMenuItem +import org.kiwix.kiwixmobile.core.ui.theme.AlabasterWhite import org.kiwix.kiwixmobile.core.ui.theme.Black import org.kiwix.kiwixmobile.core.ui.theme.KiwixTheme +import org.kiwix.kiwixmobile.core.ui.theme.White +import org.kiwix.kiwixmobile.core.utils.ComposeDimens.FOURTEEN_SP +import org.kiwix.kiwixmobile.core.utils.ComposeDimens.PAGE_SWITCH_LEFT_RIGHT_MARGIN +import org.kiwix.kiwixmobile.core.utils.ComposeDimens.PAGE_SWITCH_ROW_BOTTOM_MARGIN import org.kiwix.kiwixmobile.core.utils.ComposeDimens.SIXTEEN_DP @Suppress("ComposableLambdaParameterNaming") @@ -71,7 +81,11 @@ fun PageScreen( } ) { padding -> val items = state.pageState.pageItems - Box(modifier = Modifier.padding(padding)) { + Box( + modifier = Modifier + .padding(padding) + .fillMaxSize() + ) { if (items.isEmpty()) { Text( text = state.noItemsString, @@ -114,20 +128,36 @@ private fun searchBarIfActive( fun PageSwitchRow( state: PageFragmentScreenState ) { + val switchTextColor = if (isSystemInDarkTheme()) { + AlabasterWhite + } else { + White + } val context = LocalActivity.current as CoreMainActivity // hide switches for custom apps, see more info here https://github.com/kiwix/kiwix-android/issues/3523 if (!context.isCustomApp()) { Row( modifier = Modifier .fillMaxWidth() - .background(Black), + .background(Black) + .padding(bottom = PAGE_SWITCH_ROW_BOTTOM_MARGIN), + horizontalArrangement = Arrangement.Absolute.Right, verticalAlignment = Alignment.CenterVertically ) { - Text(state.switchString) + Text( + state.switchString, + color = switchTextColor, + style = TextStyle(fontSize = FOURTEEN_SP) + ) Switch( checked = state.switchIsChecked, onCheckedChange = { state.onSwitchCheckedChanged(it) }, - enabled = state.switchIsEnabled + enabled = state.switchIsEnabled, + modifier = Modifier + .padding(horizontal = PAGE_SWITCH_LEFT_RIGHT_MARGIN), + colors = SwitchDefaults.colors( + uncheckedTrackColor = White + ) ) } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/ComposeDimens.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/ComposeDimens.kt index d48dc6106..cbd077805 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/ComposeDimens.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/ComposeDimens.kt @@ -109,4 +109,6 @@ object ComposeDimens { // Page dimens val PAGE_LIST_ITEM_FAVICON_SIZE = 40.dp + val PAGE_SWITCH_LEFT_RIGHT_MARGIN = 10.dp + val PAGE_SWITCH_ROW_BOTTOM_MARGIN = 8.dp } diff --git a/core/src/main/res/layout/fragment_page.xml b/core/src/main/res/layout/fragment_page.xml deleted file mode 100644 index 2fb96ca8a..000000000 --- a/core/src/main/res/layout/fragment_page.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - -