diff options
| author | Vladislav Kaznacheev <kaznacheev@google.com> | 2016-11-21 14:11:00 -0800 |
|---|---|---|
| committer | Vladislav Kaznacheev <kaznacheev@google.com> | 2016-11-22 09:32:07 -0800 |
| commit | f847ee3c3d68e58b0a1a545bd7358ebb32f6948a (patch) | |
| tree | 12b56e4f5093dddf876833a87982c11c48fcc675 /core/java/android/view/ViewConfiguration.java | |
| parent | 76932df9ec7f7c2a18f9d899767846c8d7ede4fc (diff) | |
Implement tooltip support in View
Adding View.setTooltip/getTooltip and 'tooltip' layout attribute.
Following Material Design spec for styles and behavior.
Bug: 31515376
Test: cts-tradefed run singleCommand cts -m CtsViewTestCases
--test android.view.cts.TooltipTest
Change-Id: I2d2527f642cd7446ffc88d4beffc7b81d7a2f6d6
Diffstat (limited to 'core/java/android/view/ViewConfiguration.java')
| -rw-r--r-- | core/java/android/view/ViewConfiguration.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java index 33b488fbc6b4..6d2f850b94f4 100644 --- a/core/java/android/view/ViewConfiguration.java +++ b/core/java/android/view/ViewConfiguration.java @@ -16,6 +16,7 @@ package android.view; +import android.annotation.TestApi; import android.app.AppGlobals; import android.content.Context; import android.content.res.Configuration; @@ -230,6 +231,29 @@ public class ViewConfiguration { private static final long ACTION_MODE_HIDE_DURATION_DEFAULT = 2000; /** + * Defines the duration in milliseconds before an end of a long press causes a tooltip to be + * hidden. + */ + private static final int LONG_PRESS_TOOLTIP_HIDE_TIMEOUT = 1500; + + /** + * Defines the duration in milliseconds before a hover event causes a tooltip to be shown. + */ + private static final int HOVER_TOOLTIP_SHOW_TIMEOUT = 500; + + /** + * Defines the duration in milliseconds before mouse inactivity causes a tooltip to be hidden. + * (default variant to be used when {@link View#SYSTEM_UI_FLAG_LOW_PROFILE} is not set). + */ + private static final int HOVER_TOOLTIP_HIDE_TIMEOUT = 15000; + + /** + * Defines the duration in milliseconds before mouse inactivity causes a tooltip to be hidden + * (short version to be used when {@link View#SYSTEM_UI_FLAG_LOW_PROFILE} is set). + */ + private static final int HOVER_TOOLTIP_HIDE_SHORT_TIMEOUT = 3000; + + /** * Configuration values for overriding {@link #hasPermanentMenuKey()} behavior. * These constants must match the definition in res/values/config.xml. */ @@ -800,4 +824,43 @@ public class ViewConfiguration { public boolean isFadingMarqueeEnabled() { return mFadingMarqueeEnabled; } + + /** + * @return the duration in milliseconds before an end of a long press causes a tooltip to be + * hidden + * @hide + */ + @TestApi + public static int getLongPressTooltipHideTimeout() { + return LONG_PRESS_TOOLTIP_HIDE_TIMEOUT; + } + + /** + * @return the duration in milliseconds before a hover event causes a tooltip to be shown + * @hide + */ + @TestApi + public static int getHoverTooltipShowTimeout() { + return HOVER_TOOLTIP_SHOW_TIMEOUT; + } + + /** + * @return the duration in milliseconds before mouse inactivity causes a tooltip to be hidden + * (default variant to be used when {@link View#SYSTEM_UI_FLAG_LOW_PROFILE} is not set). + * @hide + */ + @TestApi + public static int getHoverTooltipHideTimeout() { + return HOVER_TOOLTIP_HIDE_TIMEOUT; + } + + /** + * @return the duration in milliseconds before mouse inactivity causes a tooltip to be hidden + * (shorter variant to be used when {@link View#SYSTEM_UI_FLAG_LOW_PROFILE} is set). + * @hide + */ + @TestApi + public static int getHoverTooltipHideShortTimeout() { + return HOVER_TOOLTIP_HIDE_SHORT_TIMEOUT; + } } |
