mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-26 14:36:10 -04:00
#2238 actionbars now works but memory leaks might be active again.
This commit is contained in:
parent
5c8af5d419
commit
33a4abb2e2
@ -60,11 +60,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 +83,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,9 +92,15 @@ class LocalLibraryFragment : ZimFileSelectFragment() {
|
||||
setTitle(R.string.library)
|
||||
}
|
||||
activity.setupDrawerToggle(toolbar)
|
||||
setHasOptionsMenu(true)
|
||||
return root
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
(activity as AppCompatActivity).setSupportActionBar(null)
|
||||
}
|
||||
|
||||
override fun render(state: FileSelectListState) {
|
||||
super.render(state)
|
||||
val items = state.bookOnDiskListItems
|
||||
|
@ -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
|
||||
|
@ -258,11 +258,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,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
|
||||
@ -159,6 +160,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
|
||||
|
||||
|
@ -788,11 +788,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();
|
||||
|
@ -90,6 +90,21 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setHasOptionsMenu(true)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val activity = requireActivity() as CoreMainActivity
|
||||
activity.setSupportActionBar(toolbar)
|
||||
activity.supportActionBar?.apply {
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
title = title
|
||||
}
|
||||
}
|
||||
|
||||
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 +112,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 {
|
||||
@ -113,11 +128,6 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
val activity = requireActivity() as CoreMainActivity
|
||||
activity.setSupportActionBar(toolbar)
|
||||
activity.supportActionBar?.apply {
|
||||
setDisplayHomeAsUpEnabled(true)
|
||||
title = title
|
||||
}
|
||||
recycler_view.layoutManager = LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
|
||||
recycler_view.adapter = pageAdapter
|
||||
|
||||
@ -129,16 +139,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()
|
||||
|
@ -4,6 +4,7 @@ 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 +21,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().coreActivityComponent.inject(this)
|
||||
(baseActivity as CoreMainActivity).coreActivityComponent.inject(this)
|
||||
}
|
||||
|
||||
override val searchQueryHint: String by lazy { getString(R.string.search_bookmarks) }
|
||||
|
@ -4,6 +4,7 @@ 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.HistoryDateDelegate
|
||||
@ -25,7 +26,7 @@ class HistoryFragment : PageFragment() {
|
||||
override val switchIsChecked: Boolean by lazy { sharedPreferenceUtil.showHistoryAllBooks }
|
||||
|
||||
override fun inject(baseActivity: BaseActivity) {
|
||||
requireActivity().coreActivityComponent.inject(this)
|
||||
(baseActivity as CoreMainActivity).coreActivityComponent.inject(this)
|
||||
}
|
||||
|
||||
override val searchQueryHint: String by lazy { getString(R.string.search_history) }
|
||||
|
Loading…
x
Reference in New Issue
Block a user