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

Commit 137b5843 authored by Mihai Popa's avatar Mihai Popa
Browse files

[Magnifier - 19] Add non-basic CTS tests

This CL adds two @TestApis required for the magnifier CTS tests.

Bug: 69407609
Bug: 63531115
Test: atest CtsWidgetTestCases:android.widget.cts.MagnifierTest
Change-Id: I49e53223730f5fbbf353f6574429c1b1a3d877a1
parent 2ea1ed24
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1077,6 +1077,12 @@ package android.widget {
    field public static final int MODE_SPINNER = 1; // 0x1
  }

  public final class Magnifier {
    method public android.graphics.Bitmap getContent();
    method public static android.graphics.PointF getMagnifierDefaultSize();
    method public android.graphics.Rect getWindowPositionOnScreen();
  }

  public class NumberPicker extends android.widget.LinearLayout {
    method public java.lang.CharSequence getDisplayedValueForCurrentSelection();
  }
+44 −0
Original line number Diff line number Diff line
@@ -18,8 +18,10 @@ package android.widget;

import android.annotation.FloatRange;
import android.annotation.NonNull;
import android.annotation.TestApi;
import android.annotation.UiThread;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.graphics.PointF;
@@ -269,4 +271,46 @@ public final class Magnifier {
        return mWindow.getContentView().findViewById(
                com.android.internal.R.id.magnifier_image);
    }

    /**
     * @return the content being currently displayed in the magnifier, as bitmap
     *
     * @hide
     */
    @TestApi
    public Bitmap getContent() {
        return mBitmap;
    }

    /**
     * @return the position of the magnifier window relative to the screen
     *
     * @hide
     */
    @TestApi
    public Rect getWindowPositionOnScreen() {
        final int[] viewLocationOnScreen = new int[2];
        mView.getLocationOnScreen(viewLocationOnScreen);
        final int[] viewLocationInSurface = new int[2];
        mView.getLocationInSurface(viewLocationInSurface);

        final int left = mWindowCoords.x + viewLocationOnScreen[0] - viewLocationInSurface[0];
        final int top = mWindowCoords.y + viewLocationOnScreen[1] - viewLocationInSurface[1];
        return new Rect(left, top, left + mWindow.getWidth(), top + mWindow.getHeight());
    }

    /**
     * @return the size of the magnifier window in dp
     *
     * @hide
     */
    @TestApi
    public static PointF getMagnifierDefaultSize() {
        final Resources resources = Resources.getSystem();
        final float density = resources.getDisplayMetrics().density;
        final PointF size = new PointF();
        size.x = resources.getDimension(com.android.internal.R.dimen.magnifier_width) / density;
        size.y = resources.getDimension(com.android.internal.R.dimen.magnifier_height) / density;
        return size;
    }
}