diff options
Diffstat (limited to 'tests/tests/assist/service/src/android/assist/service/MainInteractionSession.java')
-rw-r--r-- | tests/tests/assist/service/src/android/assist/service/MainInteractionSession.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/tests/tests/assist/service/src/android/assist/service/MainInteractionSession.java b/tests/tests/assist/service/src/android/assist/service/MainInteractionSession.java index 7f35367333a..25c080b9c0c 100644 --- a/tests/tests/assist/service/src/android/assist/service/MainInteractionSession.java +++ b/tests/tests/assist/service/src/android/assist/service/MainInteractionSession.java @@ -56,6 +56,7 @@ public class MainInteractionSession extends VoiceInteractionSession { private int mCurColor; private int mDisplayHeight; private int mDisplayWidth; + private Rect mDisplayAreaBounds; private BroadcastReceiver mReceiver; private String mTestName; private View mContentView; @@ -106,7 +107,7 @@ public class MainInteractionSession extends VoiceInteractionSession { public void onPrepareShow(Bundle args, int showFlags) { if (Utils.LIFECYCLE_NOUI.equals(args.getString(Utils.TESTCASE_TYPE, ""))) { setUiEnabled(false); - } else { + } else { setUiEnabled(true); } } @@ -122,6 +123,7 @@ public class MainInteractionSession extends VoiceInteractionSession { mCurColor = args.getInt(Utils.SCREENSHOT_COLOR_KEY); mDisplayHeight = args.getInt(Utils.DISPLAY_HEIGHT_KEY); mDisplayWidth = args.getInt(Utils.DISPLAY_WIDTH_KEY); + mDisplayAreaBounds = args.getParcelable(Utils.DISPLAY_AREA_BOUNDS_KEY); mRemoteCallback = args.getParcelable(Utils.EXTRA_REMOTE_CALLBACK); super.onShow(args, showFlags); if (mContentView == null) return; // Happens when ui is not enabled. @@ -256,6 +258,11 @@ public class MainInteractionSession extends VoiceInteractionSession { int[] pixels = new int[size.x * size.y]; screenshot.getPixels(pixels, 0, size.x, 0, 0, size.x, size.y); + // screenshot bitmap contains the screenshot for the entire physical display. A single + // physical display could have multiple display area with different applications. + // Let's grab the region of the display area from the original screenshot. + Bitmap displayAreaScreenshot = Bitmap.createBitmap(screenshot, mDisplayAreaBounds.left, + mDisplayAreaBounds.top, mDisplayAreaBounds.width(), mDisplayAreaBounds.height()); int expectedColor = 0; for (int pixel : pixels) { // Check for roughly the same because there are rounding errors converting from the @@ -267,7 +274,7 @@ public class MainInteractionSession extends VoiceInteractionSession { } } - int pixelCount = screenshot.getWidth() * screenshot.getHeight(); + int pixelCount = displayAreaScreenshot.getWidth() * displayAreaScreenshot.getHeight(); double colorRatio = (double) expectedColor / pixelCount; Log.i(TAG, "the ratio is " + colorRatio); return colorRatio >= 0.6; |