Merge "Fix ActionMode.snooze API" into mnc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7d3b8833df
@@ -34596,6 +34596,7 @@ package android.view {
|
||||
method public abstract java.lang.CharSequence getTitle();
|
||||
method public boolean getTitleOptionalHint();
|
||||
method public int getType();
|
||||
method public void hide(long);
|
||||
method public abstract void invalidate();
|
||||
method public void invalidateContentRect();
|
||||
method public boolean isTitleOptional();
|
||||
@@ -34607,8 +34608,7 @@ package android.view {
|
||||
method public abstract void setTitle(int);
|
||||
method public void setTitleOptionalHint(boolean);
|
||||
method public void setType(int);
|
||||
method public void snooze(int);
|
||||
field public static final int SNOOZE_TIME_DEFAULT;
|
||||
field public static final int DEFAULT_HIDE_DURATION = -1; // 0xffffffff
|
||||
field public static final int TYPE_FLOATING = 1; // 0x1
|
||||
field public static final int TYPE_PRIMARY = 0; // 0x0
|
||||
}
|
||||
@@ -36673,7 +36673,7 @@ package android.view {
|
||||
public class ViewConfiguration {
|
||||
ctor public deprecated ViewConfiguration();
|
||||
method public static android.view.ViewConfiguration get(android.content.Context);
|
||||
method public static int getDefaultActionModeSnoozeTime();
|
||||
method public static long getDefaultActionModeHideDuration();
|
||||
method public static int getDoubleTapTimeout();
|
||||
method public static deprecated int getEdgeSlop();
|
||||
method public static deprecated int getFadingEdgeLength();
|
||||
|
||||
@@ -36861,6 +36861,7 @@ package android.view {
|
||||
method public abstract java.lang.CharSequence getTitle();
|
||||
method public boolean getTitleOptionalHint();
|
||||
method public int getType();
|
||||
method public void hide(long);
|
||||
method public abstract void invalidate();
|
||||
method public void invalidateContentRect();
|
||||
method public boolean isTitleOptional();
|
||||
@@ -36872,8 +36873,7 @@ package android.view {
|
||||
method public abstract void setTitle(int);
|
||||
method public void setTitleOptionalHint(boolean);
|
||||
method public void setType(int);
|
||||
method public void snooze(int);
|
||||
field public static final int SNOOZE_TIME_DEFAULT;
|
||||
field public static final int DEFAULT_HIDE_DURATION = -1; // 0xffffffff
|
||||
field public static final int TYPE_FLOATING = 1; // 0x1
|
||||
field public static final int TYPE_PRIMARY = 0; // 0x0
|
||||
}
|
||||
@@ -38938,7 +38938,7 @@ package android.view {
|
||||
public class ViewConfiguration {
|
||||
ctor public deprecated ViewConfiguration();
|
||||
method public static android.view.ViewConfiguration get(android.content.Context);
|
||||
method public static int getDefaultActionModeSnoozeTime();
|
||||
method public static long getDefaultActionModeHideDuration();
|
||||
method public static int getDoubleTapTimeout();
|
||||
method public static deprecated int getEdgeSlop();
|
||||
method public static deprecated int getFadingEdgeLength();
|
||||
|
||||
@@ -45,10 +45,10 @@ public abstract class ActionMode {
|
||||
public static final int TYPE_FLOATING = 1;
|
||||
|
||||
/**
|
||||
* Default snooze time.
|
||||
* Default value to hide the action mode for
|
||||
* {@link ViewConfiguration#getDefaultActionModeHideDuration()}.
|
||||
*/
|
||||
public static final int SNOOZE_TIME_DEFAULT =
|
||||
ViewConfiguration.getDefaultActionModeSnoozeTime();
|
||||
public static final int DEFAULT_HIDE_DURATION = -1;
|
||||
|
||||
private Object mTag;
|
||||
private boolean mTitleOptionalHint;
|
||||
@@ -213,17 +213,17 @@ public abstract class ActionMode {
|
||||
public void invalidateContentRect() {}
|
||||
|
||||
/**
|
||||
* Hide the action mode view from obstructing the content below for a short period.
|
||||
* Hide the action mode view from obstructing the content below for a short duration.
|
||||
* This only makes sense for action modes that support dynamic positioning on the screen.
|
||||
* If this method is called again before the snooze time expires, the later snooze will
|
||||
* If this method is called again before the hide duration expires, the later hide call will
|
||||
* cancel the former and then take effect.
|
||||
* NOTE that there is an internal limit to how long the mode can be snoozed for. It's typically
|
||||
* NOTE that there is an internal limit to how long the mode can be hidden for. It's typically
|
||||
* about a few seconds.
|
||||
*
|
||||
* @param snoozeTime The number of milliseconds to snooze for.
|
||||
* @see #SNOOZE_TIME_DEFAULT
|
||||
* @param duration The number of milliseconds to hide for.
|
||||
* @see #DEFAULT_HIDE_DURATION
|
||||
*/
|
||||
public void snooze(int snoozeTime) {}
|
||||
public void hide(long duration) {}
|
||||
|
||||
/**
|
||||
* Finish and close this action mode. The action mode's {@link ActionMode.Callback} will
|
||||
|
||||
@@ -213,9 +213,9 @@ public class ViewConfiguration {
|
||||
private static final int OVERFLING_DISTANCE = 6;
|
||||
|
||||
/**
|
||||
* Default time to snooze an action mode for.
|
||||
* Default duration to hide an action mode for.
|
||||
*/
|
||||
private static final int ACTION_MODE_SNOOZE_TIME_DEFAULT = 2000;
|
||||
private static final long ACTION_MODE_HIDE_DURATION_DEFAULT = 2000;
|
||||
|
||||
/**
|
||||
* Configuration values for overriding {@link #hasPermanentMenuKey()} behavior.
|
||||
@@ -737,10 +737,10 @@ public class ViewConfiguration {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the default duration in milliseconds for {@link ActionMode#snooze(int)}.
|
||||
* @return the default duration in milliseconds for {@link ActionMode#hide(long)}.
|
||||
*/
|
||||
public static int getDefaultActionModeSnoozeTime() {
|
||||
return ACTION_MODE_SNOOZE_TIME_DEFAULT;
|
||||
public static long getDefaultActionModeHideDuration() {
|
||||
return ACTION_MODE_HIDE_DURATION_DEFAULT;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -248,7 +248,7 @@ public class Editor {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mTextActionMode != null) {
|
||||
mTextActionMode.snooze(ActionMode.SNOOZE_TIME_DEFAULT);
|
||||
mTextActionMode.hide(ActionMode.DEFAULT_HIDE_DURATION);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -257,7 +257,7 @@ public class Editor {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mTextActionMode != null) {
|
||||
mTextActionMode.snooze(0); // snooze off.
|
||||
mTextActionMode.hide(0); // hide off.
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -23,6 +23,7 @@ import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewConfiguration;
|
||||
|
||||
import com.android.internal.util.Preconditions;
|
||||
import com.android.internal.view.menu.MenuBuilder;
|
||||
@@ -30,7 +31,7 @@ import com.android.internal.widget.FloatingToolbar;
|
||||
|
||||
public class FloatingActionMode extends ActionMode {
|
||||
|
||||
private static final int MAX_SNOOZE_TIME = 3000;
|
||||
private static final int MAX_HIDE_DURATION = 3000;
|
||||
private static final int MOVING_HIDE_DELAY = 300;
|
||||
|
||||
private final Context mContext;
|
||||
@@ -50,9 +51,9 @@ public class FloatingActionMode extends ActionMode {
|
||||
}
|
||||
};
|
||||
|
||||
private final Runnable mSnoozeOff = new Runnable() {
|
||||
private final Runnable mHideOff = new Runnable() {
|
||||
public void run() {
|
||||
mFloatingToolbarVisibilityHelper.setSnoozed(false);
|
||||
mFloatingToolbarVisibilityHelper.setHideRequested(false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -171,15 +172,19 @@ public class FloatingActionMode extends ActionMode {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void snooze(int snoozeTime) {
|
||||
public void hide(long duration) {
|
||||
checkToolbarInitialized();
|
||||
snoozeTime = Math.min(MAX_SNOOZE_TIME, snoozeTime);
|
||||
mOriginatingView.removeCallbacks(mSnoozeOff);
|
||||
if (snoozeTime <= 0) {
|
||||
mSnoozeOff.run();
|
||||
|
||||
if (duration == ActionMode.DEFAULT_HIDE_DURATION) {
|
||||
duration = ViewConfiguration.getDefaultActionModeHideDuration();
|
||||
}
|
||||
duration = Math.min(MAX_HIDE_DURATION, duration);
|
||||
mOriginatingView.removeCallbacks(mHideOff);
|
||||
if (duration <= 0) {
|
||||
mHideOff.run();
|
||||
} else {
|
||||
mFloatingToolbarVisibilityHelper.setSnoozed(true);
|
||||
mOriginatingView.postDelayed(mSnoozeOff, snoozeTime);
|
||||
mFloatingToolbarVisibilityHelper.setHideRequested(true);
|
||||
mOriginatingView.postDelayed(mHideOff, duration);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -225,7 +230,7 @@ public class FloatingActionMode extends ActionMode {
|
||||
|
||||
private void reset() {
|
||||
mOriginatingView.removeCallbacks(mMovingOff);
|
||||
mOriginatingView.removeCallbacks(mSnoozeOff);
|
||||
mOriginatingView.removeCallbacks(mHideOff);
|
||||
}
|
||||
|
||||
|
||||
@@ -236,7 +241,7 @@ public class FloatingActionMode extends ActionMode {
|
||||
|
||||
private final FloatingToolbar mToolbar;
|
||||
|
||||
private boolean mSnoozed;
|
||||
private boolean mHideRequested;
|
||||
private boolean mMoving;
|
||||
private boolean mOutOfBounds;
|
||||
|
||||
@@ -244,8 +249,8 @@ public class FloatingActionMode extends ActionMode {
|
||||
mToolbar = Preconditions.checkNotNull(toolbar);
|
||||
}
|
||||
|
||||
public void setSnoozed(boolean snoozed) {
|
||||
mSnoozed = snoozed;
|
||||
public void setHideRequested(boolean hide) {
|
||||
mHideRequested = hide;
|
||||
updateToolbarVisibility();
|
||||
}
|
||||
|
||||
@@ -260,7 +265,7 @@ public class FloatingActionMode extends ActionMode {
|
||||
}
|
||||
|
||||
private void updateToolbarVisibility() {
|
||||
if (mSnoozed || mMoving || mOutOfBounds) {
|
||||
if (mHideRequested || mMoving || mOutOfBounds) {
|
||||
mToolbar.hide();
|
||||
} else if (mToolbar.isHidden()) {
|
||||
mToolbar.show();
|
||||
|
||||
Reference in New Issue
Block a user