From eb5a7596e76f6c22e874c98b47b3943d9009aac8 Mon Sep 17 00:00:00 2001 From: HissPirat Date: Tue, 4 Aug 2020 15:49:03 +0200 Subject: [PATCH 1/7] #2238 moved attrs to property and fixed openDrawer method --- .../java/org/kiwix/kiwixmobile/main/MainActivityTest.java | 8 +------- .../java/org/kiwix/kiwixmobile/utils/StandardActions.java | 7 +++++++ .../kiwixmobile/core/extensions/FragmentExtensions.kt | 4 +--- .../kiwix/kiwixmobile/core/main/CoreReaderFragment.java | 3 ++- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/main/MainActivityTest.java b/app/src/androidTest/java/org/kiwix/kiwixmobile/main/MainActivityTest.java index e29a907bb..ef27283a6 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/main/MainActivityTest.java +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/main/MainActivityTest.java @@ -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("Open")).perform(click()); - } - @Test public void navigateSettings() { BaristaSleepInteractions.sleep(TEST_PAUSE_MS); diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/utils/StandardActions.java b/app/src/androidTest/java/org/kiwix/kiwixmobile/utils/StandardActions.java index 79cb3c69c..62cfc385d 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/utils/StandardActions.java +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/utils/StandardActions.java @@ -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()); diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/FragmentExtensions.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/FragmentExtensions.kt index 3075bb0f2..32067a815 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/FragmentExtensions.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/FragmentExtensions.kt @@ -25,6 +25,4 @@ import androidx.lifecycle.ViewModelProviders inline fun Fragment.viewModel( viewModelFactory: ViewModelProvider.Factory -) = - ViewModelProviders.of(this, viewModelFactory) - .get(T::class.java) +) = ViewModelProviders.of(this, viewModelFactory).get(T::class.java) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java index c28a30e98..d9b5d39b6 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java @@ -250,6 +250,7 @@ public abstract class CoreReaderFragment extends BaseFragment private ItemTouchHelper.Callback tabCallback; private Disposable bookmarkingDisposable; private boolean isBookmarked; + private AttributeSet attrs; @NotNull @Override public Super onActionModeStarted(@NotNull ActionMode mode, @NotNull AppCompatActivity activity) { @@ -298,6 +299,7 @@ public abstract class CoreReaderFragment extends BaseFragment actionBar = activity.getSupportActionBar(); initHideBackToTopTimer(); initTabCallback(); + attrs = StyleUtils.getAttributes(requireActivity(), R.xml.webview); toolbar.setOnTouchListener(new OnSwipeTouchListener(getActivity()) { @Override @@ -811,7 +813,6 @@ public abstract class CoreReaderFragment extends BaseFragment } private KiwixWebView initalizeWebView(String url) { - AttributeSet attrs = StyleUtils.getAttributes(getActivity(), R.xml.webview); KiwixWebView webView = createWebView(attrs); loadUrl(url, webView); return webView; From 5c8af5d419c6d9b2687d41f4f0e1a05123b50c0f Mon Sep 17 00:00:00 2001 From: HissPirat Date: Tue, 4 Aug 2020 16:06:43 +0200 Subject: [PATCH 2/7] #2238 history and bookmarks no longer work.. Fixed injection issue with bookmarks --- .../org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java | 2 +- .../java/org/kiwix/kiwixmobile/core/page/PageFragment.kt | 1 - .../kiwixmobile/core/page/bookmark/BookmarksFragment.kt | 4 ++-- .../core/page/bookmark/viewmodel/BookmarkViewModel.kt | 6 +----- .../kiwix/kiwixmobile/core/page/history/HistoryFragment.kt | 6 +----- 5 files changed, 5 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java index d9b5d39b6..5a9ff583b 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java @@ -1602,7 +1602,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) { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt index b883860fd..721ada1de 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt @@ -114,7 +114,6 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv super.onActivityCreated(savedInstanceState) val activity = requireActivity() as CoreMainActivity activity.setSupportActionBar(toolbar) - activity.supportActionBar?.apply { setDisplayHomeAsUpEnabled(true) title = title diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt index a38a16b9a..6245f349b 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt @@ -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 @@ -21,7 +21,7 @@ class BookmarksFragment : PageFragment() { 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) + requireActivity().coreActivityComponent.inject(this) } override val searchQueryHint: String by lazy { getString(R.string.search_bookmarks) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkViewModel.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkViewModel.kt index 8522488b4..ebdee2849 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkViewModel.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/BookmarkViewModel.kt @@ -35,11 +35,7 @@ class BookmarkViewModel @Inject constructor( ) : PageViewModel(bookmarksDao, sharedPrefs, zimReaderContainer) { override fun initialState(): BookmarkState = - BookmarkState( - emptyList(), - sharedPreferenceUtil.showBookmarksAllBooks, - zimReaderContainer.id - ) + BookmarkState(emptyList(), sharedPreferenceUtil.showBookmarksAllBooks, zimReaderContainer.id) override fun updatePagesBasedOnFilter( state: BookmarkState, diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt index ad53d1697..e03e1b0d5 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt @@ -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( - viewModelFactory - ) - } + override val pageViewModel by lazy { viewModel(viewModelFactory) } override val pageAdapter by lazy { PageAdapter(PageItemDelegate(this), HistoryDateDelegate()) From 33a4abb2e22749ad83fd62f6020fb3ce9b89ba99 Mon Sep 17 00:00:00 2001 From: HissPirat Date: Wed, 5 Aug 2020 14:05:33 +0200 Subject: [PATCH 3/7] #2238 actionbars now works but memory leaks might be active again. --- .../library/LocalLibraryFragment.kt | 12 ++++---- .../library/OnlineLibraryFragment.kt | 5 ---- .../destination/reader/KiwixReaderFragment.kt | 5 ---- .../kiwixmobile/core/main/CoreMainActivity.kt | 15 ++++++++++ .../core/main/CoreReaderFragment.java | 2 -- .../kiwixmobile/core/page/PageFragment.kt | 28 ++++++++++++------- .../core/page/bookmark/BookmarksFragment.kt | 4 ++- .../core/page/history/HistoryFragment.kt | 3 +- 8 files changed, 44 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt index 4a04840df..f89a5359f 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt @@ -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(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 diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryFragment.kt index cfb08d98a..9cc81edbe 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryFragment.kt @@ -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 diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt index 43a7c7c86..d856c3a21 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt @@ -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 diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt index 9a481560f..db38e3234 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt @@ -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().isEmpty()) { + return super.onCreateOptionsMenu(menu) + } + var returnValue = true + activeFragments().filterIsInstance().forEach { + if (it.onCreateOptionsMenu(menu, this) == FragmentActivityExtensions.Super.ShouldCall) { + returnValue = super.onCreateOptionsMenu(menu) + } + } + return returnValue + } + private fun activeFragments(): MutableList = supportFragmentManager.fragments diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java index 5a9ff583b..b1ddbc3d6 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java @@ -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(); diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt index 721ada1de..8665d4fb0 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt @@ -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.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() diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt index 6245f349b..2b171a4e4 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt @@ -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) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt index e03e1b0d5..4e8b7ceb5 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt @@ -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) } From 5267c87c28a877b61de0184bfa7398a57dc096a3 Mon Sep 17 00:00:00 2001 From: HissPirat Date: Wed, 5 Aug 2020 14:10:31 +0200 Subject: [PATCH 4/7] #2238 moved navigate to an activity extension function --- .../effects/OpenFileWithNavigation.kt | 4 ++-- .../core/extensions/ActivityExtensions.kt | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/OpenFileWithNavigation.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/OpenFileWithNavigation.kt index 3f94e24a9..a88759a49 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/OpenFileWithNavigation.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/OpenFileWithNavigation.kt @@ -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() } ) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ActivityExtensions.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ActivityExtensions.kt index 212d541e2..b42b5a4f0 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ActivityExtensions.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ActivityExtensions.kt @@ -20,6 +20,7 @@ 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 @@ -28,7 +29,9 @@ 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.main.CoreMainActivity object ActivityExtensions { @@ -75,6 +78,18 @@ object ActivityExtensions { ViewModelProviders.of(this, viewModelFactory) .get(T::class.java) + fun Activity.navigate(action: NavDirections) { + (this as CoreMainActivity).navigate(action) + } + + 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() } From aa0f3d5af58434fcf3f420990d82dd16c5a3dc5e Mon Sep 17 00:00:00 2001 From: HissPirat Date: Wed, 5 Aug 2020 14:33:08 +0200 Subject: [PATCH 5/7] #2238 moved navigate to an activity extension function --- .../nav/destination/library/LocalLibraryFragment.kt | 6 ------ .../nav/destination/reader/KiwixReaderFragment.kt | 3 ++- .../fileselect_view/effects/NavigateToDownloads.kt | 5 ++--- .../kiwixmobile/core/extensions/ActivityExtensions.kt | 7 +++++++ .../kiwixmobile/core/page/bookmark/BookmarksFragment.kt | 3 +-- .../viewmodel/effects/ShowDeleteBookmarksDialog.kt | 4 ++-- .../kiwixmobile/core/page/history/HistoryFragment.kt | 3 +-- .../history/viewmodel/effects/ShowDeleteHistoryDialog.kt | 4 ++-- .../kiwix/kiwixmobile/custom/main/CustomReaderFragment.kt | 8 +++++--- 9 files changed, 22 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt index f89a5359f..ed8298383 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/library/LocalLibraryFragment.kt @@ -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 @@ -96,11 +95,6 @@ class LocalLibraryFragment : ZimFileSelectFragment() { return root } - override fun onDestroyView() { - super.onDestroyView() - (activity as AppCompatActivity).setSupportActionBar(null) - } - override fun render(state: FileSelectListState) { super.render(state) val items = state.bookOnDiskListItems diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt index d856c3a21..29ae4af74 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt @@ -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 @@ -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) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/NavigateToDownloads.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/NavigateToDownloads.kt index 9cace19b2..19a0a1c95 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/NavigateToDownloads.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/effects/NavigateToDownloads.kt @@ -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 { override fun invokeWith(activity: AppCompatActivity) { - (activity as CoreMainActivity) - .navigate(LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationDownloads()) + activity.navigate(LocalLibraryFragmentDirections.actionNavigationLibraryToNavigationDownloads()) } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ActivityExtensions.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ActivityExtensions.kt index b42b5a4f0..5c9d2c3c9 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ActivityExtensions.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ActivityExtensions.kt @@ -25,12 +25,14 @@ 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 { @@ -82,6 +84,11 @@ object ActivityExtensions { (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) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt index 2b171a4e4..fb3ba5503 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/BookmarksFragment.kt @@ -4,7 +4,6 @@ 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 @@ -23,7 +22,7 @@ class BookmarksFragment : PageFragment() { override val switchIsChecked: Boolean by lazy { sharedPreferenceUtil.showBookmarksAllBooks } override fun inject(baseActivity: BaseActivity) { - (baseActivity as CoreMainActivity).coreActivityComponent.inject(this) + baseActivity.coreActivityComponent.inject(this) } override val searchQueryHint: String by lazy { getString(R.string.search_bookmarks) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/effects/ShowDeleteBookmarksDialog.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/effects/ShowDeleteBookmarksDialog.kt index c16bd1217..ea07d6dba 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/effects/ShowDeleteBookmarksDialog.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/bookmark/viewmodel/effects/ShowDeleteBookmarksDialog.kt @@ -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 { @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)) }) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt index 4e8b7ceb5..73d09a0f4 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/HistoryFragment.kt @@ -4,7 +4,6 @@ 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 @@ -26,7 +25,7 @@ class HistoryFragment : PageFragment() { override val switchIsChecked: Boolean by lazy { sharedPreferenceUtil.showHistoryAllBooks } override fun inject(baseActivity: BaseActivity) { - (baseActivity as CoreMainActivity).coreActivityComponent.inject(this) + baseActivity.coreActivityComponent.inject(this) } override val searchQueryHint: String by lazy { getString(R.string.search_history) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/effects/ShowDeleteHistoryDialog.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/effects/ShowDeleteHistoryDialog.kt index 4f1f59389..feca3745f 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/effects/ShowDeleteHistoryDialog.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/history/viewmodel/effects/ShowDeleteHistoryDialog.kt @@ -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 { @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)) }) 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 16bbfa680..b14f4e546 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 @@ -38,8 +38,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 @@ -79,8 +79,10 @@ class CustomReaderFragment : CoreReaderFragment() { val toolbarToc = activity?.findViewById(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() { From e5eeb4476de046fad11e89a4fdcca29ad75d78df Mon Sep 17 00:00:00 2001 From: HissPirat Date: Wed, 5 Aug 2020 14:36:44 +0200 Subject: [PATCH 6/7] #2238 moved inline variables to constants --- .../org/kiwix/kiwixmobile/main/KiwixMainActivity.kt | 10 ++-------- .../kiwix/kiwixmobile/core/main/CoreMainActivity.kt | 5 +++++ .../kiwixmobile/custom/main/CustomMainActivity.kt | 6 ++---- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt index 07a9da507..86e50cd26 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt @@ -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 @@ -99,11 +98,6 @@ class KiwixMainActivity : CoreMainActivity() { actionMode = mode } - override fun onSupportNavigateUp(): Boolean { - return navController.navigateUp() || - super.onSupportNavigateUp() - } - override fun onBackPressed() { if (readerDrawerIsOpen()) { closeReaderDrawer() diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt index db38e3234..400c1fa0f 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.kt @@ -41,6 +41,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 { @@ -96,6 +98,9 @@ abstract class CoreMainActivity : BaseActivity(), WebViewProvider { ?.getCurrentWebView() } + override fun onSupportNavigateUp(): Boolean = + navController.navigateUp() || super.onSupportNavigateUp() + open fun setupDrawerToggle(toolbar: Toolbar) { drawerToggle = ActionBarDrawerToggle( diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomMainActivity.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomMainActivity.kt index 0f5a57cbd..6ab04ea5d 100644 --- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomMainActivity.kt +++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomMainActivity.kt @@ -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 @@ -61,9 +62,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) @@ -86,7 +84,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) } } From 59e660ca6a31671bc298ea9ff34c5b969e74d077 Mon Sep 17 00:00:00 2001 From: HissPirat Date: Wed, 5 Aug 2020 14:47:05 +0200 Subject: [PATCH 7/7] #2238 changed all onActivityCreated to onViewCreated --- .../destination/reader/KiwixReaderFragment.kt | 4 ++-- .../core/main/CoreReaderFragment.java | 12 +++-------- .../kiwixmobile/core/page/PageFragment.kt | 20 +++++++------------ .../custom/main/CustomReaderFragment.kt | 5 +++-- 4 files changed, 15 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt index 29ae4af74..09087b36f 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/nav/destination/reader/KiwixReaderFragment.kt @@ -70,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 { diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java index b1ddbc3d6..9e6c57047 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.java @@ -250,7 +250,6 @@ public abstract class CoreReaderFragment extends BaseFragment private ItemTouchHelper.Callback tabCallback; private Disposable bookmarkingDisposable; private boolean isBookmarked; - private AttributeSet attrs; @NotNull @Override public Super onActionModeStarted(@NotNull ActionMode mode, @NotNull AppCompatActivity activity) { @@ -283,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(); @@ -299,7 +293,6 @@ public abstract class CoreReaderFragment extends BaseFragment actionBar = activity.getSupportActionBar(); initHideBackToTopTimer(); initTabCallback(); - attrs = StyleUtils.getAttributes(requireActivity(), R.xml.webview); toolbar.setOnTouchListener(new OnSwipeTouchListener(getActivity()) { @Override @@ -811,6 +804,7 @@ public abstract class CoreReaderFragment extends BaseFragment } private KiwixWebView initalizeWebView(String url) { + AttributeSet attrs = StyleUtils.getAttributes(requireActivity(), R.xml.webview); KiwixWebView webView = createWebView(attrs); loadUrl(url, webView); return webView; diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt index 8665d4fb0..10f153dd9 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/page/PageFragment.kt @@ -95,16 +95,6 @@ abstract class PageFragment : OnItemClickListener, BaseFragment(), FragmentActiv 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 @@ -125,12 +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 + } no_page.text = noItemsString page_switch.text = switchString 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 b14f4e546..a4b2894f3 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 @@ -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 @@ -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 }