diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/Action.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/Action.kt index 313a1b05e..48b6a82b1 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/Action.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/Action.kt @@ -24,5 +24,4 @@ sealed class Action { data class DatabaseEmission(val downloads: List) : Action() object ClickedDownload : Action() object ClickedRetry : Action() - object PressedBack : Action() } diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadFragment.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadFragment.kt index ba9745478..d5687cf99 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadFragment.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadFragment.kt @@ -22,10 +22,8 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider -import androidx.navigation.fragment.findNavController import io.reactivex.disposables.CompositeDisposable import kotlinx.android.synthetic.main.fragment_custom_download.cd_view_animator import kotlinx.android.synthetic.main.layout_custom_download_error.cd_error_text @@ -45,15 +43,12 @@ import org.kiwix.kiwixmobile.custom.R import org.kiwix.kiwixmobile.custom.customActivityComponent import org.kiwix.kiwixmobile.custom.download.Action.ClickedDownload import org.kiwix.kiwixmobile.custom.download.Action.ClickedRetry -import org.kiwix.kiwixmobile.custom.download.Action.PressedBack import org.kiwix.kiwixmobile.custom.download.State.DownloadComplete import org.kiwix.kiwixmobile.custom.download.State.DownloadFailed import org.kiwix.kiwixmobile.custom.download.State.DownloadInProgress import org.kiwix.kiwixmobile.custom.download.State.DownloadRequired import javax.inject.Inject -var pressBackCallback = 0 - class CustomDownloadFragment : BaseFragment(), FragmentActivityExtensions { private val downloadViewModel by lazy { @@ -96,14 +91,6 @@ class CustomDownloadFragment : BaseFragment(), FragmentActivityExtensions { compositeDisposable.clear() } - override fun onBackPressed(activity: AppCompatActivity): FragmentActivityExtensions.Super { - pressBackCallback = 1 - downloadViewModel.actions.offer(PressedBack) - // findNavController().popBackStack() - // findNavController().navigate(R.id.customReaderFragment) - return super.onBackPressed(activity) - } - private fun render(state: State) { return when (state) { DownloadRequired -> cd_view_animator.setDistinctDisplayedChild(0) diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadViewModel.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadViewModel.kt index 7541bb69b..ee262fe92 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadViewModel.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/CustomDownloadViewModel.kt @@ -29,7 +29,6 @@ import org.kiwix.kiwixmobile.core.downloader.model.DownloadState.Failed import org.kiwix.kiwixmobile.custom.download.Action.ClickedDownload import org.kiwix.kiwixmobile.custom.download.Action.ClickedRetry import org.kiwix.kiwixmobile.custom.download.Action.DatabaseEmission -import org.kiwix.kiwixmobile.custom.download.Action.PressedBack import org.kiwix.kiwixmobile.custom.download.State.DownloadComplete import org.kiwix.kiwixmobile.custom.download.State.DownloadFailed import org.kiwix.kiwixmobile.custom.download.State.DownloadInProgress @@ -77,7 +76,7 @@ class CustomDownloadViewModel @Inject constructor( is DatabaseEmission -> reduceDatabaseEmission(state, action) ClickedRetry, ClickedDownload -> state.also { _effects.offer(downloadCustom) } - is PressedBack -> state.also { _effects.offer(finishAndStartMain) } + // is PressedBack -> state.also { _effects.offer(finishAndStartMain) } } } diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/effects/FinishAndStartMain.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/effects/FinishAndStartMain.kt index 5b9853669..719ac8094 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/effects/FinishAndStartMain.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/download/effects/FinishAndStartMain.kt @@ -19,23 +19,14 @@ package org.kiwix.kiwixmobile.custom.download.effects import androidx.appcompat.app.AppCompatActivity -import androidx.navigation.findNavController import org.kiwix.kiwixmobile.core.base.SideEffect import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.start -import org.kiwix.kiwixmobile.custom.R -import org.kiwix.kiwixmobile.custom.download.pressBackCallback import org.kiwix.kiwixmobile.custom.main.CustomMainActivity import javax.inject.Inject class FinishAndStartMain @Inject constructor() : SideEffect { override fun invokeWith(activity: AppCompatActivity) { - if (pressBackCallback == 1) { - activity.findNavController(R.id.customDownloadFragment) - .navigate(R.id.action_customDownload_to_customReader) - activity.onBackPressed() - } else { - activity.finish() - activity.start() - } + activity.finish() + activity.start() } } diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt index 71b47b22e..00e420769 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt @@ -54,7 +54,7 @@ import org.kiwix.kiwixmobile.core.utils.urlSuffixToParsableUrl import org.kiwix.kiwixmobile.custom.BuildConfig import org.kiwix.kiwixmobile.custom.R import org.kiwix.kiwixmobile.custom.customActivityComponent -import org.kiwix.kiwixmobile.custom.download.pressBackCallback +import org.kiwix.kiwixmobile.custom.main.CustomReaderFragmentDirections.actionCustomReaderToCustomDownload import java.util.Locale import javax.inject.Inject @@ -154,12 +154,8 @@ class CustomReaderFragment : CoreReaderFragment() { ) == PERMISSION_DENIED ) { requestPermissions(arrayOf(READ_EXTERNAL_STORAGE), REQUEST_READ_FOR_OBB) - } - if (pressBackCallback == 1) { - findNavController().navigateUp() - } - else { - findNavController().navigate(R.id.customDownloadFragment) + } else { + findNavController().navigate(actionCustomReaderToCustomDownload()) } } ) diff --git a/custom/src/main/res/navigation/custom_nav_graph.xml b/custom/src/main/res/navigation/custom_nav_graph.xml index a07f757e8..072734511 100644 --- a/custom/src/main/res/navigation/custom_nav_graph.xml +++ b/custom/src/main/res/navigation/custom_nav_graph.xml @@ -24,6 +24,12 @@ android:id="@+id/customReaderFragment" android:name="org.kiwix.kiwixmobile.custom.main.CustomReaderFragment" android:label="CustomReaderFragment"> + + + app:popUpToInclusive="true" />