From df5fb828568959b5949f32ec93293ca5e1d7879e Mon Sep 17 00:00:00 2001 From: Manuel Martin Date: Thu, 20 Feb 2020 15:56:06 +0100 Subject: [PATCH] Fixes forward compatibility of the tooltip text tag --- .../mozilla/vrbrowser/ui/views/UIButton.java | 49 ++++++++++++------- .../vrbrowser/ui/widgets/TrayWidget.java | 12 ++--- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/views/UIButton.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/views/UIButton.java index 09277a6c5..f55e583eb 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/views/UIButton.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/views/UIButton.java @@ -22,6 +22,7 @@ import androidx.annotation.IdRes; import androidx.annotation.LayoutRes; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatImageButton; import org.mozilla.gecko.util.ThreadUtils; @@ -99,28 +100,42 @@ public UIButton(Context context, AttributeSet attrs, int defStyleAttr) { } } - @TargetApi(Build.VERSION_CODES.O) - public String getTooltip() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - return mTooltipText; + @Nullable + @Override + public CharSequence getTooltipText() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + return getTooltipTextInternal(); + } else { - return getTooltipText() == null ? null : getTooltipText().toString(); + return mTooltipText; } } @TargetApi(Build.VERSION_CODES.O) - public void setTooltip(String text) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - mTooltipText = text; - } else { - setTooltipText(text); + private CharSequence getTooltipTextInternal() { + return super.getTooltipText(); + } + + @Override + public void setTooltipText(@Nullable CharSequence tooltipText) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + setTooltipTextInternal(tooltipText); } - if (mTooltipView != null && mTooltipView.isVisible()) { - mTooltipView.setText(text); + if (tooltipText != null) { + mTooltipText = tooltipText.toString(); + + if (mTooltipView != null && mTooltipView.isVisible()) { + mTooltipView.setText(tooltipText.toString()); + } } } + @TargetApi(Build.VERSION_CODES.O) + private void setTooltipTextInternal(@Nullable CharSequence tooltipText) { + super.setTooltipText(tooltipText); + } + public void setCurvedTooltip(boolean aEnabled) { mCurvedTooltip = aEnabled; if (mTooltipView != null) { @@ -128,13 +143,9 @@ public void setCurvedTooltip(boolean aEnabled) { } } - public void setTooltipText(@NonNull String text) { - mTooltipText = text; - } - @Override public boolean onHoverEvent(MotionEvent event) { - if (getTooltip() != null) { + if (getTooltipText() != null) { if (event.getAction() == MotionEvent.ACTION_HOVER_ENTER) { ThreadUtils.postDelayedToUiThread(mShowTooltipRunnable, mTooltipDelay); @@ -256,7 +267,9 @@ public void run() { mTooltipView = new TooltipWidget(getContext(), mTooltipLayout); } mTooltipView.setCurvedMode(mCurvedTooltip); - mTooltipView.setText(getTooltip()); + if (getTooltipText() != null) { + mTooltipView.setText(getTooltipText().toString()); + } Rect offsetViewBounds = new Rect(); getDrawingRect(offsetViewBounds); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TrayWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TrayWidget.java index cc87494be..7b660ba2c 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TrayWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/TrayWidget.java @@ -343,22 +343,22 @@ public void detachFromWindow() { Observer mBookmarksVisibleObserver = isBookmarksVisible -> { if (isBookmarksVisible.get()) { - mBinding.bookmarksButton.setTooltip(getResources().getString(R.string.close_bookmarks_tooltip)); + mBinding.bookmarksButton.setTooltipText(getResources().getString(R.string.close_bookmarks_tooltip)); mBinding.bookmarksButton.setActiveMode(true); } else { - mBinding.bookmarksButton.setTooltip(getResources().getString(R.string.open_bookmarks_tooltip)); + mBinding.bookmarksButton.setTooltipText(getResources().getString(R.string.open_bookmarks_tooltip)); mBinding.bookmarksButton.setActiveMode(false); } }; Observer mHistoryVisibleObserver = isHistoryVisible -> { if (isHistoryVisible.get()) { - mBinding.historyButton.setTooltip(getResources().getString(R.string.close_history_tooltip)); + mBinding.historyButton.setTooltipText(getResources().getString(R.string.close_history_tooltip)); mBinding.historyButton.setActiveMode(true); } else { - mBinding.historyButton.setTooltip(getResources().getString(R.string.open_history_tooltip)); + mBinding.historyButton.setTooltipText(getResources().getString(R.string.open_history_tooltip)); mBinding.historyButton.setActiveMode(false); } }; @@ -416,14 +416,14 @@ private void handleSessionState(boolean refresh) { mWidgetManager.pushWorldBrightness(this, WidgetManagerDelegate.DEFAULT_DIM_BRIGHTNESS); } mBinding.privateButton.setImageResource(R.drawable.ic_icon_tray_private_browsing_on_v2); - mBinding.privateButton.setTooltip(getResources().getString(R.string.private_browsing_exit_tooltip)); + mBinding.privateButton.setTooltipText(getResources().getString(R.string.private_browsing_exit_tooltip)); } else { if (!refresh) { mWidgetManager.popWorldBrightness(this); } mBinding.privateButton.setImageResource(R.drawable.ic_icon_tray_private_browsing_v2); - mBinding.privateButton.setTooltip(getResources().getString(R.string.private_browsing_enter_tooltip)); + mBinding.privateButton.setTooltipText(getResources().getString(R.string.private_browsing_enter_tooltip)); } }