mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-27 15:11:13 -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)
|
(baseActivity as KiwixMainActivity).cachedComponent.inject(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
|
||||||
super.onDestroyView()
|
|
||||||
(activity as AppCompatActivity).setSupportActionBar(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
inflater.inflate(R.menu.menu_zim_manager, menu)
|
inflater.inflate(R.menu.menu_zim_manager, menu)
|
||||||
val searchItem = menu.findItem(R.id.action_search)
|
val searchItem = menu.findItem(R.id.action_search)
|
||||||
@ -88,7 +83,6 @@ class LocalLibraryFragment : ZimFileSelectFragment() {
|
|||||||
): View? {
|
): View? {
|
||||||
LanguageUtils(requireActivity())
|
LanguageUtils(requireActivity())
|
||||||
.changeFont(requireActivity().layoutInflater, sharedPreferenceUtil)
|
.changeFont(requireActivity().layoutInflater, sharedPreferenceUtil)
|
||||||
setHasOptionsMenu(true)
|
|
||||||
val root = inflater.inflate(R.layout.fragment_destination_library, container, false)
|
val root = inflater.inflate(R.layout.fragment_destination_library, container, false)
|
||||||
val toolbar = root.findViewById<Toolbar>(R.id.toolbar)
|
val toolbar = root.findViewById<Toolbar>(R.id.toolbar)
|
||||||
val activity = activity as CoreMainActivity
|
val activity = activity as CoreMainActivity
|
||||||
@ -98,9 +92,15 @@ class LocalLibraryFragment : ZimFileSelectFragment() {
|
|||||||
setTitle(R.string.library)
|
setTitle(R.string.library)
|
||||||
}
|
}
|
||||||
activity.setupDrawerToggle(toolbar)
|
activity.setupDrawerToggle(toolbar)
|
||||||
|
setHasOptionsMenu(true)
|
||||||
return root
|
return root
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDestroyView() {
|
||||||
|
super.onDestroyView()
|
||||||
|
(activity as AppCompatActivity).setSupportActionBar(null)
|
||||||
|
}
|
||||||
|
|
||||||
override fun render(state: FileSelectListState) {
|
override fun render(state: FileSelectListState) {
|
||||||
super.render(state)
|
super.render(state)
|
||||||
val items = state.bookOnDiskListItems
|
val items = state.bookOnDiskListItems
|
||||||
|
@ -57,11 +57,6 @@ class OnlineLibraryFragment : LibraryFragment(), FragmentActivityExtensions {
|
|||||||
zimManageViewModel.requestFiltering.onNext("")
|
zimManageViewModel.requestFiltering.onNext("")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
|
||||||
super.onDestroyView()
|
|
||||||
(activity as AppCompatActivity).setSupportActionBar(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onBackPressed(activity: AppCompatActivity): FragmentActivityExtensions.Super {
|
override fun onBackPressed(activity: AppCompatActivity): FragmentActivityExtensions.Super {
|
||||||
getActivity()?.finish()
|
getActivity()?.finish()
|
||||||
return FragmentActivityExtensions.Super.ShouldNotCall
|
return FragmentActivityExtensions.Super.ShouldNotCall
|
||||||
|
@ -258,11 +258,6 @@ class KiwixReaderFragment : CoreReaderFragment() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
|
||||||
super.onDestroyView()
|
|
||||||
(activity as AppCompatActivity).setSupportActionBar(null)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun openFullScreen() {
|
override fun openFullScreen() {
|
||||||
super.openFullScreen()
|
super.openFullScreen()
|
||||||
requireActivity().bottom_nav_view.visibility = GONE
|
requireActivity().bottom_nav_view.visibility = GONE
|
||||||
|
@ -20,6 +20,7 @@ package org.kiwix.kiwixmobile.core.main
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.ActionMode
|
import android.view.ActionMode
|
||||||
|
import android.view.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import androidx.appcompat.app.ActionBarDrawerToggle
|
import androidx.appcompat.app.ActionBarDrawerToggle
|
||||||
import androidx.appcompat.widget.Toolbar
|
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> =
|
private fun activeFragments(): MutableList<Fragment> =
|
||||||
supportFragmentManager.fragments
|
supportFragmentManager.fragments
|
||||||
|
|
||||||
|
@ -788,11 +788,9 @@ public abstract class CoreReaderFragment extends BaseFragment
|
|||||||
@Override public void onDestroyView() {
|
@Override public void onDestroyView() {
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
safeDispose();
|
safeDispose();
|
||||||
super.onDestroy();
|
|
||||||
tabCallback = null;
|
tabCallback = null;
|
||||||
hideBackToTopTimer.cancel();
|
hideBackToTopTimer.cancel();
|
||||||
hideBackToTopTimer = null;
|
hideBackToTopTimer = null;
|
||||||
webViewList.clear();
|
|
||||||
// TODO create a base Activity class that class this.
|
// TODO create a base Activity class that class this.
|
||||||
FileUtils.deleteCachedFiles(getActivity());
|
FileUtils.deleteCachedFiles(getActivity());
|
||||||
tts.shutdown();
|
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) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
inflater.inflate(R.menu.menu_page, menu)
|
inflater.inflate(R.menu.menu_page, menu)
|
||||||
val search = menu.findItem(R.id.menu_page_search).actionView as SearchView
|
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 {
|
search.setOnQueryTextListener(SimpleTextListener {
|
||||||
pageViewModel.actions.offer(Action.Filter(it))
|
pageViewModel.actions.offer(Action.Filter(it))
|
||||||
})
|
})
|
||||||
pageViewModel.state.observe(viewLifecycleOwner, Observer(::render))
|
super<BaseFragment>.onCreateOptionsMenu(menu, inflater)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
@ -113,11 +128,6 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
|||||||
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
||||||
super.onActivityCreated(savedInstanceState)
|
super.onActivityCreated(savedInstanceState)
|
||||||
val activity = requireActivity() as CoreMainActivity
|
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.layoutManager = LinearLayoutManager(activity, RecyclerView.VERTICAL, false)
|
||||||
recycler_view.adapter = pageAdapter
|
recycler_view.adapter = pageAdapter
|
||||||
|
|
||||||
@ -129,16 +139,14 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv
|
|||||||
page_switch.setOnCheckedChangeListener { _, isChecked ->
|
page_switch.setOnCheckedChangeListener { _, isChecked ->
|
||||||
pageViewModel.actions.offer(Action.UserClickedShowAllToggle(isChecked))
|
pageViewModel.actions.offer(Action.UserClickedShowAllToggle(isChecked))
|
||||||
}
|
}
|
||||||
|
pageViewModel.state.observe(viewLifecycleOwner, Observer(::render))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
): View? {
|
): View? = inflater.inflate(R.layout.fragment_page, container, false)
|
||||||
setHasOptionsMenu(true)
|
|
||||||
return inflater.inflate(R.layout.fragment_page, container, false)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
compositeDisposable.clear()
|
compositeDisposable.clear()
|
||||||
|
@ -4,6 +4,7 @@ import org.kiwix.kiwixmobile.core.R
|
|||||||
import org.kiwix.kiwixmobile.core.base.BaseActivity
|
import org.kiwix.kiwixmobile.core.base.BaseActivity
|
||||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.coreActivityComponent
|
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.coreActivityComponent
|
||||||
import org.kiwix.kiwixmobile.core.extensions.viewModel
|
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.PageFragment
|
||||||
import org.kiwix.kiwixmobile.core.page.adapter.PageAdapter
|
import org.kiwix.kiwixmobile.core.page.adapter.PageAdapter
|
||||||
import org.kiwix.kiwixmobile.core.page.adapter.PageDelegate.PageItemDelegate
|
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 noItemsString: String by lazy { getString(R.string.no_bookmarks) }
|
||||||
override val switchString: String by lazy { getString(R.string.bookmarks_from_current_book) }
|
override val switchString: String by lazy { getString(R.string.bookmarks_from_current_book) }
|
||||||
override val switchIsChecked: Boolean by lazy { sharedPreferenceUtil.showBookmarksAllBooks }
|
override val switchIsChecked: Boolean by lazy { sharedPreferenceUtil.showBookmarksAllBooks }
|
||||||
|
|
||||||
override fun inject(baseActivity: BaseActivity) {
|
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) }
|
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.base.BaseActivity
|
||||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.coreActivityComponent
|
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.coreActivityComponent
|
||||||
import org.kiwix.kiwixmobile.core.extensions.viewModel
|
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.PageFragment
|
||||||
import org.kiwix.kiwixmobile.core.page.adapter.PageAdapter
|
import org.kiwix.kiwixmobile.core.page.adapter.PageAdapter
|
||||||
import org.kiwix.kiwixmobile.core.page.adapter.PageDelegate.HistoryDateDelegate
|
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 val switchIsChecked: Boolean by lazy { sharedPreferenceUtil.showHistoryAllBooks }
|
||||||
|
|
||||||
override fun inject(baseActivity: BaseActivity) {
|
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) }
|
override val searchQueryHint: String by lazy { getString(R.string.search_history) }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user