From a907fa3f420a3bbcb39dbabaf547c6e6cedf280c Mon Sep 17 00:00:00 2001 From: Sagar Date: Sat, 3 Feb 2024 23:52:08 +0530 Subject: [PATCH] #3668 Added setToolTip function --- .../core/extensions/ViewExtensions.kt | 10 ++++++++ .../core/main/CoreReaderFragment.kt | 23 ++++++++++++++----- .../kiwix/kiwixmobile/core/main/MainMenu.kt | 10 +++----- .../kiwixmobile/core/main/TabsAdapter.kt | 9 ++------ core/src/main/res/values/strings.xml | 1 + 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ViewExtensions.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ViewExtensions.kt index e8e2a7ed8..32c47c9f6 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ViewExtensions.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/ViewExtensions.kt @@ -19,8 +19,10 @@ package org.kiwix.kiwixmobile.core.extensions import android.annotation.SuppressLint +import android.os.Build import android.view.View import androidx.annotation.ColorInt +import androidx.appcompat.widget.TooltipCompat import com.google.android.material.snackbar.BaseTransientBottomBar import com.google.android.material.snackbar.Snackbar @@ -69,3 +71,11 @@ fun View.snack( }) }.show() } + +fun View.setToolTip(description: String) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + TooltipCompat.setTooltipText(this, description) + } else { + contentDescription = description + } +} diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt index ef1c493c4..fc4ead01a 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt @@ -65,7 +65,6 @@ import androidx.annotation.AnimRes import androidx.appcompat.app.ActionBar import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar -import androidx.appcompat.widget.TooltipCompat import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.Group import androidx.coordinatorlayout.widget.CoordinatorLayout @@ -115,6 +114,7 @@ import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.observeNavigatio import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.requestNotificationPermission import org.kiwix.kiwixmobile.core.extensions.ViewGroupExtensions.findFirstTextView import org.kiwix.kiwixmobile.core.extensions.isFileExist +import org.kiwix.kiwixmobile.core.extensions.setToolTip import org.kiwix.kiwixmobile.core.extensions.snack import org.kiwix.kiwixmobile.core.extensions.toast import org.kiwix.kiwixmobile.core.main.DocumentParser.SectionsListener @@ -694,6 +694,7 @@ abstract class CoreReaderFragment : ) setDisplayShowTitleEnabled(false) } + closeAllTabsButton?.setToolTip(resources.getString(R.string.close_all_tabs)) // Set a negative top margin to the web views to remove // the unwanted blank space caused by the toolbar. setTopMarginToWebViews(-requireActivity().getToolbarHeight()) @@ -770,11 +771,6 @@ abstract class CoreReaderFragment : setImageDrawable( ContextCompat.getDrawable(requireActivity(), R.drawable.ic_close_black_24dp) ) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - TooltipCompat.setTooltipText(this, resources.getString(R.string.close_all_tabs)) - } else { - contentDescription = resources.getString(R.string.close_all_tabs) - } } tabSwitcherRoot?.let { if (it.visibility == View.VISIBLE) { @@ -938,22 +934,27 @@ abstract class CoreReaderFragment : hideTabSwitcher() return FragmentActivityExtensions.Super.ShouldNotCall } + isInFullScreenMode() -> { closeFullScreen() return FragmentActivityExtensions.Super.ShouldNotCall } + compatCallback?.isActive == true -> { compatCallback?.finish() return FragmentActivityExtensions.Super.ShouldNotCall } + drawerLayout?.isDrawerOpen(GravityCompat.END) == true -> { drawerLayout?.closeDrawers() return FragmentActivityExtensions.Super.ShouldNotCall } + getCurrentWebView()?.canGoBack() == true -> { getCurrentWebView()?.goBack() return FragmentActivityExtensions.Super.ShouldNotCall } + else -> return FragmentActivityExtensions.Super.ShouldCall } } @@ -1025,6 +1026,7 @@ abstract class CoreReaderFragment : pauseTTSButton?.setText(R.string.tts_resume) setActionAndStartTTSService(ACTION_PAUSE_OR_RESUME_TTS, true) } + AudioManager.AUDIOFOCUS_GAIN -> { pauseTTSButton?.setText(R.string.tts_pause) setActionAndStartTTSService(ACTION_PAUSE_OR_RESUME_TTS, false) @@ -1310,12 +1312,14 @@ abstract class CoreReaderFragment : startReadAloud() } } + View.VISIBLE -> { if (isBackToTopEnabled) { backToTopButton?.show() } tts?.stop() } + else -> {} } } @@ -1586,6 +1590,7 @@ abstract class CoreReaderFragment : } } } + REQUEST_POST_NOTIFICATION_PERMISSION -> { if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { onReadAloudMenuClicked() @@ -1740,18 +1745,22 @@ abstract class CoreReaderFragment : // see https://github.com/kiwix/kiwix-android/issues/2607 intent.action = null } + CoreSearchWidget.TEXT_CLICKED -> { goToSearch(false) intent.action = null } + CoreSearchWidget.STAR_CLICKED -> { goToBookmarks() intent.action = null } + CoreSearchWidget.MIC_CLICKED -> { goToSearch(true) intent.action = null } + Intent.ACTION_VIEW -> if (intent.type == null || intent.type != "application/octet-stream" ) { @@ -2059,10 +2068,12 @@ abstract class CoreReaderFragment : // This is my web site, so do not override; let my WebView load the page handleEvent = true } + url.startsWith("file://") -> { // To handle help page (loaded from resources) handleEvent = true } + url.startsWith(ZimFileReader.UI_URI.toString()) -> { handleEvent = true } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/MainMenu.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/MainMenu.kt index 5ac8a3c18..2c0a06eea 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/MainMenu.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/MainMenu.kt @@ -19,13 +19,12 @@ package org.kiwix.kiwixmobile.core.main import android.app.Activity import android.content.res.Configuration -import android.os.Build import android.view.Menu import android.view.MenuItem import android.widget.TextView -import androidx.appcompat.widget.TooltipCompat import androidx.core.view.isVisible import org.kiwix.kiwixmobile.core.R +import org.kiwix.kiwixmobile.core.extensions.setToolTip import org.kiwix.kiwixmobile.core.reader.ZimFileReader const val REQUEST_FILE_SEARCH = 1236 @@ -102,11 +101,7 @@ class MainMenu( ) tabSwitcher?.actionView?.apply { setOnClickListener { menuClickListener.onTabMenuClicked() } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - TooltipCompat.setTooltipText(this, resources.getText(R.string.switch_tabs)) - } else { - contentDescription = resources.getText(R.string.switch_tabs) - } + setToolTip(resources.getString(R.string.switch_tabs)) } addNote.menuItemClickListener { menuClickListener.onAddNoteMenuClicked() } randomArticle.menuItemClickListener { menuClickListener.onRandomArticleMenuClicked() } @@ -126,6 +121,7 @@ class MainMenu( menuClickListener.onHomeMenuClicked() true } + else -> false } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/TabsAdapter.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/TabsAdapter.kt index c7e33b8ef..1cf87f57f 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/TabsAdapter.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/TabsAdapter.kt @@ -18,7 +18,6 @@ package org.kiwix.kiwixmobile.core.main import android.annotation.SuppressLint -import android.os.Build import android.text.TextUtils import android.util.TypedValue import android.view.View @@ -27,7 +26,6 @@ import android.widget.FrameLayout import android.widget.ImageView import android.widget.TextView import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.widget.TooltipCompat import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.constraintlayout.widget.ConstraintSet.BOTTOM @@ -40,6 +38,7 @@ import com.google.android.material.card.MaterialCardView import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.extensions.getAttribute import org.kiwix.kiwixmobile.core.extensions.setImageDrawableCompat +import org.kiwix.kiwixmobile.core.extensions.setToolTip import org.kiwix.kiwixmobile.core.extensions.tint import org.kiwix.kiwixmobile.core.utils.DimenUtils.getToolbarHeight import org.kiwix.kiwixmobile.core.utils.DimenUtils.getWindowHeight @@ -68,11 +67,7 @@ class TabsAdapter internal constructor( .apply { id = R.id.tabsAdapterCloseImageView setImageDrawableCompat(R.drawable.ic_clear_white_24dp) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - TooltipCompat.setTooltipText(this, "Close Tab") - } else { - contentDescription = "Close Tab" - } + setToolTip(resources.getString(R.string.close_tab)) val outValue = TypedValue() context.theme.resolveAttribute(android.R.attr.actionBarItemBackground, outValue, true) setBackgroundResource(outValue.resourceId) diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 9d5edbc46..a1923b424 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -214,6 +214,7 @@ Search bookmarks Switch tabs Close all tabs + Close tab Pending In Progress Complete