mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-09 15:27:55 -04:00
#2235 history fragment works fully in App module, not Custom
This commit is contained in:
parent
8f0b20717e
commit
0517b77e4e
@ -18,6 +18,7 @@
|
||||
|
||||
package org.kiwix.kiwixmobile
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.annotation.IdRes
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.navigation.NavDirections
|
||||
@ -41,6 +42,9 @@ fun AppCompatActivity.navigate(action: NavDirections) =
|
||||
fun AppCompatActivity.navigate(@IdRes fragmentId: Int) =
|
||||
findNavController(R.id.nav_host_fragment).navigate(fragmentId)
|
||||
|
||||
fun AppCompatActivity.navigate(@IdRes fragmentId: Int, bundle: Bundle) =
|
||||
findNavController(R.id.nav_host_fragment).navigate(fragmentId, bundle)
|
||||
|
||||
internal inline val BaseActivity.kiwixActivityComponent
|
||||
get() = kiwixComponent
|
||||
.activityComponentBuilder()
|
||||
|
@ -24,6 +24,7 @@ import android.view.MenuItem
|
||||
import androidx.appcompat.app.ActionBarDrawerToggle
|
||||
import androidx.appcompat.view.ActionMode
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.ui.AppBarConfiguration
|
||||
@ -158,8 +159,8 @@ class KiwixMainActivity : CoreMainActivity() {
|
||||
closeNavigationDrawer()
|
||||
}
|
||||
|
||||
override fun openPage(pageUrl: String, zimFilePath: String?) {
|
||||
navigate(R.id.navigation_reader)
|
||||
// openZimFile(file)
|
||||
override fun openPage(pageUrl: String, zimFilePath: String) {
|
||||
val bundle = bundleOf("pageUrl" to pageUrl, "zimFileUri" to zimFilePath)
|
||||
navigate(R.id.navigation_reader, bundle)
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ import android.view.View
|
||||
import android.view.View.GONE
|
||||
import android.view.View.VISIBLE
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.net.toFile
|
||||
import androidx.drawerlayout.widget.DrawerLayout
|
||||
@ -74,7 +75,17 @@ class ReaderFragment : CoreReaderFragment() {
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
manageExternalLaunchAndRestoringViewState(args.zimFileUri)
|
||||
if (arguments != null) {
|
||||
val args = ReaderFragmentArgs.fromBundle(requireArguments())
|
||||
if (args.pageUrl.isNotEmpty()) {
|
||||
if (args.zimFileUri.isNotEmpty()) {
|
||||
tryOpeningZimFile(args)
|
||||
}
|
||||
loadUrlWithCurrentWebview(args.pageUrl)
|
||||
} else {
|
||||
manageExternalLaunchAndRestoringViewState(args.zimFileUri)
|
||||
}
|
||||
}
|
||||
val activity = activity as CoreMainActivity
|
||||
noOpenBookButton.setOnClickListener {
|
||||
activity.navigate(
|
||||
@ -86,6 +97,16 @@ class ReaderFragment : CoreReaderFragment() {
|
||||
setFragmentContainerBottomMarginToSizeOfNavBar()
|
||||
}
|
||||
|
||||
private fun tryOpeningZimFile(args: ReaderFragmentArgs) {
|
||||
val file = File(args.zimFileUri)
|
||||
if (!file.exists()) {
|
||||
Toast.makeText(activity, R.string.error_file_not_found, Toast.LENGTH_LONG)
|
||||
.show()
|
||||
return
|
||||
}
|
||||
openZimFile(file)
|
||||
}
|
||||
|
||||
override fun loadDrawerViews() {
|
||||
drawerLayout = requireActivity().findViewById(R.id.navigation_container)
|
||||
tableDrawerRightContainer = requireActivity().findViewById(R.id.reader_drawer_nav_view)
|
||||
|
@ -27,6 +27,11 @@
|
||||
android:name="zimFileUri"
|
||||
android:defaultValue=""
|
||||
app:argType="string" />
|
||||
|
||||
<argument
|
||||
android:name="pageUrl"
|
||||
android:defaultValue=""
|
||||
app:argType="string" />
|
||||
<action
|
||||
android:id="@+id/action_navigation_reader_to_navigation_library"
|
||||
app:destination="@id/navigation_library" />
|
||||
|
@ -125,5 +125,5 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider,
|
||||
abstract fun openSettingsActivity()
|
||||
abstract fun openHistoryActivity()
|
||||
abstract fun openBookmarksActivity()
|
||||
abstract fun openPage(pageUrl: String, zimFilePath: String? = null)
|
||||
abstract fun openPage(pageUrl: String, zimFilePath: String = "")
|
||||
}
|
||||
|
@ -789,7 +789,7 @@ public abstract class CoreReaderFragment extends BaseFragment
|
||||
loadUrlWithCurrentWebview("javascript:(" + documentParserJs + ")()");
|
||||
}
|
||||
|
||||
private void loadUrlWithCurrentWebview(String url) {
|
||||
protected void loadUrlWithCurrentWebview(String url) {
|
||||
loadUrl(url, getCurrentWebView());
|
||||
}
|
||||
|
||||
|
@ -18,31 +18,19 @@
|
||||
|
||||
package org.kiwix.kiwixmobile.core.page.viewmodel.effects
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import org.kiwix.kiwixmobile.core.base.SideEffect
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.page.adapter.Page
|
||||
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer
|
||||
import org.kiwix.kiwixmobile.core.utils.EXTRA_CHOSE_X_FILE
|
||||
import org.kiwix.kiwixmobile.core.utils.EXTRA_CHOSE_X_URL
|
||||
|
||||
data class OpenPage(
|
||||
private val page: Page,
|
||||
private val zimReaderContainer: ZimReaderContainer
|
||||
) : SideEffect<Unit> {
|
||||
override fun invokeWith(activity: AppCompatActivity) {
|
||||
activity.setResult(
|
||||
Activity.RESULT_OK,
|
||||
Intent().putExtra(EXTRA_CHOSE_X_URL, page.url).apply {
|
||||
if (page.zimFilePath != zimReaderContainer.zimCanonicalPath) {
|
||||
putExtra(EXTRA_CHOSE_X_FILE, page.zimFilePath)
|
||||
}
|
||||
}
|
||||
)
|
||||
if (page.zimFilePath != zimReaderContainer.zimCanonicalPath) {
|
||||
(activity as CoreMainActivity).openPage(page.url, page.zimFilePath)
|
||||
(activity as CoreMainActivity).openPage(page.url, page.zimFilePath!!)
|
||||
} else {
|
||||
(activity as CoreMainActivity).openPage(page.url)
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ class CustomMainActivity : CoreMainActivity() {
|
||||
//
|
||||
}
|
||||
|
||||
override fun openPage(pageUrl: String, zimFilePath: String?) {
|
||||
override fun openPage(pageUrl: String, zimFilePath: String) {
|
||||
//
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user