am 12c03e33: am f66f3052: Merge "TIF: implement gatherTransparentRegion() and dispatchDraw() in TvView." into lmp-mr1-dev

* commit '12c03e3386db46f2452dd7642771adad1d03ce5c':
  TIF: implement gatherTransparentRegion() and dispatchDraw() in TvView.
This commit is contained in:
Jae Seo
2014-11-21 01:37:51 +00:00
committed by Android Git Automerger

View File

@@ -18,7 +18,10 @@ package android.media.tv;
import android.annotation.SystemApi; import android.annotation.SystemApi;
import android.content.Context; import android.content.Context;
import android.graphics.Canvas;
import android.graphics.PorterDuff;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.Region;
import android.media.tv.TvInputManager.Session; import android.media.tv.TvInputManager.Session;
import android.media.tv.TvInputManager.Session.FinishedInputEventCallback; import android.media.tv.TvInputManager.Session.FinishedInputEventCallback;
import android.media.tv.TvInputManager.SessionCallback; import android.media.tv.TvInputManager.SessionCallback;
@@ -592,6 +595,42 @@ public class TvView extends ViewGroup {
childState << MEASURED_HEIGHT_STATE_SHIFT)); childState << MEASURED_HEIGHT_STATE_SHIFT));
} }
@Override
public boolean gatherTransparentRegion(Region region) {
if (mWindowZOrder != ZORDER_ON_TOP) {
if (region != null) {
int width = getWidth();
int height = getHeight();
if (width > 0 && height > 0) {
int location[] = new int[2];
getLocationInWindow(location);
int left = location[0];
int top = location[1];
region.op(left, top, left + width, top + height, Region.Op.UNION);
}
}
}
return super.gatherTransparentRegion(region);
}
@Override
public void draw(Canvas canvas) {
if (mWindowZOrder != ZORDER_ON_TOP) {
// Punch a hole so that the underlying overlay view and surface can be shown.
canvas.drawColor(0, PorterDuff.Mode.CLEAR);
}
super.draw(canvas);
}
@Override
protected void dispatchDraw(Canvas canvas) {
if (mWindowZOrder != ZORDER_ON_TOP) {
// Punch a hole so that the underlying overlay view and surface can be shown.
canvas.drawColor(0, PorterDuff.Mode.CLEAR);
}
super.dispatchDraw(canvas);
}
@Override @Override
protected void onVisibilityChanged(View changedView, int visibility) { protected void onVisibilityChanged(View changedView, int visibility) {
super.onVisibilityChanged(changedView, visibility); super.onVisibilityChanged(changedView, visibility);