Merge "[Magnifier - 4] Batch of tweaks"

This commit is contained in:
TreeHugger Robot
2017-10-16 16:10:19 +00:00
committed by Android (Google) Code Review
2 changed files with 23 additions and 7 deletions

View File

@@ -165,7 +165,7 @@ public class Editor {
private static final int MENU_ITEM_ORDER_PASTE_AS_PLAIN_TEXT = 11;
private static final int MENU_ITEM_ORDER_PROCESS_TEXT_INTENT_ACTIONS_START = 100;
private static final float MAGNIFIER_ZOOM = 1.5f;
private static final float MAGNIFIER_ZOOM = 1.25f;
@IntDef({MagnifierHandleTrigger.SELECTION_START,
MagnifierHandleTrigger.SELECTION_END,
MagnifierHandleTrigger.INSERTION})
@@ -4550,12 +4550,14 @@ public class Editor {
final float centerYOnScreen = yPosInView + mTextView.getTotalPaddingTop()
- mTextView.getScrollY() + coordinatesOnScreen[1];
suspendBlink();
mMagnifier.show(centerXOnScreen, centerYOnScreen, MAGNIFIER_ZOOM);
}
protected final void dismissMagnifier() {
if (mMagnifier != null) {
mMagnifier.dismiss();
resumeBlink();
}
}

View File

@@ -41,6 +41,8 @@ import com.android.internal.util.Preconditions;
*/
public final class Magnifier {
private static final String LOG_TAG = "magnifier";
private static final int MINIMUM_MAGNIFIER_SCALE = 1;
private static final int MAXIMUM_MAGNIFIER_SCALE = 4;
// The view for which this magnifier is attached.
private final View mView;
// The window containing the magnifier.
@@ -94,7 +96,23 @@ public final class Magnifier {
*/
public void show(@FloatRange(from=0) float centerXOnScreen,
@FloatRange(from=0) float centerYOnScreen,
@FloatRange(from=1, to=10) float scale) {
@FloatRange(from=MINIMUM_MAGNIFIER_SCALE, to=MAXIMUM_MAGNIFIER_SCALE) float scale) {
if (scale > MAXIMUM_MAGNIFIER_SCALE) {
scale = MAXIMUM_MAGNIFIER_SCALE;
}
if (scale < MINIMUM_MAGNIFIER_SCALE) {
scale = MINIMUM_MAGNIFIER_SCALE;
}
if (centerXOnScreen < 0) {
centerXOnScreen = 0;
}
if (centerYOnScreen < 0) {
centerYOnScreen = 0;
}
maybeResizeBitmap(scale);
configureCoordinates(centerXOnScreen, centerYOnScreen);
performPixelCopy();
@@ -144,12 +162,8 @@ public final class Magnifier {
final int verticalMagnifierOffset = mView.getContext().getResources().getDimensionPixelSize(
R.dimen.magnifier_offset);
final int availableTopSpace = (mCenterZoomCoords.y - mWindowHeight / 2)
- verticalMagnifierOffset - (mBitmap.getHeight() / 2);
mWindowCoords.x = mCenterZoomCoords.x - mWindowWidth / 2;
mWindowCoords.y = mCenterZoomCoords.y - mWindowHeight / 2
+ verticalMagnifierOffset * (availableTopSpace > 0 ? -1 : 1);
mWindowCoords.y = mCenterZoomCoords.y - mWindowHeight / 2 - verticalMagnifierOffset;
}
private void performPixelCopy() {