Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a857235d authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Remove workaround code of placing DrawingPreviewPlacerView"

parents da5c2069 0c01fc6f
Loading
Loading
Loading
Loading
+7 −18
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.preference.PreferenceManager;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -428,21 +427,11 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
    }

    private void locatePreviewPlacerView() {
        if (mDrawingPreviewPlacerView.getParent() != null) {
            return;
        }
        final int width = getWidth();
        final int height = getHeight();
        if (width == 0 || height == 0) {
            // In transient state.
            return;
        }
        getLocationInWindow(mOriginCoords);
        final DisplayMetrics dm = getResources().getDisplayMetrics();
        if (CoordinateUtils.y(mOriginCoords) < dm.heightPixels / 4) {
            // In transient state.
            return;
        mDrawingPreviewPlacerView.setKeyboardViewGeometry(mOriginCoords, getWidth(), getHeight());
    }

    private void installPreviewPlacerView() {
        final View rootView = getRootView();
        if (rootView == null) {
            Log.w(TAG, "Cannot find root view");
@@ -452,10 +441,9 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
        // Note: It'd be very weird if we get null by android.R.id.content.
        if (windowContentView == null) {
            Log.w(TAG, "Cannot find android.R.id.content view to add DrawingPreviewPlacerView");
        } else {
            windowContentView.addView(mDrawingPreviewPlacerView);
            mDrawingPreviewPlacerView.setKeyboardViewGeometry(mOriginCoords, width, height);
            return;
        }
        windowContentView.addView(mDrawingPreviewPlacerView);
    }

    /**
@@ -576,6 +564,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        installPreviewPlacerView();
        // Notify the ResearchLogger (development only diagnostics) that the keyboard view has
        // been attached.  This is needed to properly show the splash screen, which requires that
        // the window token of the KeyboardView be non-null.
+19 −7
Original line number Diff line number Diff line
@@ -29,25 +29,37 @@ import com.android.inputmethod.keyboard.PointerTracker;
public abstract class AbstractDrawingPreview {
    private final View mDrawingView;
    private boolean mPreviewEnabled;
    private boolean mHasValidGeometry;

    protected AbstractDrawingPreview(final View drawingView) {
        mDrawingView = drawingView;
    }

    public final View getDrawingView() {
    protected final View getDrawingView() {
        return mDrawingView;
    }

    public final void setPreviewEnabled(final boolean enabled) {
        mPreviewEnabled = enabled;
    protected final boolean isPreviewEnabled() {
        return mPreviewEnabled && mHasValidGeometry;
    }

    public boolean isPreviewEnabled() {
        return mPreviewEnabled;
    public final void setPreviewEnabled(final boolean enabled) {
        mPreviewEnabled = enabled;
    }

    public void setKeyboardGeometry(final int[] originCoords, final int width, final int height) {
        // Default implementation is empty.
    /**
     * Set {@link MainKeyboardView} geometry and position in the {@link SoftInputWindow}.
     * The class that is overriding this method must call this super implementation.
     *
     * @param originCoords the top-left coordinates of the {@link MainKeyboardView} in
     *        {@link SoftInputWindow} coordinate-system. This is unused but has a point in an
     *        extended class, such as {@link GestureTrailsDrawingPreview}.
     * @param width the width of {@link MainKeyboardView}.
     * @param height the height of {@link MainKeyboardView}.
     */
    public void setKeyboardViewGeometry(final int[] originCoords, final int width,
            final int height) {
        mHasValidGeometry = (width > 0 && height > 0);
    }

    public abstract void onDeallocateMemory();
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ public final class DrawingPreviewPlacerView extends RelativeLayout {
        CoordinateUtils.copy(mKeyboardViewOrigin, originCoords);
        final int count = mPreviews.size();
        for (int i = 0; i < count; i++) {
            mPreviews.get(i).setKeyboardGeometry(originCoords, width, height);
            mPreviews.get(i).setKeyboardViewGeometry(originCoords, width, height);
        }
    }

+3 −1
Original line number Diff line number Diff line
@@ -95,7 +95,9 @@ public final class GestureTrailsDrawingPreview extends AbstractDrawingPreview {
    }

    @Override
    public void setKeyboardGeometry(final int[] originCoords, final int width, final int height) {
    public void setKeyboardViewGeometry(final int[] originCoords, final int width,
            final int height) {
        super.setKeyboardViewGeometry(originCoords, width, height);
        mOffscreenOffsetY = (int)(height
                * GestureStrokeRecognitionPoints.EXTRA_GESTURE_TRAIL_AREA_ABOVE_KEYBOARD_RATIO);
        mOffscreenWidth = width;