mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-11 08:27:50 -04:00
#2253 merge with history bookmarks 2238
This commit is contained in:
commit
c43f1d69be
@ -31,13 +31,11 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.kiwix.kiwixmobile.core.R;
|
||||
|
||||
import static androidx.test.espresso.Espresso.onView;
|
||||
import static androidx.test.espresso.action.ViewActions.click;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription;
|
||||
import static com.schibsted.spain.barista.interaction.BaristaClickInteractions.clickOn;
|
||||
import static org.kiwix.kiwixmobile.testutils.TestUtils.TEST_PAUSE_MS;
|
||||
import static org.kiwix.kiwixmobile.testutils.TestUtils.getResourceString;
|
||||
import static org.kiwix.kiwixmobile.utils.StandardActions.enterSettings;
|
||||
import static org.kiwix.kiwixmobile.utils.StandardActions.openDrawer;
|
||||
|
||||
@LargeTest
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
@ -64,10 +62,6 @@ public class MainActivityTest {
|
||||
clickOn(R.string.menu_help);
|
||||
}
|
||||
|
||||
private void openDrawer() {
|
||||
onView(withContentDescription(R.string.open_drawer)).perform(click());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void navigateSettings() {
|
||||
BaristaSleepInteractions.sleep(TEST_PAUSE_MS);
|
||||
|
@ -23,7 +23,10 @@ import com.schibsted.spain.barista.interaction.BaristaSleepInteractions;
|
||||
import org.kiwix.kiwixmobile.core.R;
|
||||
|
||||
import static androidx.test.espresso.Espresso.onData;
|
||||
import static androidx.test.espresso.Espresso.onView;
|
||||
import static androidx.test.espresso.action.ViewActions.click;
|
||||
import static androidx.test.espresso.action.ViewActions.longClick;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription;
|
||||
import static androidx.test.espresso.matcher.ViewMatchers.withId;
|
||||
import static com.schibsted.spain.barista.interaction.BaristaDialogInteractions.clickDialogPositiveButton;
|
||||
import static org.kiwix.kiwixmobile.testutils.TestUtils.TEST_PAUSE_MS;
|
||||
@ -41,6 +44,10 @@ public class StandardActions {
|
||||
BaristaMenuClickInteractions.clickMenu(getResourceString(R.string.menu_settings));
|
||||
}
|
||||
|
||||
public static void openDrawer() {
|
||||
onView(withContentDescription(R.string.open_drawer)).perform(click());
|
||||
}
|
||||
|
||||
public static void deleteZimIfExists(String zimName, Integer adapterId) {
|
||||
try {
|
||||
onData(withContent(zimName)).inAdapterView(withId(adapterId)).perform(longClick());
|
||||
|
@ -40,14 +40,13 @@ import org.kiwix.kiwixmobile.core.di.components.CoreComponent
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.intent
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.start
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.main.PAGE_URL_KEY
|
||||
import org.kiwix.kiwixmobile.core.main.ZIM_FILE_URI_KEY
|
||||
import org.kiwix.kiwixmobile.core.utils.REQUEST_PREFERENCES
|
||||
import org.kiwix.kiwixmobile.kiwixActivityComponent
|
||||
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity
|
||||
import org.kiwix.kiwixmobile.webserver.ZimHostActivity
|
||||
|
||||
const val PAGE_URL_KEY = "pageUrl"
|
||||
const val ZIM_FILE_URI_KEY = "zimFileUri"
|
||||
|
||||
class KiwixMainActivity : CoreMainActivity() {
|
||||
private var actionMode: ActionMode? = null
|
||||
|
||||
@ -100,11 +99,6 @@ class KiwixMainActivity : CoreMainActivity() {
|
||||
actionMode = mode
|
||||
}
|
||||
|
||||
override fun onSupportNavigateUp(): Boolean {
|
||||
return navController.navigateUp() ||
|
||||
super.onSupportNavigateUp()
|
||||
}
|
||||
|
||||
override fun onBackPressed() {
|
||||
if (readerDrawerIsOpen()) {
|
||||
closeReaderDrawer()
|
||||
|
@ -25,7 +25,6 @@ import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import kotlinx.android.synthetic.main.fragment_destination_library.go_to_downloads_button_no_files
|
||||
import org.kiwix.kiwixmobile.R
|
||||
@ -60,11 +59,6 @@ class LocalLibraryFragment : ZimFileSelectFragment() {
|
||||
(baseActivity as KiwixMainActivity).cachedComponent.inject(this)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
(activity as AppCompatActivity).setSupportActionBar(null)
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.menu_zim_manager, menu)
|
||||
val searchItem = menu.findItem(R.id.action_search)
|
||||
@ -88,7 +82,6 @@ class LocalLibraryFragment : ZimFileSelectFragment() {
|
||||
): View? {
|
||||
LanguageUtils(requireActivity())
|
||||
.changeFont(requireActivity().layoutInflater, sharedPreferenceUtil)
|
||||
setHasOptionsMenu(true)
|
||||
val root = inflater.inflate(R.layout.fragment_destination_library, container, false)
|
||||
val toolbar = root.findViewById<Toolbar>(R.id.toolbar)
|
||||
val activity = activity as CoreMainActivity
|
||||
@ -98,6 +91,7 @@ class LocalLibraryFragment : ZimFileSelectFragment() {
|
||||
setTitle(R.string.library)
|
||||
}
|
||||
activity.setupDrawerToggle(toolbar)
|
||||
setHasOptionsMenu(true)
|
||||
return root
|
||||
}
|
||||
|
||||
|
@ -57,11 +57,6 @@ class OnlineLibraryFragment : LibraryFragment(), FragmentActivityExtensions {
|
||||
zimManageViewModel.requestFiltering.onNext("")
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
(activity as AppCompatActivity).setSupportActionBar(null)
|
||||
}
|
||||
|
||||
override fun onBackPressed(activity: AppCompatActivity): FragmentActivityExtensions.Super {
|
||||
getActivity()?.finish()
|
||||
return FragmentActivityExtensions.Super.ShouldNotCall
|
||||
|
@ -42,6 +42,7 @@ import org.kiwix.kiwixmobile.core.base.BaseActivity
|
||||
import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super
|
||||
import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super.ShouldCall
|
||||
import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super.ShouldNotCall
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.setupDrawerToggle
|
||||
import org.kiwix.kiwixmobile.core.extensions.getAttribute
|
||||
import org.kiwix.kiwixmobile.core.extensions.setImageDrawableCompat
|
||||
import org.kiwix.kiwixmobile.core.extensions.snack
|
||||
@ -69,8 +70,8 @@ class KiwixReaderFragment : CoreReaderFragment() {
|
||||
(baseActivity as KiwixMainActivity).cachedComponent.inject(this)
|
||||
}
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val activity = activity as CoreMainActivity
|
||||
noOpenBookButton.setOnClickListener {
|
||||
@ -135,7 +136,7 @@ class KiwixReaderFragment : CoreReaderFragment() {
|
||||
override fun hideTabSwitcher() {
|
||||
if (actionBar != null) {
|
||||
actionBar.setDisplayShowTitleEnabled(true)
|
||||
(activity as CoreMainActivity).setupDrawerToggle(toolbar)
|
||||
activity?.setupDrawerToggle(toolbar)
|
||||
|
||||
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
|
||||
|
||||
@ -258,11 +259,6 @@ class KiwixReaderFragment : CoreReaderFragment() {
|
||||
)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
(activity as AppCompatActivity).setSupportActionBar(null)
|
||||
}
|
||||
|
||||
override fun openFullScreen() {
|
||||
super.openFullScreen()
|
||||
requireActivity().bottom_nav_view.visibility = GONE
|
||||
|
@ -20,12 +20,11 @@ package org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import org.kiwix.kiwixmobile.core.base.SideEffect
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.navigate
|
||||
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections
|
||||
|
||||
object NavigateToDownloads : SideEffect<Unit> {
|
||||
override fun invokeWith(activity: AppCompatActivity) {
|
||||
(activity as CoreMainActivity)
|
||||
.navigate(LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationDownloads())
|
||||
activity.navigate(LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationDownloads())
|
||||
}
|
||||
}
|
||||
|
@ -22,8 +22,8 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.net.toUri
|
||||
import org.kiwix.kiwixmobile.R
|
||||
import org.kiwix.kiwixmobile.core.base.SideEffect
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.navigate
|
||||
import org.kiwix.kiwixmobile.core.extensions.toast
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BooksOnDiskListItem
|
||||
import org.kiwix.kiwixmobile.nav.destination.library.LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationReader
|
||||
|
||||
@ -35,7 +35,7 @@ data class OpenFileWithNavigation(private val bookOnDisk: BooksOnDiskListItem.Bo
|
||||
if (!file.canRead()) {
|
||||
activity.toast(R.string.error_file_not_found)
|
||||
} else {
|
||||
(activity as CoreMainActivity).navigate(
|
||||
activity.navigate(
|
||||
actionNavigationLibraryToNavigationReader().apply { zimFileUri = file.toUri().toString() }
|
||||
)
|
||||
}
|
||||
|
@ -20,15 +20,20 @@ package org.kiwix.kiwixmobile.core.extensions
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.view.ActionMode
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import androidx.navigation.NavDirections
|
||||
import org.kiwix.kiwixmobile.core.CoreApp
|
||||
import org.kiwix.kiwixmobile.core.di.components.CoreActivityComponent
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
|
||||
object ActivityExtensions {
|
||||
|
||||
@ -75,6 +80,23 @@ object ActivityExtensions {
|
||||
ViewModelProviders.of(this, viewModelFactory)
|
||||
.get(T::class.java)
|
||||
|
||||
fun Activity.navigate(action: NavDirections) {
|
||||
(this as CoreMainActivity).navigate(action)
|
||||
}
|
||||
|
||||
fun Activity.cachedComponent(): CoreActivityComponent = (this as CoreMainActivity).cachedComponent
|
||||
|
||||
fun Activity.setupDrawerToggle(toolbar: Toolbar) =
|
||||
(this as CoreMainActivity).setupDrawerToggle(toolbar)
|
||||
|
||||
fun Activity.navigate(fragmentId: Int) {
|
||||
(this as CoreMainActivity).navigate(fragmentId)
|
||||
}
|
||||
|
||||
fun Activity.navigate(fragmentId: Int, bundle: Bundle) {
|
||||
(this as CoreMainActivity).navigate(fragmentId, bundle)
|
||||
}
|
||||
|
||||
val Activity.coreActivityComponent
|
||||
get() = CoreApp.coreComponent.activityComponentBuilder().activity(this).build()
|
||||
}
|
||||
|
@ -25,6 +25,4 @@ import androidx.lifecycle.ViewModelProviders
|
||||
|
||||
inline fun <reified T : ViewModel> Fragment.viewModel(
|
||||
viewModelFactory: ViewModelProvider.Factory
|
||||
) =
|
||||
ViewModelProviders.of(this, viewModelFactory)
|
||||
.get(T::class.java)
|
||||
) = ViewModelProviders.of(this, viewModelFactory).get(T::class.java)
|
||||
|
@ -20,6 +20,7 @@ package org.kiwix.kiwixmobile.core.main
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.ActionMode
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import androidx.appcompat.app.ActionBarDrawerToggle
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
@ -38,6 +39,8 @@ import org.kiwix.kiwixmobile.core.utils.ExternalLinkOpener
|
||||
import javax.inject.Inject
|
||||
|
||||
const val KIWIX_SUPPORT_URL = "https://www.kiwix.org/support"
|
||||
const val PAGE_URL_KEY = "pageUrl"
|
||||
const val ZIM_FILE_URI_KEY = "zimFileUri"
|
||||
|
||||
abstract class CoreMainActivity : BaseActivity(), WebViewProvider {
|
||||
|
||||
@ -94,6 +97,9 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider {
|
||||
?.getCurrentWebView()
|
||||
}
|
||||
|
||||
override fun onSupportNavigateUp(): Boolean =
|
||||
navController.navigateUp() || super.onSupportNavigateUp()
|
||||
|
||||
open fun setupDrawerToggle(toolbar: Toolbar) {
|
||||
drawerToggle =
|
||||
ActionBarDrawerToggle(
|
||||
@ -163,6 +169,20 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
|
||||
if (activeFragments().filterIsInstance<FragmentActivityExtensions>().isEmpty()) {
|
||||
return super.onCreateOptionsMenu(menu)
|
||||
}
|
||||
var returnValue = true
|
||||
activeFragments().filterIsInstance<FragmentActivityExtensions>().forEach {
|
||||
if (it.onCreateOptionsMenu(menu, this) == FragmentActivityExtensions.Super.ShouldCall) {
|
||||
returnValue = super.onCreateOptionsMenu(menu)
|
||||
}
|
||||
}
|
||||
return returnValue
|
||||
}
|
||||
|
||||
private fun activeFragments(): MutableList<Fragment> =
|
||||
supportFragmentManager.fragments
|
||||
|
||||
|
@ -282,15 +282,10 @@ public abstract class CoreReaderFragment extends BaseFragment
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility") @Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
@Override public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
AppCompatActivity activity = (AppCompatActivity) getActivity();
|
||||
new WebView(activity).destroy(); // Workaround for buggy webViews see #710
|
||||
handleLocaleCheck();
|
||||
@ -786,11 +781,9 @@ public abstract class CoreReaderFragment extends BaseFragment
|
||||
@Override public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
safeDispose();
|
||||
super.onDestroy();
|
||||
tabCallback = null;
|
||||
hideBackToTopTimer.cancel();
|
||||
hideBackToTopTimer = null;
|
||||
webViewList.clear();
|
||||
// TODO create a base Activity class that class this.
|
||||
FileUtils.deleteCachedFiles(getActivity());
|
||||
tts.shutdown();
|
||||
@ -811,7 +804,7 @@ public abstract class CoreReaderFragment extends BaseFragment
|
||||
}
|
||||
|
||||
private KiwixWebView initalizeWebView(String url) {
|
||||
AttributeSet attrs = StyleUtils.getAttributes(getActivity(), R.xml.webview);
|
||||
AttributeSet attrs = StyleUtils.getAttributes(requireActivity(), R.xml.webview);
|
||||
KiwixWebView webView = createWebView(attrs);
|
||||
loadUrl(url, webView);
|
||||
return webView;
|
||||
@ -1601,7 +1594,7 @@ public abstract class CoreReaderFragment extends BaseFragment
|
||||
|
||||
@Override
|
||||
public void webViewProgressChanged(int progress) {
|
||||
if (checkNull(progressBar)) {
|
||||
if (checkNull(progressBar) && isAdded()) {
|
||||
progressBar.show();
|
||||
progressBar.setProgress(progress);
|
||||
if (progress == 100) {
|
||||
|
@ -90,6 +90,11 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setHasOptionsMenu(true)
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.menu_page, menu)
|
||||
val search = menu.findItem(R.id.menu_page_search).actionView as SearchView
|
||||
@ -97,7 +102,7 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
search.setOnQueryTextListener(SimpleTextListener {
|
||||
pageViewModel.actions.offer(Action.Filter(it))
|
||||
})
|
||||
pageViewModel.state.observe(viewLifecycleOwner, Observer(::render))
|
||||
super<BaseFragment>.onCreateOptionsMenu(menu, inflater)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
@ -110,18 +115,16 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val activity = requireActivity() as CoreMainActivity
|
||||
recycler_view.layoutManager = LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
|
||||
recycler_view.adapter = pageAdapter
|
||||
activity.setSupportActionBar(toolbar)
|
||||
|
||||
activity.supportActionBar?.apply {
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
title = title
|
||||
}
|
||||
recycler_view.layoutManager = LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
|
||||
recycler_view.adapter = pageAdapter
|
||||
|
||||
no_page.text = noItemsString
|
||||
|
||||
page_switch.text = switchString
|
||||
@ -130,16 +133,14 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
page_switch.setOnCheckedChangeListener { _, isChecked ->
|
||||
pageViewModel.actions.offer(Action.UserClickedShowAllToggle(isChecked))
|
||||
}
|
||||
pageViewModel.state.observe(viewLifecycleOwner, Observer(::render))
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
setHasOptionsMenu(true)
|
||||
return inflater.inflate(R.layout.fragment_page, container, false)
|
||||
}
|
||||
): View? = inflater.inflate(R.layout.fragment_page, container, false)
|
||||
|
||||
override fun onDestroy() {
|
||||
compositeDisposable.clear()
|
||||
|
@ -2,8 +2,8 @@ package org.kiwix.kiwixmobile.core.page.bookmark
|
||||
|
||||
import org.kiwix.kiwixmobile.core.R
|
||||
import org.kiwix.kiwixmobile.core.base.BaseActivity
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.coreActivityComponent
|
||||
import org.kiwix.kiwixmobile.core.extensions.viewModel
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.page.PageFragment
|
||||
import org.kiwix.kiwixmobile.core.page.adapter.PageAdapter
|
||||
import org.kiwix.kiwixmobile.core.page.adapter.PageDelegate.PageItemDelegate
|
||||
@ -20,8 +20,9 @@ class BookmarksFragment : PageFragment() {
|
||||
override val noItemsString: String by lazy { getString(R.string.no_bookmarks) }
|
||||
override val switchString: String by lazy { getString(R.string.bookmarks_from_current_book) }
|
||||
override val switchIsChecked: Boolean by lazy { sharedPreferenceUtil.showBookmarksAllBooks }
|
||||
|
||||
override fun inject(baseActivity: BaseActivity) {
|
||||
(requireActivity() as CoreMainActivity).cachedComponent.inject(this)
|
||||
baseActivity.coreActivityComponent.inject(this)
|
||||
}
|
||||
|
||||
override val searchQueryHint: String by lazy { getString(R.string.search_bookmarks) }
|
||||
|
@ -35,11 +35,7 @@ class BookmarkViewModel @Inject constructor(
|
||||
) : PageViewModel<BookmarkItem, BookmarkState>(bookmarksDao, sharedPrefs, zimReaderContainer) {
|
||||
|
||||
override fun initialState(): BookmarkState =
|
||||
BookmarkState(
|
||||
emptyList(),
|
||||
sharedPreferenceUtil.showBookmarksAllBooks,
|
||||
zimReaderContainer.id
|
||||
)
|
||||
BookmarkState(emptyList(), sharedPreferenceUtil.showBookmarksAllBooks, zimReaderContainer.id)
|
||||
|
||||
override fun updatePagesBasedOnFilter(
|
||||
state: BookmarkState,
|
||||
|
@ -22,7 +22,7 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import io.reactivex.processors.PublishProcessor
|
||||
import org.kiwix.kiwixmobile.core.base.SideEffect
|
||||
import org.kiwix.kiwixmobile.core.dao.PageDao
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.cachedComponent
|
||||
import org.kiwix.kiwixmobile.core.page.bookmark.adapter.BookmarkItem
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.PageState
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.effects.DeletePageItems
|
||||
@ -38,7 +38,7 @@ data class ShowDeleteBookmarksDialog(
|
||||
) : SideEffect<Unit> {
|
||||
@Inject lateinit var dialogShower: DialogShower
|
||||
override fun invokeWith(activity: AppCompatActivity) {
|
||||
(activity as CoreMainActivity).cachedComponent.inject(this)
|
||||
activity.cachedComponent().inject(this)
|
||||
dialogShower.show(if (state.isInSelectionState) DeleteSelectedBookmarks else DeleteAllBookmarks,
|
||||
{ effects.offer(DeletePageItems(state, pageDao)) })
|
||||
}
|
||||
|
@ -13,11 +13,7 @@ import org.kiwix.kiwixmobile.core.page.history.viewmodel.HistoryViewModel
|
||||
const val USER_CLEARED_HISTORY: String = "user_cleared_history"
|
||||
|
||||
class HistoryFragment : PageFragment() {
|
||||
override val pageViewModel by lazy {
|
||||
viewModel<HistoryViewModel>(
|
||||
viewModelFactory
|
||||
)
|
||||
}
|
||||
override val pageViewModel by lazy { viewModel<HistoryViewModel>(viewModelFactory) }
|
||||
|
||||
override val pageAdapter by lazy {
|
||||
PageAdapter(PageItemDelegate(this), HistoryDateDelegate())
|
||||
@ -29,7 +25,7 @@ class HistoryFragment : PageFragment() {
|
||||
override val switchIsChecked: Boolean by lazy { sharedPreferenceUtil.showHistoryAllBooks }
|
||||
|
||||
override fun inject(baseActivity: BaseActivity) {
|
||||
requireActivity().coreActivityComponent.inject(this)
|
||||
baseActivity.coreActivityComponent.inject(this)
|
||||
}
|
||||
|
||||
override val searchQueryHint: String by lazy { getString(R.string.search_history) }
|
||||
|
@ -22,7 +22,7 @@ import androidx.appcompat.app.AppCompatActivity
|
||||
import io.reactivex.processors.PublishProcessor
|
||||
import org.kiwix.kiwixmobile.core.base.SideEffect
|
||||
import org.kiwix.kiwixmobile.core.dao.PageDao
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.cachedComponent
|
||||
import org.kiwix.kiwixmobile.core.page.history.viewmodel.HistoryState
|
||||
import org.kiwix.kiwixmobile.core.page.viewmodel.effects.DeletePageItems
|
||||
import org.kiwix.kiwixmobile.core.utils.DialogShower
|
||||
@ -37,7 +37,7 @@ data class ShowDeleteHistoryDialog(
|
||||
) : SideEffect<Unit> {
|
||||
@Inject lateinit var dialogShower: DialogShower
|
||||
override fun invokeWith(activity: AppCompatActivity) {
|
||||
(activity as CoreMainActivity).cachedComponent.inject(this)
|
||||
activity.cachedComponent().inject(this)
|
||||
dialogShower.show(if (state.isInSelectionState) DeleteSelectedHistory else DeleteAllHistory, {
|
||||
effects.offer(DeletePageItems(state, pageDao))
|
||||
})
|
||||
|
@ -31,6 +31,7 @@ import kotlinx.android.synthetic.main.activity_main.drawer_nav_view
|
||||
import org.kiwix.kiwixmobile.core.di.components.CoreComponent
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.intent
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.main.ZIM_FILE_URI_KEY
|
||||
import org.kiwix.kiwixmobile.core.utils.REQUEST_PREFERENCES
|
||||
import org.kiwix.kiwixmobile.custom.R
|
||||
import org.kiwix.kiwixmobile.custom.customActivityComponent
|
||||
@ -62,9 +63,6 @@ class CustomMainActivity : CoreMainActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSupportNavigateUp(): Boolean =
|
||||
navController.navigateUp() || super.onSupportNavigateUp()
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
if (drawerToggle.isDrawerIndicatorEnabled) {
|
||||
return drawerToggle.onOptionsItemSelected(item)
|
||||
@ -87,7 +85,7 @@ class CustomMainActivity : CoreMainActivity() {
|
||||
}
|
||||
|
||||
override fun openPage(pageUrl: String, zimFilePath: String) {
|
||||
val bundle = bundleOf("pageUrl" to pageUrl, "zimFileUri" to zimFilePath)
|
||||
val bundle = bundleOf(PAGE_URL_KEY to pageUrl, ZIM_FILE_URI_KEY to zimFilePath)
|
||||
navigate(R.id.customReaderFragment, bundle)
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ import android.os.Bundle
|
||||
import android.provider.Settings
|
||||
import android.view.Menu
|
||||
import android.view.MenuInflater
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.ActivityCompat
|
||||
@ -38,8 +39,8 @@ import androidx.drawerlayout.widget.DrawerLayout
|
||||
import org.kiwix.kiwixmobile.core.base.BaseActivity
|
||||
import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super
|
||||
import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions.Super.ShouldCall
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.setupDrawerToggle
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.start
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.main.CoreReaderFragment
|
||||
import org.kiwix.kiwixmobile.core.main.MainMenu
|
||||
import org.kiwix.kiwixmobile.core.reader.ZimFileReader.Companion.CONTENT_PREFIX
|
||||
@ -64,8 +65,8 @@ class CustomReaderFragment : CoreReaderFragment() {
|
||||
@Inject lateinit var customFileValidator: CustomFileValidator
|
||||
@Inject lateinit var dialogShower: DialogShower
|
||||
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
if (enforcedLanguage()) {
|
||||
return
|
||||
}
|
||||
@ -79,8 +80,10 @@ class CustomReaderFragment : CoreReaderFragment() {
|
||||
val toolbarToc = activity?.findViewById<ImageView>(R.id.bottom_toolbar_toc)
|
||||
toolbarToc?.isEnabled = false
|
||||
}
|
||||
(activity as AppCompatActivity).supportActionBar!!.setDisplayHomeAsUpEnabled(true)
|
||||
(activity as CoreMainActivity).setupDrawerToggle(toolbar)
|
||||
with(activity as AppCompatActivity) {
|
||||
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
|
||||
setupDrawerToggle(toolbar)
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadPageFromNavigationArguments() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user